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; }
public ImmutableCompositeTableNode( IQsiTreeNode parent, IQsiTableNode[] sources, IQsiMultipleOrderExpressionNode orderExpression, IQsiLimitExpressionNode limitExpression, IUserDataHolder userData) { Parent = parent; Sources = sources; OrderExpression = orderExpression; LimitExpression = limitExpression; UserData = userData; }
protected override void DeparseLimitExpressionNode(ScriptWriter writer, IQsiLimitExpressionNode node, QsiScript script) { if (node.Limit is not null) { writer.Write("LIMIT "); DeparseTreeNode(writer, node.Limit, script); } if (node.Offset is not null) { if (node.Limit is not null) { writer.WriteSpace(); } writer.Write("OFFSET "); DeparseTreeNode(writer, node.Offset, script); } }
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; }
protected override void DeparseLimitExpressionNode(ScriptWriter writer, IQsiLimitExpressionNode node, QsiScript script) { if (node is HanaLimitExpressionNode hanaLimit) { writer.Write("LIMIT "); DeparseTreeNode(writer, node.Limit, script); if (node.Offset != null) { writer.WriteSpace(); DeparseTreeNode(writer, node.Offset, script); } if (hanaLimit.TotalRowCount) { writer.WriteSpace(); writer.Write("TOTAL ROWCOUNT"); } return; } base.DeparseLimitExpressionNode(writer, node, script); }