Package org.h2.expression.analysis
Class WindowFrame
- java.lang.Object
-
- org.h2.expression.analysis.WindowFrame
-
public final class WindowFrame extends java.lang.ObjectWindow frame clause.
-
-
Constructor Summary
Constructors Constructor Description WindowFrame(WindowFrameUnits units, WindowFrameBound starting, WindowFrameBound following, WindowFrameExclusion exclusion)Creates new instance of window frame clause.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static intgetEndIndex(Window over, SessionLocal session, java.util.ArrayList<Value[]> orderedRows, SortOrder sortOrder, int currentRow)Returns end index for the specified frame, or default end index if frame is null.WindowFrameExclusiongetExclusion()Returns the exclusion clause.WindowFrameBoundgetFollowing()Returns the following clause.java.lang.StringBuildergetSQL(java.lang.StringBuilder builder, int formattingFlags)Append SQL representation to the specified builder.intgetStartIndex(SessionLocal session, java.util.ArrayList<Value[]> orderedRows, SortOrder sortOrder, int currentRow)Returns start index of this frame,WindowFrameBoundgetStarting()Returns the starting clause.WindowFrameUnitsgetUnits()Returns the units.booleanisValid()Checks validity of this frame.booleanisVariableBounds()Check if bounds of this frame has variable expressions.java.util.Iterator<Value[]>iterator(SessionLocal session, java.util.ArrayList<Value[]> orderedRows, SortOrder sortOrder, int currentRow, boolean reverse)Returns iterator.static java.util.Iterator<Value[]>iterator(Window over, SessionLocal session, java.util.ArrayList<Value[]> orderedRows, SortOrder sortOrder, int currentRow, boolean reverse)Returns iterator for the specified frame, or default iterator if frame is null.
-
-
-
Constructor Detail
-
WindowFrame
public WindowFrame(WindowFrameUnits units, WindowFrameBound starting, WindowFrameBound following, WindowFrameExclusion exclusion)
Creates new instance of window frame clause.- Parameters:
units- unitsstarting- starting clausefollowing- following clauseexclusion- exclusion clause
-
-
Method Detail
-
iterator
public static java.util.Iterator<Value[]> iterator(Window over, SessionLocal session, java.util.ArrayList<Value[]> orderedRows, SortOrder sortOrder, int currentRow, boolean reverse)
Returns iterator for the specified frame, or default iterator if frame is null.- Parameters:
over- windowsession- the sessionorderedRows- ordered rowssortOrder- sort ordercurrentRow- index of the current rowreverse- whether iterator should iterate in reverse order- Returns:
- iterator
-
getEndIndex
public static int getEndIndex(Window over, SessionLocal session, java.util.ArrayList<Value[]> orderedRows, SortOrder sortOrder, int currentRow)
Returns end index for the specified frame, or default end index if frame is null.- Parameters:
over- windowsession- the sessionorderedRows- ordered rowssortOrder- sort ordercurrentRow- index of the current row- Returns:
- end index
- Throws:
java.lang.UnsupportedOperationException- if over is not null and its exclusion clause is not EXCLUDE NO OTHERS
-
getUnits
public WindowFrameUnits getUnits()
Returns the units.- Returns:
- the units
-
getStarting
public WindowFrameBound getStarting()
Returns the starting clause.- Returns:
- the starting clause
-
getFollowing
public WindowFrameBound getFollowing()
Returns the following clause.- Returns:
- the following clause, or null
-
getExclusion
public WindowFrameExclusion getExclusion()
Returns the exclusion clause.- Returns:
- the exclusion clause
-
isValid
public boolean isValid()
Checks validity of this frame.- Returns:
- whether bounds of this frame valid
-
isVariableBounds
public boolean isVariableBounds()
Check if bounds of this frame has variable expressions. This method may be used only afteroptimize(SessionLocal)invocation.- Returns:
- if bounds of this frame has variable expressions
-
iterator
public java.util.Iterator<Value[]> iterator(SessionLocal session, java.util.ArrayList<Value[]> orderedRows, SortOrder sortOrder, int currentRow, boolean reverse)
Returns iterator.- Parameters:
session- the sessionorderedRows- ordered rowssortOrder- sort ordercurrentRow- index of the current rowreverse- whether iterator should iterate in reverse order- Returns:
- iterator
-
getStartIndex
public int getStartIndex(SessionLocal session, java.util.ArrayList<Value[]> orderedRows, SortOrder sortOrder, int currentRow)
Returns start index of this frame,- Parameters:
session- the sessionorderedRows- ordered rowssortOrder- sort ordercurrentRow- index of the current row- Returns:
- start index
- Throws:
java.lang.UnsupportedOperationException- if exclusion clause is not EXCLUDE NO OTHERS
-
getSQL
public java.lang.StringBuilder getSQL(java.lang.StringBuilder builder, int formattingFlags)Append SQL representation to the specified builder.- Parameters:
builder- string builderformattingFlags- quote all identifiers- Returns:
- the specified string builder
- See Also:
Expression.getSQL(StringBuilder, int, int)
-
-