| Modifier and Type | Method and Description |
|---|---|
DrillProjectRelBase |
IndexPhysicalPlanCallContext.getLowerProject() |
DrillProjectRelBase |
IndexLogicalPlanCallContext.getLowerProject() |
DrillProjectRelBase |
IndexCallContext.getLowerProject() |
DrillProjectRelBase |
IndexPhysicalPlanCallContext.getUpperProject() |
DrillProjectRelBase |
IndexLogicalPlanCallContext.getUpperProject() |
DrillProjectRelBase |
IndexCallContext.getUpperProject() |
| Modifier and Type | Method and Description |
|---|---|
static org.apache.calcite.rel.RelCollation |
IndexPlanUtils.buildCollationProject(List<org.apache.calcite.rex.RexNode> projectRexs,
DrillProjectRelBase project,
org.apache.calcite.rel.RelNode input,
FunctionalIndexInfo indexInfo,
IndexCallContext context)
Build collation property for project, the one closer to the Scan
|
static Map<LogicalExpression,Integer> |
IndexPlanUtils.getProjectExprs(List<org.apache.calcite.rex.RexNode> projectRexs,
DrillProjectRelBase project,
org.apache.calcite.rel.RelNode input) |
static List<org.apache.calcite.rex.RexNode> |
IndexPlanUtils.getProjects(DrillProjectRelBase proj) |
static org.apache.calcite.rex.RexNode |
IndexPlanUtils.rewriteFunctionalRex(IndexCallContext indexContext,
DrillParseContext parseContext,
DrillProjectRelBase project,
org.apache.calcite.rel.RelNode scan,
org.apache.calcite.rex.RexNode toRewriteRex,
org.apache.calcite.rel.type.RelDataType newRowType,
FunctionalIndexInfo functionInfo)
A RexNode forest with three RexNodes for expressions "cast(a.q as int) * 2, b+c, concat(a.q, " world")"
on Scan RowType('a', 'b', 'c') will be like this:
(0)Call:"*" Call:"concat"
/ \ / \
(1)Call:CAST 2 Call:"+" (5)Call:ITEM ' world'
/ \ / \ / \
(2)Call:ITEM TYPE:INT (3)$1 (4)$2 $0 'q'
/ \
$0 'q'
So for above expressions, when visiting the RexNode trees using PathInExpr, we could mark indexed expressions in the trees,
as shown in the diagram above are the node (1),
then collect the schema paths in the indexed expression but found out of the indexed expression -- node (5),
and other regular schema paths (3) (4)
|
static LogicalExpression |
RexToExpression.toDrill(DrillParseContext context,
DrillProjectRelBase project,
org.apache.calcite.rel.RelNode input,
org.apache.calcite.rex.RexNode expr) |
| Constructor and Description |
|---|
RexToDrillExt(DrillParseContext context,
DrillProjectRelBase project,
org.apache.calcite.rel.RelNode input) |
| Modifier and Type | Field and Description |
|---|---|
protected DrillProjectRelBase |
AbstractIndexPlanGenerator.origProject |
protected DrillProjectRelBase |
AbstractIndexPlanGenerator.upperProject |
| Modifier and Type | Class and Description |
|---|---|
class |
DrillProjectRel
Project implemented in Drill.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ProjectAllowDupPrel |
class |
ProjectPrel
A physical Prel node for Project operator.
|
Copyright © 2021 The Apache Software Foundation. All rights reserved.