Esempio n. 1
0
 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;
 }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
 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;
 }
Esempio n. 5
0
        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);
        }