Class Window

java.lang.Object
org.h2.expression.analysis.Window

public final class Window extends Object
Window clause.
  • Field Details

  • Constructor Details

    • Window

      public Window(String parent, ArrayList<Expression> partitionBy, 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 Details

    • appendOrderBy

      public static void appendOrderBy(StringBuilder builder, 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(StringBuilder builder)
    • mapColumns

      public void mapColumns(ColumnResolver resolver, int level)
      Map the columns of the resolver to expression columns.
      Parameters:
      resolver - the column resolver
      level - the subquery nesting level
      See Also:
    • 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:
    • getOrderBy

      public 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 StringBuilder getSQL(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:
    • updateAggregate

      public void updateAggregate(SessionLocal session, int stage)
      Update an aggregate value.
      Parameters:
      session - the session
      stage - select stage
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object