| Package | Description |
|---|---|
| org.apache.drill.exec.planner.common | |
| org.apache.drill.exec.planner.index | |
| org.apache.drill.exec.planner.logical | |
| org.apache.drill.exec.planner.physical |
| Modifier and Type | Method and Description |
|---|---|
protected LogicalExpression |
DrillFilterRelBase.getFilterExpression(DrillParseContext context) |
protected List<NamedExpression> |
DrillProjectRelBase.getProjectExpressions(DrillParseContext context) |
| Modifier and Type | Method and Description |
|---|---|
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 | Method and Description |
|---|---|
DrillParseContext |
DrillImplementor.getContext() |
| Modifier and Type | Method and Description |
|---|---|
static LogicalExpression |
DrillOptiq.toDrill(DrillParseContext context,
List<org.apache.calcite.rel.RelNode> inputs,
org.apache.calcite.rex.RexNode expr)
Converts a tree of
RexNode operators into a scalar expression in Drill syntax using multiple inputs. |
static LogicalExpression |
DrillOptiq.toDrill(DrillParseContext context,
org.apache.calcite.rel.type.RelDataType type,
org.apache.calcite.rex.RexBuilder builder,
org.apache.calcite.rex.RexNode expr) |
static LogicalExpression |
DrillOptiq.toDrill(DrillParseContext context,
org.apache.calcite.rel.RelNode input,
org.apache.calcite.rex.RexNode expr)
Converts a tree of
RexNode operators into a scalar expression in Drill syntax using one input. |
| Constructor and Description |
|---|
DrillImplementor(DrillParseContext context,
PlanProperties.Generator.ResultMode mode) |
RexToDrill(DrillParseContext context,
org.apache.calcite.rel.type.RelDataType rowType,
org.apache.calcite.rex.RexBuilder builder) |
RexToDrill(DrillParseContext context,
org.apache.calcite.rel.RelNode input) |
| Modifier and Type | Method and Description |
|---|---|
protected LogicalExpression |
FlattenPrel.getFlattenExpression(DrillParseContext context) |
protected List<NamedExpression> |
ProjectAllowDupPrel.getProjectExpressions(DrillParseContext context) |
Copyright © 2021 The Apache Software Foundation. All rights reserved.