public override void ExplicitVisit(SelectStatement node) { QuerySpecification querySpecification = node.QueryExpression as QuerySpecification; FromClause fromClause = querySpecification.FromClause; // There could be more than one TableReference! // TableReference is not sure to be a NamedTableReference, could be as example a QueryDerivedTable NamedTableReference namedTableReference = fromClause.TableReferences[0] as NamedTableReference; TableReferenceWithAlias tableReferenceWithAlias = fromClause.TableReferences[0] as TableReferenceWithAlias; string baseIdentifier = namedTableReference?.SchemaObject.BaseIdentifier?.Value; string schemaIdentifier = namedTableReference?.SchemaObject.SchemaIdentifier?.Value; string databaseIdentifier = namedTableReference?.SchemaObject.DatabaseIdentifier?.Value; string serverIdentifier = namedTableReference?.SchemaObject.ServerIdentifier?.Value; string alias = tableReferenceWithAlias.Alias?.Value; Console.WriteLine("From:"); Console.WriteLine($" {"Server:",-10} {serverIdentifier}"); Console.WriteLine($" {"Database:",-10} {databaseIdentifier}"); Console.WriteLine($" {"Schema:",-10} {schemaIdentifier}"); Console.WriteLine($" {"Table:",-10} {baseIdentifier}"); Console.WriteLine($" {"Alias:",-10} {alias}"); // Example of changing the alias: //(fromClause.TableReferences[0] as NamedTableReference).Alias = new Identifier() { Value = baseIdentifier[0].ToString() }; Console.WriteLine("Statement:"); Console.WriteLine(node.ToSqlString().Indent(2)); Console.WriteLine("¯".Multiply(40)); base.ExplicitVisit(node); }
public override void Visit(TableReferenceWithAlias node) { if (node.Alias != null) { TableAliases.Add(node.Alias.Value); } }
public override void Visit(TableReferenceWithAlias node) { if (node.Alias != null) { node.Alias.Value = node.Alias.Value.ToSnakeCase(); } base.Visit(node); }
public QsiTableNode VisitTableReferenceWithAlias(TableReferenceWithAlias tableReferenceWithAlias) { switch (tableReferenceWithAlias) { // OPENDATASOURCE case AdHocTableReference adHocTableReference: return(VisitAdHocTableReference(adHocTableReference)); case BuiltInFunctionTableReference builtInFunctionTableReference: return(VisitBuiltInFunctionTableReference(builtInFunctionTableReference)); case FullTextTableReference fullTextTableReference: return(VisitFullTextTableReference(fullTextTableReference)); case GlobalFunctionTableReference globalFunctionTableReference: return(VisitGlobalFunctionTableReference(globalFunctionTableReference)); // OPENROWSET case InternalOpenRowset internalOpenRowset: return(VisitInternalOpenRowSet(internalOpenRowset)); case NamedTableReference namedTableReference: return(VisitNamedTableReference(namedTableReference)); case OpenJsonTableReference openJsonTableReference: return(VisitOpenJsonTableReference(openJsonTableReference)); case OpenQueryTableReference openQueryTableReference: return(VisitOpenQueryTableReference(openQueryTableReference)); // OPENROWSET case OpenRowsetTableReference openRowsetTableReference: return(VisitOpenRowsetTableReference(openRowsetTableReference)); case OpenXmlTableReference openXmlTableReference: return(VisitOpenXmlTableReference(openXmlTableReference)); case PivotedTableReference pivotedTableReference: return(VisitPivotedTableReference(pivotedTableReference)); case SemanticTableReference semanticTableReference: return(VisitSemanticTableReference(semanticTableReference)); case TableReferenceWithAliasAndColumns tableReferenceWithAliasAndColumns: return(VisitTableReferenceWithAliasAndColumns(tableReferenceWithAliasAndColumns)); case UnpivotedTableReference unpivotedTableReference: return(VisitUnpivotedTableReference(unpivotedTableReference)); case VariableTableReference variableTableReference: return(VisitVariableTableReference(variableTableReference)); } throw TreeHelper.NotSupportedTree(tableReferenceWithAlias); }
private string GetAlias(TableReferenceWithAlias table) { if (table.Alias == null) // TODO: error ? { return(string.Empty); } else { return(table.Alias.Value); } }
public override void Visit(TableReferenceWithAlias node) { if (node.Alias != null) { //Postgresql doesn't like [columnname] if (node.Alias.QuoteType == QuoteType.SquareBracket) { node.Alias.QuoteType = QuoteType.NotQuoted; } node.Alias.Value = node.Alias.Value.ToSnakeCase(); } base.Visit(node); }
public override void Visit(TableReferenceWithAlias node) { if (node.Alias != null) { var oldValue = node.Alias.Value; var newValue = node.Alias.Value.ToSnakeCase(); if (string.Compare(oldValue, newValue, false) != 0) { _replacements.Add(new Replacement() { LineNumber = node.StartLine, Column = node.Alias.QuoteType == QuoteType.NotQuoted ? node.StartColumn : node.StartColumn + 1, Offset = node.Alias.QuoteType == QuoteType.NotQuoted ? node.StartOffset : node.StartOffset + 1, OldValue = oldValue, NewValue = newValue }); } } base.Visit(node); }
public override void ExplicitVisit(TableReferenceWithAlias fragment) { _fragments.Add(fragment); }
public sealed override void ExplicitVisit(TableReferenceWithAlias node) { base.ExplicitVisit(node); }
public override void ExplicitVisit(TableReferenceWithAlias node) { this.action(node); }