Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public override void Visit(TableReferenceWithAlias node)
 {
     if (node.Alias != null)
     {
         TableAliases.Add(node.Alias.Value);
     }
 }
Ejemplo n.º 3
0
 public override void Visit(TableReferenceWithAlias node)
 {
     if (node.Alias != null)
     {
         node.Alias.Value = node.Alias.Value.ToSnakeCase();
     }
     base.Visit(node);
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 private string GetAlias(TableReferenceWithAlias table)
 {
     if (table.Alias == null) // TODO: error ?
     {
         return(string.Empty);
     }
     else
     {
         return(table.Alias.Value);
     }
 }
Ejemplo n.º 6
0
        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);
 }
Ejemplo n.º 10
0
 public override void ExplicitVisit(TableReferenceWithAlias node) { this.action(node); }