One window-function call found inside a
SqlGuardResponse.LineageEdge's
source expression. Activated by blueprint §1.5.B B1 / B2.
functionName — uppercase function name
(e.g. "COUNT", "LAG", "ROW_NUMBER"),
or "FUNC(DISTINCT)" when the call uses the DISTINCT
modifier. Matches the
SqlGuardResponse.LineageEdge.aggregateFunctions convention.
partitionBy — column names from PARTITION BY
in textual order. Captured from the TFunctionCall's
getWindowDef().getPartitionClause(). Identifiers are
lowercased per the project's vendor-aware folding so the
wire shape matches the rest of sourceColumns; values
are simple identifiers (no schema/table qualifier) because
the partition syntax accepts bare expressions, not necessarily
fully-qualified column refs.
orderBy — entries from the window's ORDER BY
clause as {column, direction} pairs, in textual
order. direction is "ASC" / "DESC" /
"NONE" when omitted in the SQL.
frame — raw text of the frame specification when
present (e.g. "ROWS BETWEEN 1 PRECEDING AND CURRENT
ROW"), or null when no frame clause is given. We
expose the source text rather than typed boundary nodes
because frame syntax varies sharply across dialects;
downstream consumers that need typed access should walk the
AST. Omitted from JSON when null.
Wire-format contract: functionName, partitionBy,
orderBy are always present (possibly empty list); frame is OMITTED from the JSON map when null.