Read implements Node
Interfaces
Methods
- __construct() : mixed
- 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.
- criteria() : Criteria
- extractor() : Extractor
- 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.
- schema() : Schema
- 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).
- withColumns() : self
- withFilter() : self
- withLimit() : self
- Narrowing only: a second push may lower the limit, never raise it.
- withOffset() : self
- withPathFilter() : self
Methods
__construct()
public
__construct(Extractor $extractor[, Criteria $criteria = new Criteria() ]) : mixed
Parameters
- $extractor : Extractor
-
the instance the user handed to read(); the planner never copies it and changes nothing but its listing caches, which a run drops when it ends (Refreshable::refresh())
- $criteria : Criteria = new Criteria()
-
what the plan pushed into the read, handed to Extractor::extract() when the plan runs; a non-file extractor receives only its limit
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>
Return values
array<int, Node>criteria()
public
criteria() : Criteria
Return values
Criteriaextractor()
public
extractor() : Extractor
Return values
Extractorredefines()
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
RowCountschema()
public
schema() : Schema
Tags
Return values
Schematransparency()
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<string|int, mixed> $children) : self
Parameters
- $children : array<string|int, mixed>
-
exactly as many as children() returns
Return values
selfwithColumns()
public
withColumns(string ...$columns) : self
Parameters
- $columns : string
Tags
Return values
selfwithFilter()
public
withFilter(ScalarFunction $filter) : self
Parameters
- $filter : ScalarFunction
Tags
Return values
selfwithLimit()
Narrowing only: a second push may lower the limit, never raise it.
public
withLimit(int $limit) : self
Parameters
- $limit : int
Tags
Return values
selfwithOffset()
public
withOffset(int $offset) : self
Parameters
- $offset : int
Tags
Return values
selfwithPathFilter()
public
withPathFilter(Filter $filter) : self
Parameters
- $filter : Filter