public void Visit(AccessColumnNode node) { var identifier = _currentScope.ContainsAttribute(MetaAttributes.ProcessedQueryId) ? _currentScope[MetaAttributes.ProcessedQueryId] : _identifier; var tableSymbol = _currentScope.ScopeSymbolTable.GetSymbol <TableSymbol>(identifier); (ISchema Schema, ISchemaTable Table, string TableName)tuple; if (!string.IsNullOrEmpty(node.Alias)) { tuple = tableSymbol.GetTableByAlias(node.Alias); } else { tuple = tableSymbol.GetTableByColumnName(node.Name); } var column = tuple.Table.Columns.SingleOrDefault(f => f.ColumnName == node.Name); AddAssembly(column.ColumnType.Assembly); node.ChangeReturnType(column.ColumnType); var accessColumn = new AccessColumnNode(column.ColumnName, tuple.TableName, column.ColumnType, node.Span); Nodes.Push(accessColumn); }
public override void Visit(AccessMethodNode node) { if (node.IsAggregateMethod) { Nodes.Pop(); var wordNode = node.Arguments.Args[0] as WordNode; var accessGroup = new AccessColumnNode("none", string.Empty, typeof(Group), TextSpan.Empty); var args = new List <Node> { accessGroup, wordNode }; args.AddRange(node.Arguments.Args.Skip(1)); var extractFromGroup = new AccessMethodNode( new FunctionToken(node.Method.Name, TextSpan.Empty), new ArgsListNode(args.ToArray()), node.ExtraAggregateArguments, node.CanSkipInjectSource, node.Method, node.Alias); Nodes.Push(extractFromGroup); } else if (_fields.Select(f => f.Expression.ToString()).Contains(node.ToString())) { Nodes.Push(new AccessColumnNode(node.ToString(), string.Empty, node.ReturnType, TextSpan.Empty)); } else { base.Visit(node); } }
public override void Visit(AccessColumnNode node) { if (_aliases.ContainsKey(node.Alias)) { base.Visit(new AccessColumnNode(NamingHelper.ToColumnName(node.Alias, node.Name), _aliases[node.Alias], node.ReturnType, TextSpan.Empty)); } else { base.Visit(node); } }
public void Visit(AccessColumnNode node) { var identifier = _currentScope.ContainsAttribute(MetaAttributes.ProcessedQueryId) ? _currentScope[MetaAttributes.ProcessedQueryId] : _identifier; var tableSymbol = _currentScope.ScopeSymbolTable.GetSymbol <TableSymbol>(identifier); (ISchema Schema, ISchemaTable Table, string TableName)tuple; if (!string.IsNullOrEmpty(node.Alias)) { tuple = tableSymbol.GetTableByAlias(node.Alias); } else { tuple = tableSymbol.GetTableByColumnName(node.Name); } ISchemaColumn column; try { column = tuple.Table.GetColumnByName(node.Name); } catch (InvalidOperationException) { column = null; } if (column == null) { PrepareAndThrowUnknownColumnExceptionMessage(node.Name, tuple.Table.Columns); } AddAssembly(column.ColumnType.Assembly); node.ChangeReturnType(column.ColumnType); var accessColumn = new AccessColumnNode(column.ColumnName, tuple.TableName, column.ColumnType, node.Span); Nodes.Push(accessColumn); }
public void Visit(AccessColumnNode node) { node.Accept(_visitor); }
public virtual void Visit(AccessColumnNode node) { node.Accept(Visitor); }
public override void Visit(AccessColumnNode node) { Nodes.Push(new AccessColumnNode(NamingHelper.ToColumnName(node.Alias, node.Name), string.Empty, node.ReturnType, TextSpan.Empty)); }
public virtual void Visit(AccessColumnNode node) { Nodes.Push(new AccessColumnNode(node.Name, node.Alias, node.ReturnType, node.Span)); }
public void Visit(AccessColumnNode node) { }
public override void Visit(AccessColumnNode node) { base.Visit(new AccessColumnNode(NamingHelper.ToColumnName(node.Alias, node.Name), _alias, node.ReturnType, node.Span)); }