From dfac7f10010988c209e131e67bc3b0ef00aba649 Mon Sep 17 00:00:00 2001 From: rymarm Date: Tue, 24 Sep 2024 22:34:51 +0300 Subject: [PATCH] DRILL-8512: ReduceAndSimplifyFilterRule fails with NullPointerException --- .../exec/planner/logical/DrillConstExecutor.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConstExecutor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConstExecutor.java index f732ceffb43..a1c9b684cc7 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConstExecutor.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConstExecutor.java @@ -17,14 +17,17 @@ */ package org.apache.drill.exec.planner.logical; -import org.apache.calcite.rel.type.RelDataType; import com.google.common.collect.ImmutableList; import io.netty.buffer.DrillBuf; +import org.apache.calcite.rel.type.RelDataType; +import org.apache.calcite.rel.type.RelDataTypeFactory; +import org.apache.calcite.rex.RexBuilder; import org.apache.calcite.rex.RexExecutor; +import org.apache.calcite.rex.RexNode; +import org.apache.calcite.sql.type.SqlTypeName; import org.apache.calcite.util.DateString; import org.apache.calcite.util.TimeString; import org.apache.calcite.util.TimestampString; -import org.apache.calcite.rel.RelNode; import org.apache.drill.common.exceptions.UserException; import org.apache.drill.common.expression.ErrorCollectorImpl; import org.apache.drill.common.expression.ExpressionStringBuilder; @@ -69,10 +72,6 @@ import org.apache.drill.exec.expr.holders.VarCharHolder; import org.apache.drill.exec.expr.holders.VarDecimalHolder; import org.apache.drill.exec.ops.UdfUtilities; -import org.apache.calcite.rel.type.RelDataTypeFactory; -import org.apache.calcite.rex.RexBuilder; -import org.apache.calcite.rex.RexNode; -import org.apache.calcite.sql.type.SqlTypeName; import org.apache.drill.exec.planner.physical.PlannerSettings; import org.apache.drill.exec.planner.sql.TypeInferenceUtils; import org.apache.drill.exec.vector.DateUtilities; @@ -135,7 +134,7 @@ public UdfUtilities getUdfUtilities() { @SuppressWarnings("deprecation") public void reduce(RexBuilder rexBuilder, List constExps, List reducedValues) { for (RexNode newCall : constExps) { - LogicalExpression logEx = DrillOptiq.toDrill(new DrillParseContext(plannerSettings), (RelNode) null /* input rel */, newCall); + LogicalExpression logEx = DrillOptiq.toDrill(new DrillParseContext(plannerSettings), newCall.getType(), rexBuilder, newCall); ErrorCollectorImpl errors = new ErrorCollectorImpl(); LogicalExpression materializedExpr = ExpressionTreeMaterializer.materialize(logEx, null, errors, funcImplReg);