Node
Methods
- children() : array<int, Node>
- Inputs, in the order they are planned. children()[0] is the node's ROW INPUT - the chain a rule walks down and the chain Planner::pipelines() cuts into pipelines. A join's second child is the joined frame's whole plan: its Result or Outputs root, read without taking its rows as input and never rewritten by this plan's rewrites.
- redefines() : Redefined
- Columns this node introduces, renames or removes on its output. A predicate that references one of them means a different column below this node, so it cannot be pushed past it. Answered from what the node holds, never from a class list.
- requiredInputColumns() : RequiredColumns
- rowCount() : RowCount
- What this node does to the row count. Answered from what the node holds, never from a class list.
- transparency() : Transparency
- Whether the node's output is a function of the rows it is handed, one at a time, with no effect outside the stream.
- withChildren() : self
- The same node over new children. Returns $this when the children are the ones it already holds, so an untouched subtree keeps its identity and its planned steps (PlannedNodes remembers them by identity).
Methods
children()
Inputs, in the order they are planned. children()[0] is the node's ROW INPUT - the chain a rule walks down and the chain Planner::pipelines() cuts into pipelines. A join's second child is the joined frame's whole plan: its Result or Outputs root, read without taking its rows as input and never rewritten by this plan's rewrites.
public
children() : array<int, Node>
A leaf returns [].
Two kinds break that shape. A Transaction is a write root whose children are sibling write roots it commits together - never a row input, never on a spine. Outputs is the root of a plan with several consumers: children()[0] is the spine consumer, and every further child is a consumer too.
A plan's root is whatever consumer its Trigger built - a Result, a write, or an Outputs over several. A Result or Outputs is also the first node of a frame that read another frame, and the right child of a join.
Return values
array<int, Node>redefines()
Columns this node introduces, renames or removes on its output. A predicate that references one of them means a different column below this node, so it cannot be pushed past it. Answered from what the node holds, never from a class list.
public
redefines() : Redefined
Return values
RedefinedrequiredInputColumns()
public
requiredInputColumns(RequiredColumns $output) : RequiredColumns
Parameters
- $output : RequiredColumns
Return values
RequiredColumnsrowCount()
What this node does to the row count. Answered from what the node holds, never from a class list.
public
rowCount() : RowCount
Return values
RowCounttransparency()
Whether the node's output is a function of the rows it is handed, one at a time, with no effect outside the stream.
public
transparency() : Transparency
Return values
TransparencywithChildren()
The same node over new children. Returns $this when the children are the ones it already holds, so an untouched subtree keeps its identity and its planned steps (PlannedNodes remembers them by identity).
public
withChildren(array<int, Node> $children) : self
Parameters
- $children : array<int, Node>
-
exactly as many as children() returns