public ImmutableHanaDerivedTableNode( IQsiTreeNode parent, IQsiTableDirectivesNode directives, IQsiColumnsDeclarationNode columns, IQsiTableNode source, IQsiAliasNode alias, IQsiWhereExpressionNode @where, IQsiGroupingExpressionNode grouping, IQsiMultipleOrderExpressionNode order, IQsiLimitExpressionNode limit, QsiExpressionNode top, HanaResultSetOperation?operation, QsiExpressionFragmentNode sampling, HanaTableBehaviorNode behavior, QsiExpressionFragmentNode timeTravel, QsiExpressionFragmentNode hint, IUserDataHolder userData) { Parent = parent; Directives = directives; Columns = columns; Source = source; Alias = alias; Where = @where; Grouping = grouping; Order = order; Limit = limit; Top = top; Operation = operation; Sampling = sampling; Behavior = behavior; TimeTravel = timeTravel; Hint = hint; UserData = userData; }
protected bool IsWildcard(IQsiColumnsDeclarationNode node) { if (node.Count != 1) { return(false); } return (node.Columns[0] is IQsiAllColumnNode { Path : null });
public ImmutableInlineDerivedTableNode( IQsiTreeNode parent, IQsiAliasNode alias, IQsiColumnsDeclarationNode columns, IQsiRowValueExpressionNode[] rows, IUserDataHolder userData) { Parent = parent; Alias = alias; Columns = columns; Rows = rows; UserData = userData; }
public ImmutableJoinedTableNode( IQsiTreeNode parent, IQsiTableNode left, QsiJoinType joinType, IQsiTableNode right, IQsiColumnsDeclarationNode pivotColumns, IUserDataHolder userData) { Parent = parent; Left = left; JoinType = joinType; Right = right; PivotColumns = pivotColumns; UserData = userData; }
public ImmutableJoinedTableNode( IQsiTreeNode parent, IQsiTableNode left, string joinType, bool isNatural, bool isComma, IQsiTableNode right, IQsiColumnsDeclarationNode pivotColumns, IUserDataHolder userData) { Parent = parent; Left = left; JoinType = joinType; IsNatural = isNatural; IsComma = isComma; Right = right; PivotColumns = pivotColumns; UserData = userData; }
public ImmutableDerivedTableNode( IQsiTreeNode parent, IQsiTableDirectivesNode directives, IQsiColumnsDeclarationNode columns, IQsiTableNode source, IQsiAliasNode alias, IQsiWhereExpressionNode @where, IQsiGroupingExpressionNode grouping, IQsiMultipleOrderExpressionNode order, IQsiLimitExpressionNode limit, IUserDataHolder userData) { Parent = parent; Directives = directives; Columns = columns; Source = source; Alias = alias; Where = @where; Grouping = grouping; Order = order; Limit = limit; UserData = userData; }
private IEnumerable <ColumnPlan> CompileColumnPlan(IAnalyzerContext context, QsiTableStructure table, IQsiColumnsDeclarationNode columns) { if (columns.Columns.All(c => c is IQsiAllColumnNode)) { return(table.Columns.Select(c => new ColumnPlan(c.Name))); } var plans = new Dictionary <QsiIdentifier, ColumnPlan>(IdentifierComparer); foreach (var column in columns) { QsiIdentifier identifier; ISelector[] selectors = null; switch (column) { case IQsiDeclaredColumnNode declaredColumn: { identifier = declaredColumn.Name[^ 1];