public final class WindowFrame extends Object
WindowSpec carries
a non-null frame, the SQL projection had a ROWS/RANGE/GROUPS BETWEEN ... clause inside its OVER (...).
Frame is presentation metadata only. The dlineage XML harvests no
frame information: DataFlowAnalyzer.generateDataFlow() walks only
PARTITION BY / OVER ORDER BY expressions for windowed calls
(DataFlowAnalyzer.java:20558-20575). Frame information therefore does NOT
appear in the canonical model. Adding canonical edges only on the IR side
would manufacture divergence-by-design (same reasoning as slice-13
PARTITION BY refs, slice-21 outer ORDER BY refs).
end is null for the unary form (ROWS UNBOUNDED PRECEDING)
which standard SQL treats as BETWEEN UNBOUNDED PRECEDING AND CURRENT
ROW; the IR preserves the surface shape rather than expanding it.
The EXCLUDE clause is rejected at build time: Netezza's parser
populates TWindowFrameBoundary.getExclusionClause() on the END
boundary; lifting requires deciding whether EXCLUDE contributes to
row-influence semantics.
| Modifier and Type | Class and Description |
|---|---|
static class |
WindowFrame.Unit |
| Constructor and Description |
|---|
WindowFrame(WindowFrame.Unit unit,
FrameBound start,
FrameBound end) |
| Modifier and Type | Method and Description |
|---|---|
FrameBound |
getEnd() |
FrameBound |
getStart() |
WindowFrame.Unit |
getUnit() |
public WindowFrame(WindowFrame.Unit unit, FrameBound start, FrameBound end)
public WindowFrame.Unit getUnit()
public FrameBound getStart()
public FrameBound getEnd()