public static QsiTableNode VisitNamedTableNode(NamedTableNode node) { var identifier = IdentifierVisitor.Visit(node.Name); QsiTableReferenceNode tableNode; if (node.DynamicColumns.Any()) { tableNode = TreeHelper.Create <PDynamicTableReferenceNode>(n => { n.Identifier = identifier; n.DynamicColumns = new QsiColumnsDeclarationNode(); n.DynamicColumns.Columns.AddRange(node.DynamicColumns.Select(VisitDynamicColumn)); }); } else { tableNode = new QsiTableReferenceNode { Identifier = identifier }; } if (string.IsNullOrEmpty(node.Alias)) { PTree.RawNode[tableNode] = node; return(tableNode); } return(TreeHelper.Create <QsiDerivedTableNode>(n => { n.Columns.SetValue(TreeHelper.CreateAllColumnsDeclaration()); n.Source.SetValue(tableNode); n.Alias.SetValue(new QsiAliasNode { Name = IdentifierVisitor.Visit(node) }); PTree.RawNode[n] = node; })); }
public QsiTableNode VisitNamedTableReference(NamedTableReference namedTableReference) { var tableNode = new QsiTableReferenceNode { Identifier = IdentifierVisitor.CreateQualifiedIdentifier(namedTableReference.SchemaObject) }; SqlServerTree.PutFragmentSpan(tableNode, namedTableReference.SchemaObject); if (namedTableReference.Alias == null) { return(tableNode); } return(TreeHelper.Create <QsiDerivedTableNode>(n => { n.Columns.SetValue(TreeHelper.CreateAllColumnsDeclaration()); n.Source.SetValue(tableNode); n.Alias.SetValue(CreateAliasNode(namedTableReference.Alias)); SqlServerTree.PutFragmentSpan(n, namedTableReference); })); }