public void Visit(InMemoryTableFromNode node)
        {
            _queryAlias = string.IsNullOrEmpty(node.Alias) ? node.VariableName : node.Alias;
            _generatedAliases.Add(_queryAlias);

            TableSymbol tableSymbol;

            if (_currentScope.Parent.ScopeSymbolTable.SymbolIsOfType <TableSymbol>(node.VariableName))
            {
                tableSymbol = _currentScope.Parent.ScopeSymbolTable.GetSymbol <TableSymbol>(node.VariableName);
            }
            else
            {
                var scope = _currentScope;
                while (scope != null && scope.Name != "CTE")
                {
                    scope = scope.Parent;
                }

                tableSymbol = scope.ScopeSymbolTable.GetSymbol <TableSymbol>(node.VariableName);
            }

            var tableSchemaPair = tableSymbol.GetTableByAlias(node.VariableName);

            _currentScope.ScopeSymbolTable.AddSymbol(_queryAlias,
                                                     new TableSymbol(_queryAlias, tableSchemaPair.Schema, tableSchemaPair.Table, node.Alias == _queryAlias));
            _currentScope[node.Id] = _queryAlias;

            Nodes.Push(new InMemoryTableFromNode(node.VariableName, _queryAlias));
        }
Example #2
0
 public virtual void Visit(InMemoryTableFromNode node)
 {
     node.Accept(Visitor);
 }
 public void Visit(InMemoryTableFromNode node)
 {
     SetQueryPart(QueryPart.From);
     node.Accept(_visitor);
 }
Example #4
0
 public void Visit(InMemoryTableFromNode node)
 {
     node.Accept(_visitor);
 }
Example #5
0
 public void Visit(InMemoryTableFromNode node)
 {
     Nodes.Push(new InMemoryTableFromNode(node.VariableName, node.Alias));
 }
Example #6
0
 public void Visit(InMemoryTableFromNode node)
 {
 }
Example #7
0
        public void Visit(InMemoryTableFromNode node)
        {
            var alias = string.IsNullOrEmpty(node.Alias) ? node.VariableName : node.Alias;

            Nodes.Push(new InMemoryTableFromNode(node.VariableName, alias));
        }
Example #8
0
 public override void Visit(InMemoryTableFromNode node)
 {
     Visitor.SetQueryPart(QueryPart.From);
     base.Visit(node);
     Visitor.SetQueryPart(QueryPart.None);
 }