You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by dz...@apache.org on 2022/05/12 17:28:02 UTC
[drill] branch master updated: DRILL-8211: Replace deprecated RelNode.getChildExps with Project.getProjects (#2535)
This is an automated email from the ASF dual-hosted git repository.
dzamo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git
The following commit(s) were added to refs/heads/master by this push:
new c95777439c DRILL-8211: Replace deprecated RelNode.getChildExps with Project.getProjects (#2535)
c95777439c is described below
commit c95777439c79f4cd936cefa1ee683d83878e40c9
Author: Volodymyr Vysotskyi <vv...@gmail.com>
AuthorDate: Thu May 12 20:27:55 2022 +0300
DRILL-8211: Replace deprecated RelNode.getChildExps with Project.getProjects (#2535)
---
.../exec/store/mapr/db/MapRDBPushProjectIntoScan.java | 10 ++++------
.../store/elasticsearch/plan/ElasticsearchProjectRule.java | 4 ++--
.../apache/drill/exec/planner/common/DrillRelOptUtil.java | 8 ++++----
.../planner/logical/DrillFilterItemStarReWriterRule.java | 8 ++++----
.../drill/exec/planner/logical/DrillMergeProjectRule.java | 10 +++-------
.../logical/DrillProjectPushIntoLateralJoinRule.java | 14 ++++++--------
.../exec/planner/logical/DrillPushProjectIntoScanRule.java | 9 ++++-----
.../planner/logical/DrillPushRowKeyJoinToScanRule.java | 5 +++--
.../drill/exec/planner/logical/PreProcessLogicalRel.java | 10 +++++-----
.../exec/planner/physical/explain/NumberingRelWriter.java | 8 +-------
.../planner/physical/visitor/RewriteProjectToFlatten.java | 4 ++--
.../physical/visitor/SplitUpComplexExpressions.java | 7 +++----
.../exec/planner/sql/handlers/ComplexUnnestVisitor.java | 2 +-
.../exec/store/enumerable/plan/DrillJdbcRuleBase.java | 13 +++----------
.../drill/exec/store/plan/rule/PluginProjectRule.java | 2 +-
15 files changed, 46 insertions(+), 68 deletions(-)
diff --git a/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/MapRDBPushProjectIntoScan.java b/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/MapRDBPushProjectIntoScan.java
index d8d0a2c41a..67e40947e5 100644
--- a/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/MapRDBPushProjectIntoScan.java
+++ b/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/MapRDBPushProjectIntoScan.java
@@ -17,7 +17,6 @@
*/
package org.apache.drill.exec.store.mapr.db;
-import org.apache.drill.shaded.guava.com.google.common.collect.Lists;
import org.apache.calcite.plan.RelOptRuleCall;
import org.apache.calcite.plan.RelOptRuleOperand;
import org.apache.calcite.plan.RelTrait;
@@ -38,6 +37,7 @@ import org.apache.drill.exec.store.mapr.db.json.JsonTableGroupScan;
import org.apache.drill.exec.util.Utilities;
import java.util.List;
+import java.util.stream.Collectors;
/**
* Push a physical Project into Scan. Currently, this rule is only doing projection pushdown for MapRDB-JSON tables
@@ -46,7 +46,6 @@ import java.util.List;
* planning phase.
*/
public abstract class MapRDBPushProjectIntoScan extends StoragePluginOptimizerRule {
- static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(MapRDBPushProjectIntoScan.class);
private MapRDBPushProjectIntoScan(RelOptRuleOperand operand, String description) {
super(operand, description);
@@ -99,10 +98,9 @@ public abstract class MapRDBPushProjectIntoScan extends StoragePluginOptimizerRu
groupScan.clone(columnInfo.getFields()),
columnInfo.createNewRowType(project.getInput().getCluster().getTypeFactory()), scan.getTable());
- List<RexNode> newProjects = Lists.newArrayList();
- for (RexNode n : project.getChildExps()) {
- newProjects.add(n.accept(columnInfo.getInputReWriter()));
- }
+ List<RexNode> newProjects = project.getProjects().stream()
+ .map(n -> n.accept(columnInfo.getInputReWriter()))
+ .collect(Collectors.toList());
final ProjectPrel newProj =
new ProjectPrel(project.getCluster(),
diff --git a/contrib/storage-elasticsearch/src/main/java/org/apache/drill/exec/store/elasticsearch/plan/ElasticsearchProjectRule.java b/contrib/storage-elasticsearch/src/main/java/org/apache/drill/exec/store/elasticsearch/plan/ElasticsearchProjectRule.java
index 1995262b94..f64cac6278 100644
--- a/contrib/storage-elasticsearch/src/main/java/org/apache/drill/exec/store/elasticsearch/plan/ElasticsearchProjectRule.java
+++ b/contrib/storage-elasticsearch/src/main/java/org/apache/drill/exec/store/elasticsearch/plan/ElasticsearchProjectRule.java
@@ -65,7 +65,7 @@ public class ElasticsearchProjectRule extends ConverterRule {
// check for literals only without input exprs
DrillRelOptUtil.InputRefVisitor collectRefs = new DrillRelOptUtil.InputRefVisitor();
- project.getChildExps().forEach(exp -> exp.accept(collectRefs));
+ project.getProjects().forEach(exp -> exp.accept(collectRefs));
if (!collectRefs.getInputRefs().isEmpty()) {
for (RelDataTypeField relDataTypeField : rowType.getFieldList()) {
@@ -73,7 +73,7 @@ public class ElasticsearchProjectRule extends ConverterRule {
}
}
- boolean allExprsInputRefs = project.getChildExps().stream().allMatch(rexNode -> rexNode instanceof RexInputRef);
+ boolean allExprsInputRefs = project.getProjects().stream().allMatch(rexNode -> rexNode instanceof RexInputRef);
if (collectRefs.getInputRefs().isEmpty() || allExprsInputRefs) {
return CalciteUtils.createProject(traitSet,
convert(project.getInput(), out), project.getProjects(), project.getRowType());
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelOptUtil.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelOptUtil.java
index d64215401d..adfddd5a51 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelOptUtil.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelOptUtil.java
@@ -444,12 +444,12 @@ public abstract class DrillRelOptUtil {
}
}
- @SuppressWarnings("deprecation")
- public static boolean isProjectFlatten(RelNode project) {
+ public static boolean isProjectFlatten(RelNode relNode) {
- assert project instanceof Project : "Rel is NOT an instance of project!";
+ assert relNode instanceof Project : "Rel is NOT an instance of Project";
- for (RexNode rex : project.getChildExps()) {
+ Project project = (Project) relNode;
+ for (RexNode rex : project.getProjects()) {
if (rex instanceof RexCall) {
RexCall function = (RexCall) rex;
String functionName = function.getOperator().getName();
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterItemStarReWriterRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterItemStarReWriterRule.java
index b7cdcfc9b6..349d10dbcf 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterItemStarReWriterRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterItemStarReWriterRule.java
@@ -39,6 +39,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import static org.apache.drill.exec.planner.logical.FieldsReWriterUtil.DesiredField;
import static org.apache.drill.exec.planner.logical.FieldsReWriterUtil.FieldsReWriter;
@@ -99,10 +100,9 @@ public class DrillFilterItemStarReWriterRule {
// re-write projects
Map<RexNode, Integer> fieldMapper = createFieldMapper(itemStarFields.values(), scanRel.getRowType().getFieldCount());
FieldsReWriter fieldsReWriter = new FieldsReWriter(fieldMapper);
- List<RexNode> newProjects = new ArrayList<>();
- for (RexNode node : projectRel.getChildExps()) {
- newProjects.add(node.accept(fieldsReWriter));
- }
+ List<RexNode> newProjects = projectRel.getProjects().stream()
+ .map(node -> node.accept(fieldsReWriter))
+ .collect(Collectors.toList());
DrillProjectRel newProject = new DrillProjectRel(
projectRel.getCluster(),
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeProjectRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeProjectRule.java
index 9801011843..46cbdb4850 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeProjectRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeProjectRule.java
@@ -46,7 +46,7 @@ import java.util.List;
*/
public class DrillMergeProjectRule extends RelOptRule {
- private FunctionImplementationRegistry functionRegistry;
+ private final FunctionImplementationRegistry functionRegistry;
private final boolean force;
public static DrillMergeProjectRule getInstance(boolean force, ProjectFactory pFactory,
@@ -71,15 +71,11 @@ public class DrillMergeProjectRule extends RelOptRule {
Project bottomProject = call.rel(1);
// We have a complex output type do not fire the merge project rule
- if (checkComplexOutput(topProject) || checkComplexOutput(bottomProject)) {
- return false;
- }
-
- return true;
+ return !checkComplexOutput(topProject) && !checkComplexOutput(bottomProject);
}
private boolean checkComplexOutput(Project project) {
- for (RexNode expr: project.getChildExps()) {
+ for (RexNode expr: project.getProjects()) {
if (expr instanceof RexCall) {
if (functionRegistry.isFunctionComplexOutput(((RexCall) expr).getOperator().getName())) {
return true;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectPushIntoLateralJoinRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectPushIntoLateralJoinRule.java
index d44b916ad7..722598a3b6 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectPushIntoLateralJoinRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectPushIntoLateralJoinRule.java
@@ -54,7 +54,7 @@ public class DrillProjectPushIntoLateralJoinRule extends RelOptRule {
return;
}
DrillRelOptUtil.InputRefVisitor collectRefs = new DrillRelOptUtil.InputRefVisitor();
- for (RexNode exp: origProj.getChildExps()) {
+ for (RexNode exp: origProj.getProjects()) {
exp.accept(collectRefs);
}
@@ -78,7 +78,7 @@ public class DrillProjectPushIntoLateralJoinRule extends RelOptRule {
if (!trivial) {
Map<Integer, Integer> mapWithoutCorr = buildMapWithoutCorrColumn(corr, correlationIndex);
- List<RexNode> outputExprs = DrillRelOptUtil.transformExprs(origProj.getCluster().getRexBuilder(), origProj.getChildExps(), mapWithoutCorr);
+ List<RexNode> outputExprs = DrillRelOptUtil.transformExprs(origProj.getCluster().getRexBuilder(), origProj.getProjects(), mapWithoutCorr);
relNode = new DrillProjectRel(origProj.getCluster(),
left.getTraitSet().plus(DrillRel.DRILL_LOGICAL),
@@ -89,14 +89,12 @@ public class DrillProjectPushIntoLateralJoinRule extends RelOptRule {
private Map<Integer, Integer> buildMapWithoutCorrColumn(RelNode corr, int correlationIndex) {
int index = 0;
- Map<Integer, Integer> result = new HashMap();
- for (int i=0;i<corr.getRowType().getFieldList().size();i++) {
- if (i == correlationIndex) {
- continue;
- } else {
+ Map<Integer, Integer> result = new HashMap<>();
+ for (int i = 0; i < corr.getRowType().getFieldList().size(); i++) {
+ if (i != correlationIndex) {
result.put(i, index++);
}
}
return result;
}
-}
\ No newline at end of file
+}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectIntoScanRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectIntoScanRule.java
index c7f1fc97d2..9da72c4b48 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectIntoScanRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectIntoScanRule.java
@@ -36,8 +36,8 @@ import org.apache.drill.exec.planner.physical.ScanPrel;
import org.apache.drill.exec.util.Utilities;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
/**
* When table support project push down, rule can be applied to reduce number of read columns
@@ -110,10 +110,9 @@ public class DrillPushProjectIntoScanRule extends RelOptRule {
TableScan newScan = createScan(scan, projectPushInfo);
- List<RexNode> newProjects = new ArrayList<>();
- for (RexNode n : project.getChildExps()) {
- newProjects.add(n.accept(projectPushInfo.getInputReWriter()));
- }
+ List<RexNode> newProjects = project.getProjects().stream()
+ .map(n -> n.accept(projectPushInfo.getInputReWriter()))
+ .collect(Collectors.toList());
Project newProject =
createProject(project, newScan, newProjects);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushRowKeyJoinToScanRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushRowKeyJoinToScanRule.java
index b06c58f18e..835fdf182d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushRowKeyJoinToScanRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushRowKeyJoinToScanRule.java
@@ -463,8 +463,9 @@ public class DrillPushRowKeyJoinToScanRule extends RelOptRule {
}
// If no exprs present in projection the column index remains the same in the child.
// Otherwise, the column index is the `RexInputRef` index.
- if (curRel != null && curRel instanceof DrillProjectRel) {
- List<RexNode> childExprs = curRel.getChildExps();
+ if (curRel instanceof DrillProjectRel) {
+ DrillProjectRel projectRel = (DrillProjectRel) curRel;
+ List<RexNode> childExprs = projectRel.getProjects();
if (childExprs != null && childExprs.size() > 0) {
if (childExprs.get(curIndex) instanceof RexInputRef) {
curIndex = ((RexInputRef) childExprs.get(curIndex)).getIndex();
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PreProcessLogicalRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PreProcessLogicalRel.java
index 7dbd84a3e9..b87350d6dd 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PreProcessLogicalRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PreProcessLogicalRel.java
@@ -58,9 +58,9 @@ public class PreProcessLogicalRel extends RelShuttleImpl {
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(PreProcessLogicalRel.class);
- private RelDataTypeFactory factory;
- private DrillOperatorTable table;
- private UnsupportedOperatorCollector unsupportedOperatorCollector;
+ private final RelDataTypeFactory factory;
+ private final DrillOperatorTable table;
+ private final UnsupportedOperatorCollector unsupportedOperatorCollector;
private final UnwrappingExpressionVisitor unwrappingExpressionVisitor;
public static PreProcessLogicalRel createVisitor(RelDataTypeFactory factory, DrillOperatorTable table, RexBuilder rexBuilder) {
@@ -78,7 +78,7 @@ public class PreProcessLogicalRel extends RelShuttleImpl {
@Override
public RelNode visit(LogicalProject project) {
final List<RexNode> projExpr = Lists.newArrayList();
- for(RexNode rexNode : project.getChildExps()) {
+ for(RexNode rexNode : project.getProjects()) {
projExpr.add(rexNode.accept(unwrappingExpressionVisitor));
}
@@ -90,7 +90,7 @@ public class PreProcessLogicalRel extends RelShuttleImpl {
List<RexNode> exprList = new ArrayList<>();
boolean rewrite = false;
- for (RexNode rex : project.getChildExps()) {
+ for (RexNode rex : project.getProjects()) {
RexNode newExpr = rex;
if (rex instanceof RexCall) {
RexCall function = (RexCall) rex;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/NumberingRelWriter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/NumberingRelWriter.java
index 5e90f855c6..335605c140 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/NumberingRelWriter.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/NumberingRelWriter.java
@@ -28,7 +28,6 @@ import org.apache.calcite.linq4j.Ord;
import org.apache.calcite.rel.RelNode;
import org.apache.calcite.rel.RelWriter;
import org.apache.calcite.rel.metadata.RelMetadataQuery;
-import org.apache.calcite.rex.RexNode;
import org.apache.calcite.runtime.FlatLists;
import org.apache.calcite.sql.SqlExplainLevel;
import org.apache.calcite.util.Pair;
@@ -209,7 +208,6 @@ class NumberingRelWriter implements RelWriter {
return this;
}
- @SuppressWarnings("deprecation")
public RelWriter done(RelNode node) {
int i = 0;
if (values.size() > 0 && values.get(0).left.equals("subset")) {
@@ -219,11 +217,7 @@ class NumberingRelWriter implements RelWriter {
assert values.get(i).right == input;
++i;
}
- for (RexNode expr : node.getChildExps()) {
- assert values.get(i).right == expr;
- ++i;
- }
- final List<Pair<String, Object>> valuesCopy =
+ List<Pair<String, Object>> valuesCopy =
ImmutableList.copyOf(values);
values.clear();
explain_(node, valuesCopy);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RewriteProjectToFlatten.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RewriteProjectToFlatten.java
index a1ffe2eaff..0b64a8cb96 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RewriteProjectToFlatten.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RewriteProjectToFlatten.java
@@ -70,7 +70,7 @@ public class RewriteProjectToFlatten extends BasePrelVisitor<Prel, Object, RelCo
List<RelDataTypeField> relDataTypes = new ArrayList<>();
int i = 0;
RexNode flatttenExpr = null;
- for (RexNode rex : project.getChildExps()) {
+ for (RexNode rex : project.getProjects()) {
RexNode newExpr = rex;
if (rex instanceof RexCall) {
RexCall function = (RexCall) rex;
@@ -99,7 +99,7 @@ public class RewriteProjectToFlatten extends BasePrelVisitor<Prel, Object, RelCo
}
Prel child = ((Prel)project.getInput()).accept(this, null);
- if (child == project.getInput() && exprList.equals(project.getChildExps())) {
+ if (child == project.getInput() && exprList.equals(project.getProjects())) {
return project;
}
return (Prel) project.copy(project.getTraitSet(), child, exprList, new RelRecordType(relDataTypes));
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SplitUpComplexExpressions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SplitUpComplexExpressions.java
index 7bbd55bf1f..d319cb0697 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SplitUpComplexExpressions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SplitUpComplexExpressions.java
@@ -87,7 +87,7 @@ public class SplitUpComplexExpressions extends BasePrelVisitor<Prel, Object, Rel
final int lastRexInput = lastColumnReferenced + 1;
RexVisitorComplexExprSplitter exprSplitter = new RexVisitorComplexExprSplitter(funcReg, rexBuilder, lastRexInput);
int i = 0;
- for (RexNode rex : newProject.getChildExps()) {
+ for (RexNode rex : newProject.getProjects()) {
RelDataTypeField originField = projectFields.get(i++);
RexNode splitRex = rex.accept(exprSplitter);
origRelDataTypes.add(originField);
@@ -95,7 +95,7 @@ public class SplitUpComplexExpressions extends BasePrelVisitor<Prel, Object, Rel
}
final List<RexNode> complexExprs = exprSplitter.getComplexExprs();
- if (complexExprs.size() == 1 && findTopComplexFunc(newProject.getChildExps()).size() == 1) {
+ if (complexExprs.size() == 1 && findTopComplexFunc(newProject.getProjects()).size() == 1) {
return newProject;
}
@@ -132,8 +132,7 @@ public class SplitUpComplexExpressions extends BasePrelVisitor<Prel, Object, Rel
relDataTypes.add(new RelDataTypeFieldImpl(getExprName(exprIndex), allExprs.size(), factory.createSqlType(SqlTypeName.ANY)));
RelRecordType childProjectType = new RelRecordType(relDataTypes);
- ProjectPrel childProject = new ProjectPrel(newProject.getCluster(), newProject.getTraitSet(), newInput, ImmutableList.copyOf(allExprs), childProjectType);
- newInput = childProject;
+ newInput = new ProjectPrel(newProject.getCluster(), newProject.getTraitSet(), newInput, ImmutableList.copyOf(allExprs), childProjectType);
}
allExprs.set(allExprs.size() - 1,
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ComplexUnnestVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ComplexUnnestVisitor.java
index 60e46ef46c..03c333a9e6 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ComplexUnnestVisitor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ComplexUnnestVisitor.java
@@ -118,7 +118,7 @@ public class ComplexUnnestVisitor extends RelShuttleImpl {
Project project = (Project) uncollect.getInput();
// If project below uncollect contains only field references, no need to rewrite it
- List<RexNode> projectChildExps = project.getChildExps();
+ List<RexNode> projectChildExps = project.getProjects();
assert projectChildExps.size() == 1 : "Uncollect does not support multiple expressions";
RexNode projectExpr = projectChildExps.iterator().next();
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/enumerable/plan/DrillJdbcRuleBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/enumerable/plan/DrillJdbcRuleBase.java
index be258a2cc2..2fc5183efb 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/enumerable/plan/DrillJdbcRuleBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/enumerable/plan/DrillJdbcRuleBase.java
@@ -78,7 +78,7 @@ public abstract class DrillJdbcRuleBase extends ConverterRule {
try {
final LogicalProject project = call.rel(0);
- for (RexNode node : project.getChildExps()) {
+ for (RexNode node : project.getProjects()) {
if (!checkedExpressions.get(node)) {
return false;
}
@@ -108,15 +108,8 @@ public abstract class DrillJdbcRuleBase extends ConverterRule {
@Override
public boolean matches(RelOptRuleCall call) {
try {
-
- final LogicalFilter filter = call.rel(0);
- for (RexNode node : filter.getChildExps()) {
- if (!checkedExpressions.get(node)) {
- return false;
- }
- }
- return true;
-
+ LogicalFilter filter = call.rel(0);
+ return checkedExpressions.get(filter.getCondition());
} catch (ExecutionException e) {
throw new IllegalStateException("Failure while trying to evaluate push down.", e);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/plan/rule/PluginProjectRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/plan/rule/PluginProjectRule.java
index 2589f90116..2471d2b14b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/plan/rule/PluginProjectRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/plan/rule/PluginProjectRule.java
@@ -71,7 +71,7 @@ public class PluginProjectRule extends PluginConverterRule {
return null;
}
- List<RexNode> newProjects = project.getChildExps().stream()
+ List<RexNode> newProjects = project.getProjects().stream()
.map(n -> n.accept(projectPushInfo.getInputReWriter()))
.collect(Collectors.toList());