public void Visit(SchemaFromNode node) { var schema = _provider.GetSchema(node.Schema); ISchemaTable table; if (_currentScope.Name != "Desc") { table = schema.GetTableByName(node.Method, _schemaFromArgs.ToArray()); } else { table = new DynamicTable(new ISchemaColumn[0]); } _schemaFromArgs.Clear(); AddAssembly(schema.GetType().Assembly); _queryAlias = StringHelpers.CreateAliasIfEmpty(node.Alias, _generatedAliases); _generatedAliases.Add(_queryAlias); var tableSymbol = new TableSymbol(_queryAlias, schema, table, !string.IsNullOrEmpty(node.Alias)); _currentScope.ScopeSymbolTable.AddSymbol(_queryAlias, tableSymbol); _currentScope[node.Id] = _queryAlias; Nodes.Push(new SchemaFromNode(node.Schema, node.Method, (ArgsListNode)Nodes.Pop(), _queryAlias)); }
public void Visit(AliasedFromNode node) { var schemaInfo = _explicitlyUsedAliases[node.Identifier]; var tableName = _explicitlyCoupledTablesWithAliases[node.Identifier]; var table = _explicitlyDefinedTables[tableName]; var schema = _provider.GetSchema(schemaInfo.Schema); AddAssembly(schema.GetType().Assembly); _queryAlias = StringHelpers.CreateAliasIfEmpty(node.Alias, _generatedAliases); _generatedAliases.Add(_queryAlias); var tableSymbol = new TableSymbol(_queryAlias, schema, table, !string.IsNullOrEmpty(node.Alias)); _currentScope.ScopeSymbolTable.AddSymbol(_queryAlias, tableSymbol); _currentScope[node.Id] = _queryAlias; var aliasedSchemaFromNode = new SchemaFromNode(schemaInfo.Schema, schemaInfo.Method, node.Args, _queryAlias); if (!InferredColumns.ContainsKey(aliasedSchemaFromNode)) { InferredColumns.Add(aliasedSchemaFromNode, table.Columns); } Nodes.Push(aliasedSchemaFromNode); }
public void Visit(SchemaFromNode node) { SetQueryPart(QueryPart.From); node.Parameters.Accept(this); node.Accept(_visitor); }
public virtual void Visit(SchemaFromNode node) { node.Parameters.Accept(this); node.Accept(Visitor); }
public void Visit(SchemaFromNode node) { Nodes.Push(new SchemaFromNode(node.Schema, node.Method, (ArgsListNode)Nodes.Pop(), node.Alias)); }
public void Visit(SchemaFromNode node) { }
public override void Visit(SchemaFromNode node) { Visitor.SetQueryPart(QueryPart.From); base.Visit(node); Visitor.SetQueryPart(QueryPart.None); }