Example #1
0
        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);
 }
Example #4
0
 public virtual void Visit(SchemaFromNode node)
 {
     node.Parameters.Accept(this);
     node.Accept(Visitor);
 }
Example #5
0
 public void Visit(SchemaFromNode node)
 {
     Nodes.Push(new SchemaFromNode(node.Schema, node.Method, (ArgsListNode)Nodes.Pop(), node.Alias));
 }
Example #6
0
 public void Visit(SchemaFromNode node)
 {
 }
Example #7
0
 public override void Visit(SchemaFromNode node)
 {
     Visitor.SetQueryPart(QueryPart.From);
     base.Visit(node);
     Visitor.SetQueryPart(QueryPart.None);
 }