protected class SqlToRelConverter.Blackboard extends Object implements org.apache.calcite.sql2rel.SqlRexContext, org.apache.calcite.sql.util.SqlVisitor<org.apache.calcite.rex.RexNode>
Modifier and Type | Field and Description |
---|---|
org.apache.calcite.rel.RelNode |
root |
org.apache.calcite.sql.validate.SqlValidatorScope |
scope
Collection of
RelNode objects which correspond to a SELECT
statement. |
Modifier | Constructor and Description |
---|---|
protected |
Blackboard(org.apache.calcite.sql.validate.SqlValidatorScope scope,
Map<String,org.apache.calcite.rex.RexNode> nameToNodeMap,
boolean top)
Creates a Blackboard.
|
Modifier and Type | Method and Description |
---|---|
org.apache.calcite.rex.RexNode |
convertExpression(org.apache.calcite.sql.SqlNode expr) |
org.apache.calcite.rex.RexNode |
convertInterval(org.apache.calcite.sql.SqlIntervalQualifier intervalQualifier) |
org.apache.calcite.rex.RexNode |
convertLiteral(org.apache.calcite.sql.SqlLiteral literal) |
org.apache.calcite.rex.RexNode |
convertSortExpression(org.apache.calcite.sql.SqlNode expr,
Set<org.apache.calcite.sql.SqlKind> flags)
Converts an item in an ORDER BY clause, extracting DESC, NULLS LAST
and NULLS FIRST flags first.
|
void |
flatten(List<org.apache.calcite.rel.RelNode> rels,
int systemFieldCount,
int[] start,
List<org.apache.calcite.util.Pair<org.apache.calcite.rel.RelNode,Integer>> relOffsetList) |
List<org.apache.calcite.sql.validate.SqlMonotonicity> |
getColumnMonotonicities() |
int |
getGroupCount() |
org.apache.calcite.sql2rel.InitializerExpressionFactory |
getInitializerExpressionFactory() |
org.apache.calcite.rex.RexBuilder |
getRexBuilder() |
org.apache.calcite.rex.RexRangeRef |
getSubQueryExpr(org.apache.calcite.sql.SqlCall call) |
org.apache.calcite.rel.type.RelDataTypeFactory |
getTypeFactory() |
org.apache.calcite.sql.validate.SqlValidator |
getValidator() |
org.apache.calcite.rex.RexNode |
register(org.apache.calcite.rel.RelNode rel,
org.apache.calcite.rel.core.JoinRelType joinType) |
org.apache.calcite.rex.RexNode |
register(org.apache.calcite.rel.RelNode rel,
org.apache.calcite.rel.core.JoinRelType joinType,
List<org.apache.calcite.rex.RexNode> leftKeys)
Registers a relational expression.
|
void |
setDataset(String datasetName)
Notifies this Blackboard that the root just set using
setRoot(RelNode, boolean) was derived using dataset
substitution. |
void |
setPatternVarRef(boolean isVarRef) |
void |
setRoot(org.apache.calcite.rel.RelNode root,
boolean leaf)
Sets a new root relational expression, as the translation process
backs its way further up the tree.
|
org.apache.calcite.rex.RexNode |
visit(org.apache.calcite.sql.SqlCall call) |
org.apache.calcite.rex.RexNode |
visit(org.apache.calcite.sql.SqlDataTypeSpec type) |
org.apache.calcite.rex.RexNode |
visit(org.apache.calcite.sql.SqlDynamicParam param) |
org.apache.calcite.rex.RexNode |
visit(org.apache.calcite.sql.SqlIdentifier id) |
org.apache.calcite.rex.RexNode |
visit(org.apache.calcite.sql.SqlIntervalQualifier intervalQualifier) |
org.apache.calcite.rex.RexNode |
visit(org.apache.calcite.sql.SqlLiteral literal) |
org.apache.calcite.rex.RexNode |
visit(org.apache.calcite.sql.SqlNodeList nodeList) |
public final org.apache.calcite.sql.validate.SqlValidatorScope scope
RelNode
objects which correspond to a SELECT
statement.public org.apache.calcite.rel.RelNode root
protected Blackboard(org.apache.calcite.sql.validate.SqlValidatorScope scope, Map<String,org.apache.calcite.rex.RexNode> nameToNodeMap, boolean top)
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 querypublic void setPatternVarRef(boolean isVarRef)
public org.apache.calcite.rex.RexNode register(org.apache.calcite.rel.RelNode rel, org.apache.calcite.rel.core.JoinRelType joinType)
public org.apache.calcite.rex.RexNode register(org.apache.calcite.rel.RelNode rel, org.apache.calcite.rel.core.JoinRelType joinType, List<org.apache.calcite.rex.RexNode> leftKeys)
rel
- Relational expressionjoinType
- Join typeleftKeys
- LHS of IN clause, or null for expressions
other than INpublic void setRoot(org.apache.calcite.rel.RelNode root, boolean leaf)
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.public void setDataset(String datasetName)
setRoot(RelNode, boolean)
was derived using dataset
substitution.
The default implementation is not interested in such notifications, and does nothing.
datasetName
- Dataset namepublic void flatten(List<org.apache.calcite.rel.RelNode> rels, int systemFieldCount, int[] start, List<org.apache.calcite.util.Pair<org.apache.calcite.rel.RelNode,Integer>> relOffsetList)
public org.apache.calcite.rex.RexNode convertExpression(org.apache.calcite.sql.SqlNode expr)
convertExpression
in interface org.apache.calcite.sql2rel.SqlRexContext
public org.apache.calcite.rex.RexNode convertSortExpression(org.apache.calcite.sql.SqlNode expr, Set<org.apache.calcite.sql.SqlKind> flags)
public int getGroupCount()
getGroupCount
in interface org.apache.calcite.sql2rel.SqlRexContext
public org.apache.calcite.rex.RexBuilder getRexBuilder()
getRexBuilder
in interface org.apache.calcite.sql2rel.SqlRexContext
public org.apache.calcite.rex.RexRangeRef getSubQueryExpr(org.apache.calcite.sql.SqlCall call)
getSubQueryExpr
in interface org.apache.calcite.sql2rel.SqlRexContext
public org.apache.calcite.rel.type.RelDataTypeFactory getTypeFactory()
getTypeFactory
in interface org.apache.calcite.sql2rel.SqlRexContext
public org.apache.calcite.sql2rel.InitializerExpressionFactory getInitializerExpressionFactory()
getInitializerExpressionFactory
in interface org.apache.calcite.sql2rel.SqlRexContext
public org.apache.calcite.sql.validate.SqlValidator getValidator()
getValidator
in interface org.apache.calcite.sql2rel.SqlRexContext
public org.apache.calcite.rex.RexNode convertLiteral(org.apache.calcite.sql.SqlLiteral literal)
convertLiteral
in interface org.apache.calcite.sql2rel.SqlRexContext
public org.apache.calcite.rex.RexNode convertInterval(org.apache.calcite.sql.SqlIntervalQualifier intervalQualifier)
public org.apache.calcite.rex.RexNode visit(org.apache.calcite.sql.SqlLiteral literal)
visit
in interface org.apache.calcite.sql.util.SqlVisitor<org.apache.calcite.rex.RexNode>
public org.apache.calcite.rex.RexNode visit(org.apache.calcite.sql.SqlCall call)
visit
in interface org.apache.calcite.sql.util.SqlVisitor<org.apache.calcite.rex.RexNode>
public org.apache.calcite.rex.RexNode visit(org.apache.calcite.sql.SqlNodeList nodeList)
visit
in interface org.apache.calcite.sql.util.SqlVisitor<org.apache.calcite.rex.RexNode>
public org.apache.calcite.rex.RexNode visit(org.apache.calcite.sql.SqlIdentifier id)
visit
in interface org.apache.calcite.sql.util.SqlVisitor<org.apache.calcite.rex.RexNode>
public org.apache.calcite.rex.RexNode visit(org.apache.calcite.sql.SqlDataTypeSpec type)
visit
in interface org.apache.calcite.sql.util.SqlVisitor<org.apache.calcite.rex.RexNode>
public org.apache.calcite.rex.RexNode visit(org.apache.calcite.sql.SqlDynamicParam param)
visit
in interface org.apache.calcite.sql.util.SqlVisitor<org.apache.calcite.rex.RexNode>
public org.apache.calcite.rex.RexNode visit(org.apache.calcite.sql.SqlIntervalQualifier intervalQualifier)
visit
in interface org.apache.calcite.sql.util.SqlVisitor<org.apache.calcite.rex.RexNode>
public List<org.apache.calcite.sql.validate.SqlMonotonicity> getColumnMonotonicities()
Copyright © 2014–2018 The Apache Software Foundation. All rights reserved.