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); }
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; } }
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; }
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)); }
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; }
// CHANGETABLE Function public QsiTableNode VisitSchemaObjectFunctionTableReference(SchemaObjectFunctionTableReference schemaObjectFunctionTableReference) { throw TreeHelper.NotSupportedFeature("Table function"); }