Class org::apache::calcite::sql2rel::SqlToRelConverter::Blackboard¶
-
class
Blackboard
: public SqlRexContext, public org::apache::calcite::sql::util::SqlVisitor<RexNode>, public InitializerContext Workspace for translating an individual SELECT statement (or sub-SELECT).
Public Functions
-
SqlNode org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.getTopNode()
-
void org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.setPatternVarRef(boolean isVarRef)
-
RexNode org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.register(RelNode rel, JoinRelType joinType)
-
RexNode org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.register(RelNode rel, JoinRelType joinType, List< RexNode > leftKeys)
Registers a relational expression.
- Return
Expression with which to refer to the row (or partial row) coming from this relational expression’s side of the join
- Parameters
rel
: Relational expressionjoinType
: Join typeleftKeys
: LHS of IN clause, or null for expressions other than IN
-
void org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.setRoot(RelNode root, boolean leaf)
Sets a new root relational expression, as the translation process backs its way further up the tree.
- Parameters
root
: New root relational expressionleaf
: Whether the relational expression is a leaf, that is, derived from an atomic relational expression such as a table name in the from clause, or the projection on top of a select-sub-query. In particular, relational expressions derived from JOIN operators are not leaves, but set expressions are.
-
void org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.setDataset(String datasetName)
Notifies this Blackboard that the root just set using setRoot(RelNode, boolean) was derived using dataset substitution.
The default implementation is not interested in such notifications, and does nothing.
- Parameters
datasetName
: Dataset name
Public Members
-
final SqlValidatorScope org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.scope
Collection of RelNode objects which correspond to a SELECT statement.
-
RelNode org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.root
Protected Functions
-
org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.Blackboard(SqlValidatorScope scope, Map< String, RexNode > nameToNodeMap, boolean top)
Creates a Blackboard.
- Parameters
scope
: Name-resolution scope for expressions validated within this query. Can be null if this Blackboard is for a leaf node, saynameToNodeMap
: Map which translates the expression to map a given parameter into, if translating expressions; null otherwisetop
: Whether this is the root of the query
Private Functions
-
void org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.setRoot(List< RelNode > inputs, RelNode root, boolean hasSystemFields)
Private Members
-
final Map<String, RexNode> org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.nameToNodeMap
-
List<RelNode> org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.inputs
-
final Map<CorrelationId, RexFieldAccess> org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.mapCorrelateToRex = new HashMap<>()
-
boolean org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.isPatternVarRef = false
-
final List<SubQuery> org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.subQueryList = new ArrayList<>()
List of
IN
andEXISTS
nodes inside thisSELECT
statement (but not inside sub-queries).
-
final Map<RelNode, Map<Integer, Integer> > org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.mapRootRelToFieldProjection= new HashMap<>()
Project the groupby expressions out of the root of this sub-select. Sub-queries can reference group by expressions projected from the “right” to the sub-query.
-
final List<SqlMonotonicity> org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.columnMonotonicities = new ArrayList<>()
-
final List<RelDataTypeField> org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.systemFieldList = new ArrayList<>()
-
final InitializerExpressionFactory org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard.initializerExpressionFactory= new NullInitializerExpressionFactory()
-