The parts of a query node an IR node can be, used as an origin's role

Enumeration Members

ACCESSOR: "accessor"

a source's store accessor

AGGREGATION: "aggregation"

a Group, a Partition or a Pivot: an aggregation's column read or 1 (Count rows), and its reduce; a Partition's rank function

CAPTURE_SORT: "captureSort"

the capture node: the sort by its own order, before its limit

CAST: "cast"

a FULL Join: cast of the merged key to the keys' common type; a Concat that converts types: cast of a column to the type both inputs share

COALESCE: "coalesce"

a FULL Join: coalesce of the two keys

COLUMN: "column"

a Filter: a column in a comparison

CONCAT: "concat"

a Concat: its concatenate call

CONDITION: "condition"

a Join: the condition's comparisons and their and

CONVERT: "convert"

a Concat that converts types: the extend of an input's converted columns, and the column each reads

DIFFERENCE: "difference"

a Difference: the extend of its differences, and each coalesce and minus in them (PLAN §11.7)

DISTINCT: "distinct"

a Distinct: its distinct call, and on SQL Server the column that pads it

DROP: "drop"

a Drop: its drop call and its size

EXPLODE: "explode"

an Explode Array: its lateral, and the column, keys, toMany and flatten in it (PLAN §11.20)

EXPRESSION: "expression"

an Extend: a new column's expression, every value specification in it

EXTEND: "extend"

an Extend: the extend of each new column (PLAN §11.7)

FILTER: "filter"

a Filter: the filter call

FROM: "from"

the capture node: from(runtime)

GROUP: "group"

a Group: its groupBy call, or with no key its aggregate call

JOIN: "join"

a Join: the join call and its join kind

KEY: "key"

a Join: a key column in the condition

LET: "let"

a window node that isn't the capture: the let that binds it (PLAN §8.6)

LIMIT: "limit"

the capture node: limit(rowLimit + 1) and its literal

MERGE: "merge"

a FULL Join: the extend that merges same-named keys

MERGE_KEY: "mergeKey"

a FULL Join: a temporary key column read by the merge

PIVOT: "pivot"

a Pivot: its pivot call and pivot column (PLAN §11.12)

PREDICATE: "predicate"

a Filter: a comparison, and, or, not, or the isEmpty that keeps NULL rows in a negation

RENAME: "rename"

a Join's rename to a temporary name, a Rename's renames, and a Concat's rename of a converted column back to its name

ROW_NUMBER: "rowNumber"

a Drop or Slice on a database that can't skip rows (PLAN §11.4): the extend that numbers the rows, its window and rowNumber, and the default key when no Sort orders the rows

ROW_RANGE: "rowRange"

a Drop or Slice on such a database: the filter on the row numbers

SELECT: "select"

a select: a Join's last, a Restrict's, the one that drops a temporary column, and a Partition's that lists its columns in order

SLICE: "slice"

a Slice: its slice call and its two bounds

SORT: "sort"

a Limit, Drop or Slice: the sort by its input's order, written just before it

SORT_KEY: "sortKey"

a Sort: one of its keys, wherever the order is written

TAKE: "take"

a Limit: its limit call and its size (the capture's own limit is limit)

TO_ONE: "toOne"

a Join: toOne() on a nullable left key

VALUE: "value"

a Filter: a value in a comparison, a literal or an enumeration value

WINDOW: "window"

a Partition: its extends, their window and its sort keys (PLAN §11.6)