Пример #1
0
        public QueryColumnSourceUDTF(int id, SchemaObjectFunctionTableReference udtf)
            : base(id, BuildKey(udtf.SchemaObject, udtf.Alias))
        {
            Udtf       = udtf;
            SchemaName = udtf.SchemaObject.SchemaIdentifier != null
                ? udtf.SchemaObject.SchemaIdentifier.Dequote()
                : null;

            FunctionName = udtf.SchemaObject.BaseIdentifier.Dequote();
            //SetAlias(udtf.Alias);
        }
Пример #2
0
        private void ProcessTableReference(TableReference TableRef)
        {
            string Type = GetFragmentType(TableRef);

            switch (Type)
            {
            case "FullTextTableReference":
                break;

            case "NamedTableReference":
                var    NamedTableRef = (NamedTableReference)TableRef;
                var    Naming        = NamedTableRef.SchemaObject;
                string ObjectName    = (Naming.DatabaseIdentifier == null ? this.databaseName : Naming.DatabaseIdentifier.Value) + "." +
                                       (Naming.SchemaIdentifier == null ? this.schemaName : Naming.SchemaIdentifier.Value) + "." +
                                       (Naming.BaseIdentifier == null ? "" : Naming.BaseIdentifier.Value);
                addSourcetoCurrentObject(ObjectName);

                break;

            case "QueryDerivedTable":
                QueryDerivedTable qdt = (QueryDerivedTable)TableRef;
                ProcessQueryExpression(qdt.QueryExpression);
                break;

            case "QualifiedJoin":
                QualifiedJoin qj = (QualifiedJoin)TableRef;
                ProcessTableReference(qj.FirstTableReference);
                ProcessTableReference(qj.SecondTableReference);
                break;

            case "UnqualifiedJoin":
                UnqualifiedJoin uqj = (UnqualifiedJoin)TableRef;
                ProcessTableReference(uqj.FirstTableReference);
                ProcessTableReference(uqj.SecondTableReference);
                break;

            case "SchemaObjectFunctionTableReference":
                SchemaObjectFunctionTableReference ftr = (SchemaObjectFunctionTableReference)TableRef;
                break;

            case "PivotedTableReference":
                PivotedTableReference pvt = (PivotedTableReference)TableRef;
                ProcessTableReference(pvt.TableReference);
                break;

            default:
                break;
            }
        }
Пример #3
0
        private void CreateSelectForFunctionUnderTest(ObjectIdentifier name)
        {
            var select = new QuerySpecification();

            select.SelectElements.Add(new SelectStarExpression());

            var from      = new FromClause();
            var reference = new SchemaObjectFunctionTableReference();

            foreach (var p in _parameters)
            {
                reference.Parameters.Add(new VariableReference()
                {
                    Name = p.Name
                });
            }

            reference.SchemaObject = name.ToSchemaObjectName();
            from.TableReferences.Add(reference);

            select.FromClause = from;
            _functionSelect.QueryExpression = select;
        }
Пример #4
0
 public override void Visit(SchemaObjectFunctionTableReference node) { this.action(node); }
 public override void ExplicitVisit(SchemaObjectFunctionTableReference fragment)
 {
     _fragments.Add(fragment);
 }
 public QueryColumnSourceUDTF NewQueryColumnSourceUDTF(QuerySpecificationModel parent, SchemaObjectFunctionTableReference udtfRef)
 {
     return(new QueryColumnSourceUDTF(NewId(parent), udtfRef));
 }
Пример #7
0
        private void CreateSelectForFunctionUnderTest(ObjectIdentifier name)
        {
            var select = new QuerySpecification();
            select.SelectElements.Add(new SelectStarExpression());

            var from = new FromClause();
            var reference = new SchemaObjectFunctionTableReference();
            foreach (var p in _parameters)
            {
                reference.Parameters.Add(new VariableReference(){Name = p.Name});
            }
            
            reference.SchemaObject = name.ToSchemaObjectName();
            from.TableReferences.Add(reference);

            select.FromClause = from;
            _functionSelect.QueryExpression = select;
        }
Пример #8
0
 // CHANGETABLE Function
 public QsiTableNode VisitSchemaObjectFunctionTableReference(SchemaObjectFunctionTableReference schemaObjectFunctionTableReference)
 {
     throw TreeHelper.NotSupportedFeature("Table function");
 }