Class Window


  • public final class Window
    extends java.lang.Object
    Window clause.
    • Field Detail

      • partitionBy

        private java.util.ArrayList<Expression> partitionBy
      • orderBy

        private java.util.ArrayList<QueryOrderBy> orderBy
      • parent

        private java.lang.String parent
    • Constructor Detail

      • Window

        public Window​(java.lang.String parent,
                      java.util.ArrayList<Expression> partitionBy,
                      java.util.ArrayList<QueryOrderBy> orderBy,
                      WindowFrame frame)
        Creates a new instance of window clause.
        Parameters:
        parent - name of the parent window
        partitionBy - PARTITION BY clause, or null
        orderBy - ORDER BY clause, or null
        frame - window frame clause, or null
    • Method Detail

      • appendOrderBy

        public static void appendOrderBy​(java.lang.StringBuilder builder,
                                         java.util.ArrayList<QueryOrderBy> orderBy,
                                         int sqlFlags,
                                         boolean forceOrderBy)
        Appends ORDER BY clause to the specified builder.
        Parameters:
        builder - string builder
        orderBy - ORDER BY clause, or null
        sqlFlags - formatting flags
        forceOrderBy - whether synthetic ORDER BY clause should be generated when it is missing
      • appendOrderByStart

        private static void appendOrderByStart​(java.lang.StringBuilder builder)
      • resolveWindows

        private void resolveWindows​(ColumnResolver resolver)
      • optimize

        public void optimize​(SessionLocal session)
        Try to optimize the window conditions.
        Parameters:
        session - the session
      • setEvaluatable

        public void setEvaluatable​(TableFilter tableFilter,
                                   boolean value)
        Tell the expression columns whether the table filter can return values now. This is used when optimizing the query.
        Parameters:
        tableFilter - the table filter
        value - true if the table filter can return value
        See Also:
        Expression.setEvaluatable(TableFilter, boolean)
      • getOrderBy

        public java.util.ArrayList<QueryOrderBy> getOrderBy()
        Returns ORDER BY clause.
        Returns:
        ORDER BY clause, or null
      • getWindowFrame

        public WindowFrame getWindowFrame()
        Returns window frame, or null.
        Returns:
        window frame, or null
      • isOrdered

        public boolean isOrdered()
        Returns true if window ordering clause is specified or ROWS unit is used.
        Returns:
        true if window ordering clause is specified or ROWS unit is used
      • getCurrentKey

        public Value getCurrentKey​(SessionLocal session)
        Returns the key for the current group.
        Parameters:
        session - session
        Returns:
        key for the current group, or null
      • getSQL

        public java.lang.StringBuilder getSQL​(java.lang.StringBuilder builder,
                                              int sqlFlags,
                                              boolean forceOrderBy)
        Appends SQL representation to the specified builder.
        Parameters:
        builder - string builder
        sqlFlags - formatting flags
        forceOrderBy - whether synthetic ORDER BY clause should be generated when it is missing
        Returns:
        the specified string builder
        See Also:
        Expression.getSQL(StringBuilder, int, int)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object