This is an automated email from the ASF dual-hosted git repository.

gian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new e03e222e330 remove ExprEval.valueOrDefault() which is equivalent to 
value() after removal of druid.generic.useDefaultValueForNull=true (#18318)
e03e222e330 is described below

commit e03e222e330e0581155788b3de32a027fc7dfe6f
Author: Clint Wylie <[email protected]>
AuthorDate: Wed Jul 23 22:59:39 2025 -0700

    remove ExprEval.valueOrDefault() which is equivalent to value() after 
removal of druid.generic.useDefaultValueForNull=true (#18318)
---
 .../main/java/org/apache/druid/math/expr/Expr.java |  2 +-
 .../java/org/apache/druid/math/expr/ExprEval.java  | 28 ++--------------------
 .../expr/ExpressionPredicateIndexSupplier.java     |  2 +-
 .../aggregation/ExpressionLambdaAggregator.java    |  4 ++--
 .../ExpressionLambdaAggregatorFactory.java         |  4 ++--
 .../ExpressionLambdaAggregatorInputBindings.java   |  2 +-
 .../ExpressionLambdaBufferAggregator.java          |  2 +-
 .../aggregation/post/ExpressionPostAggregator.java | 10 ++++----
 .../apache/druid/query/expression/ExprUtils.java   |  2 +-
 .../query/filter/ArrayContainsElementFilter.java   | 14 +++++------
 .../apache/druid/query/filter/EqualityFilter.java  |  2 +-
 .../druid/segment/AutoTypeColumnIndexer.java       |  2 +-
 .../druid/segment/filter/ExpressionFilter.java     |  4 ++--
 .../segment/transform/ExpressionTransform.java     |  4 ++--
 ...ressionDeferredGroupByVectorColumnSelector.java |  2 +-
 .../druid/segment/virtual/ExpressionSelectors.java |  6 ++---
 .../segment/virtual/ExpressionVectorSelectors.java |  4 ++--
 .../java/org/apache/druid/math/expr/EvalTest.java  | 18 +++++++-------
 .../math/expr/VectorExprResultConsistencyTest.java |  8 +++----
 .../builtin/ArrayContainsOperatorConversion.java   |  2 +-
 .../builtin/ArrayOverlapOperatorConversion.java    |  2 +-
 .../druid/sql/calcite/filtration/Ranges.java       |  8 +++----
 .../sql/calcite/planner/DruidRexExecutor.java      |  4 ++--
 .../druid/sql/calcite/rule/DruidUnnestRule.java    |  2 +-
 24 files changed, 57 insertions(+), 81 deletions(-)

diff --git a/processing/src/main/java/org/apache/druid/math/expr/Expr.java 
b/processing/src/main/java/org/apache/druid/math/expr/Expr.java
index b287d8f1289..e82bd6d7b9e 100644
--- a/processing/src/main/java/org/apache/druid/math/expr/Expr.java
+++ b/processing/src/main/java/org/apache/druid/math/expr/Expr.java
@@ -228,7 +228,7 @@ public interface Expr extends Cacheable
       if (delegateIndexSupplier == null) {
         // if the column doesn't exist, check to see if the expression 
evaluates to a non-null result... if so, we might
         // need to make a value matcher anyway
-        if (eval(InputBindings.nilBindings()).valueOrDefault() != null) {
+        if (eval(InputBindings.nilBindings()).value() != null) {
           return NoIndexesColumnIndexSupplier.getInstance();
         }
         return null;
diff --git a/processing/src/main/java/org/apache/druid/math/expr/ExprEval.java 
b/processing/src/main/java/org/apache/druid/math/expr/ExprEval.java
index a755d7577eb..0afa96c0f94 100644
--- a/processing/src/main/java/org/apache/druid/math/expr/ExprEval.java
+++ b/processing/src/main/java/org/apache/druid/math/expr/ExprEval.java
@@ -690,12 +690,6 @@ public abstract class ExprEval<T>
     return value;
   }
 
-  @Nullable
-  public T valueOrDefault()
-  {
-    return value;
-  }
-
   void cacheStringValue(@Nullable String value)
   {
     stringValue = value;
@@ -824,15 +818,6 @@ public abstract class ExprEval<T>
       return ExpressionType.DOUBLE;
     }
 
-    @Override
-    public Number valueOrDefault()
-    {
-      if (value == null) {
-        return null;
-      }
-      return value.doubleValue();
-    }
-
     @Override
     public final boolean asBoolean()
     {
@@ -843,7 +828,7 @@ public abstract class ExprEval<T>
     @Override
     public Object[] asArray()
     {
-      return value == null ? null : new 
Object[]{valueOrDefault().doubleValue()};
+      return value == null ? null : new Object[]{value.doubleValue()};
     }
 
     @Override
@@ -907,15 +892,6 @@ public abstract class ExprEval<T>
       return ExpressionType.LONG;
     }
 
-    @Override
-    public Number valueOrDefault()
-    {
-      if (value == null) {
-        return null;
-      }
-      return value.longValue();
-    }
-
     @Override
     public final boolean asBoolean()
     {
@@ -926,7 +902,7 @@ public abstract class ExprEval<T>
     @Override
     public Object[] asArray()
     {
-      return value == null ? null : new Object[]{valueOrDefault().longValue()};
+      return value == null ? null : new Object[]{value.longValue()};
     }
 
     @Override
diff --git 
a/processing/src/main/java/org/apache/druid/math/expr/ExpressionPredicateIndexSupplier.java
 
b/processing/src/main/java/org/apache/druid/math/expr/ExpressionPredicateIndexSupplier.java
index 21ffd28fcec..a178a76a51b 100644
--- 
a/processing/src/main/java/org/apache/druid/math/expr/ExpressionPredicateIndexSupplier.java
+++ 
b/processing/src/main/java/org/apache/druid/math/expr/ExpressionPredicateIndexSupplier.java
@@ -209,7 +209,7 @@ public class ExpressionPredicateIndexSupplier implements 
ColumnIndexSupplier
       @Override
       boolean nextMatches(@Nullable Object nextValue)
       {
-        final Object result = evalFunction.apply(nextValue).valueOrDefault();
+        final Object result = evalFunction.apply(nextValue).value();
         return predicate.apply(result).matches(includeUnknown);
       }
     };
diff --git 
a/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregator.java
 
b/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregator.java
index 5331943575a..c50b7d42e10 100644
--- 
a/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregator.java
+++ 
b/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregator.java
@@ -59,7 +59,7 @@ public class ExpressionLambdaAggregator implements Aggregator
       }
     }
     final ExprEval<?> eval = lambda.eval(bindings);
-    final int estimatedSize = 
eval.type().getNullableStrategy().estimateSizeBytes(eval.valueOrDefault());
+    final int estimatedSize = 
eval.type().getNullableStrategy().estimateSizeBytes(eval.value());
     if (estimatedSize > maxSizeBytes) {
       throw new ISE(
           "Exceeded memory usage when aggregating type [%s], size [%s] is 
larger than max [%s]",
@@ -76,7 +76,7 @@ public class ExpressionLambdaAggregator implements Aggregator
   @Override
   public Object get()
   {
-    return hasValue ? bindings.getAccumulator().valueOrDefault() : null;
+    return hasValue ? bindings.getAccumulator().value() : null;
   }
 
   @Override
diff --git 
a/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorFactory.java
 
b/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorFactory.java
index 79db51d9b9c..3235d709eee 100644
--- 
a/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorFactory.java
+++ 
b/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorFactory.java
@@ -344,7 +344,7 @@ public class ExpressionLambdaAggregatorFactory extends 
AggregatorFactory
     // arbitrarily assign lhs and rhs to accumulator and aggregator name 
inputs to re-use combine function
     return combineExpression.get().eval(
         combineBindings.get().withBinding(accumulatorId, 
lhs).withBinding(name, rhs)
-    ).valueOrDefault();
+    ).value();
   }
 
   @Override
@@ -360,7 +360,7 @@ public class ExpressionLambdaAggregatorFactory extends 
AggregatorFactory
     Expr finalizeExpr;
     finalizeExpr = finalizeExpression.get();
     if (finalizeExpr != null) {
-      return 
finalizeExpr.eval(finalizeBindings.get().withBinding(FINALIZE_IDENTIFIER, 
object)).valueOrDefault();
+      return 
finalizeExpr.eval(finalizeBindings.get().withBinding(FINALIZE_IDENTIFIER, 
object)).value();
     }
     return object;
   }
diff --git 
a/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorInputBindings.java
 
b/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorInputBindings.java
index b84a8ad3d8a..36232ff0c47 100644
--- 
a/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorInputBindings.java
+++ 
b/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorInputBindings.java
@@ -53,7 +53,7 @@ public class ExpressionLambdaAggregatorInputBindings 
implements Expr.ObjectBindi
   public Object get(String name)
   {
     if (accumlatorIdentifier.equals(name)) {
-      return accumulator.valueOrDefault();
+      return accumulator.value();
     }
     return inputBindings.get(name);
   }
diff --git 
a/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaBufferAggregator.java
 
b/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaBufferAggregator.java
index 3730649953b..5dc9a88d963 100644
--- 
a/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaBufferAggregator.java
+++ 
b/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaBufferAggregator.java
@@ -90,7 +90,7 @@ public class ExpressionLambdaBufferAggregator implements 
BufferAggregator
     if (isNullUnlessAggregated && (buf.get(position) & NOT_AGGREGATED_BIT) != 
0) {
       return null;
     }
-    return ExprEval.deserialize(buf, position, maxSizeBytes, outputType, 
false).valueOrDefault();
+    return ExprEval.deserialize(buf, position, maxSizeBytes, outputType, 
false).value();
   }
 
   @Override
diff --git 
a/processing/src/main/java/org/apache/druid/query/aggregation/post/ExpressionPostAggregator.java
 
b/processing/src/main/java/org/apache/druid/query/aggregation/post/ExpressionPostAggregator.java
index f2b4e01d8d1..62d16b050af 100644
--- 
a/processing/src/main/java/org/apache/druid/query/aggregation/post/ExpressionPostAggregator.java
+++ 
b/processing/src/main/java/org/apache/druid/query/aggregation/post/ExpressionPostAggregator.java
@@ -42,6 +42,7 @@ import org.apache.druid.query.aggregation.PostAggregator;
 import org.apache.druid.query.cache.CacheKeyBuilder;
 import org.apache.druid.segment.ColumnInspector;
 import org.apache.druid.segment.column.ColumnType;
+import org.apache.druid.segment.column.Types;
 import org.apache.druid.segment.column.ValueType;
 import org.apache.druid.segment.virtual.ExpressionSelectors;
 
@@ -196,6 +197,7 @@ public class ExpressionPostAggregator implements 
PostAggregator
     return comparator;
   }
 
+  @Nullable
   @Override
   public Object compute(Map<String, Object> values)
   {
@@ -212,20 +214,20 @@ public class ExpressionPostAggregator implements 
PostAggregator
     // from decoration
     final ExprEval<?> eval = 
parsed.get().eval(InputBindings.forMap(finalizedValues, 
partialTypeInformation));
     if (expressionType == null) {
-      return eval.valueOrDefault();
+      return eval.value();
     }
     // outputType cannot be null if expressionType is not null
-    if (outputType.is(ValueType.FLOAT) && !eval.isNumericNull()) {
+    if (Types.is(outputType, ValueType.FLOAT) && !eval.isNumericNull()) {
       return (float) eval.asDouble();
     }
     if (eval.type().equals(expressionType)) {
-      return eval.valueOrDefault();
+      return eval.value();
     }
     if (expressionType.is(ExprType.STRING) && eval.isArray()) {
       return ExpressionSelectors.coerceEvalToObjectOrList(eval);
     }
     // coerce to expected type
-    return eval.castTo(expressionType).valueOrDefault();
+    return eval.castTo(expressionType).value();
   }
 
   @Override
diff --git 
a/processing/src/main/java/org/apache/druid/query/expression/ExprUtils.java 
b/processing/src/main/java/org/apache/druid/query/expression/ExprUtils.java
index 86b76b58e14..5707783496a 100644
--- a/processing/src/main/java/org/apache/druid/query/expression/ExprUtils.java
+++ b/processing/src/main/java/org/apache/druid/query/expression/ExprUtils.java
@@ -78,7 +78,7 @@ public class ExprUtils
       origin = null;
     } else {
       Chronology chronology = timeZone == null ? 
ISOChronology.getInstanceUTC() : ISOChronology.getInstance(timeZone);
-      final Object value = originArg.eval(bindings).valueOrDefault();
+      final Object value = originArg.eval(bindings).value();
       origin = value != null ? new DateTime(value, chronology) : null;
     }
 
diff --git 
a/processing/src/main/java/org/apache/druid/query/filter/ArrayContainsElementFilter.java
 
b/processing/src/main/java/org/apache/druid/query/filter/ArrayContainsElementFilter.java
index 6e6a418167d..19c5dd8bfb5 100644
--- 
a/processing/src/main/java/org/apache/druid/query/filter/ArrayContainsElementFilter.java
+++ 
b/processing/src/main/java/org/apache/druid/query/filter/ArrayContainsElementFilter.java
@@ -234,7 +234,7 @@ public class ArrayContainsElementFilter extends 
AbstractOptimizableDimFilter imp
       return elementIndexes.containsValue(elementMatchValueEval.value(), 
elementMatchValueType);
     }
 
-    if (elementMatchValueEval.valueOrDefault() != null && 
selector.getColumnCapabilities(column) != null && 
!selector.getColumnCapabilities(column).isArray()) {
+    if (elementMatchValueEval.value() != null && 
selector.getColumnCapabilities(column) != null && 
!selector.getColumnCapabilities(column).isArray()) {
       // column is not an array, behave like a normal equality filter
       return EqualityFilter.getEqualityIndex(column, elementMatchValueEval, 
elementMatchValueType, selector, predicateFactory);
     }
@@ -257,7 +257,7 @@ public class ArrayContainsElementFilter extends 
AbstractOptimizableDimFilter imp
   {
     final ColumnCapabilities capabilities = 
factory.getColumnCapabilities(column);
 
-    if (elementMatchValueEval.valueOrDefault() != null && 
elementMatchValueType.isPrimitive() && (capabilities == null || 
capabilities.isPrimitive())) {
+    if (elementMatchValueEval.value() != null && 
elementMatchValueType.isPrimitive() && (capabilities == null || 
capabilities.isPrimitive())) {
       return ColumnProcessors.makeVectorProcessor(
           column,
           VectorValueMatcherColumnProcessorFactory.instance(),
@@ -327,7 +327,7 @@ public class ArrayContainsElementFilter extends 
AbstractOptimizableDimFilter imp
       this.elementMatchValue = elementMatchValue;
       this.equalityPredicateFactory = new 
EqualityFilter.EqualityPredicateFactory(elementMatchValue);
       // if element match value is an array, scalar matches can never be true
-      final Object matchVal = elementMatchValue.valueOrDefault();
+      final Object matchVal = elementMatchValue.value();
       if (matchVal == null || (elementMatchValue.isArray() && 
elementMatchValue.asArray().length > 1)) {
         this.stringPredicateSupplier = 
DruidObjectPredicate::alwaysFalseWithNullUnknown;
         this.longPredicateSupplier = () -> 
DruidLongPredicate.ALWAYS_FALSE_WITH_NULL_UNKNOWN;
@@ -488,7 +488,7 @@ public class ArrayContainsElementFilter extends 
AbstractOptimizableDimFilter imp
     @Override
     public ValueMatcher makeDimensionProcessor(DimensionSelector selector, 
boolean multiValue)
     {
-      if (matchValue.valueOrDefault() == null || matchValue.isArray()) {
+      if (matchValue.value() == null || matchValue.isArray()) {
         return predicateMatcherFactory.makeDimensionProcessor(selector, 
multiValue);
       }
       return super.makeDimensionProcessor(selector, multiValue);
@@ -497,7 +497,7 @@ public class ArrayContainsElementFilter extends 
AbstractOptimizableDimFilter imp
     @Override
     public ValueMatcher makeFloatProcessor(BaseFloatColumnValueSelector 
selector)
     {
-      if (matchValue.valueOrDefault() == null || matchValue.isArray()) {
+      if (matchValue.value() == null || matchValue.isArray()) {
         return predicateMatcherFactory.makeFloatProcessor(selector);
       }
       return super.makeFloatProcessor(selector);
@@ -506,7 +506,7 @@ public class ArrayContainsElementFilter extends 
AbstractOptimizableDimFilter imp
     @Override
     public ValueMatcher makeDoubleProcessor(BaseDoubleColumnValueSelector 
selector)
     {
-      if (matchValue.valueOrDefault() == null || matchValue.isArray()) {
+      if (matchValue.value() == null || matchValue.isArray()) {
         return predicateMatcherFactory.makeDoubleProcessor(selector);
       }
       return super.makeDoubleProcessor(selector);
@@ -515,7 +515,7 @@ public class ArrayContainsElementFilter extends 
AbstractOptimizableDimFilter imp
     @Override
     public ValueMatcher makeLongProcessor(BaseLongColumnValueSelector selector)
     {
-      if (matchValue.valueOrDefault() == null || matchValue.isArray()) {
+      if (matchValue.value() == null || matchValue.isArray()) {
         return predicateMatcherFactory.makeLongProcessor(selector);
       }
       return super.makeLongProcessor(selector);
diff --git 
a/processing/src/main/java/org/apache/druid/query/filter/EqualityFilter.java 
b/processing/src/main/java/org/apache/druid/query/filter/EqualityFilter.java
index f7b2dd1cdb9..c7a70f03c05 100644
--- a/processing/src/main/java/org/apache/druid/query/filter/EqualityFilter.java
+++ b/processing/src/main/java/org/apache/druid/query/filter/EqualityFilter.java
@@ -511,7 +511,7 @@ public class EqualityFilter extends 
AbstractOptimizableDimFilter implements Filt
         if (matchValue.type().equals(ExpressionType.NESTED_DATA)) {
           return input -> input == null ? DruidPredicateMatch.UNKNOWN : 
DruidPredicateMatch.of(Objects.equals(StructuredData.unwrap(input), 
StructuredData.unwrap(matchValue.value())));
         }
-        return DruidObjectPredicate.equalTo(matchValue.valueOrDefault());
+        return DruidObjectPredicate.equalTo(matchValue.value());
       });
     }
 
diff --git 
a/processing/src/main/java/org/apache/druid/segment/AutoTypeColumnIndexer.java 
b/processing/src/main/java/org/apache/druid/segment/AutoTypeColumnIndexer.java
index 3f0a6171734..b20544bcc4b 100644
--- 
a/processing/src/main/java/org/apache/druid/segment/AutoTypeColumnIndexer.java
+++ 
b/processing/src/main/java/org/apache/druid/segment/AutoTypeColumnIndexer.java
@@ -641,7 +641,7 @@ public class AutoTypeColumnIndexer implements 
DimensionIndexer<StructuredData, S
         if (0 <= dimIndex && dimIndex < dims.length) {
           final StructuredData data = (StructuredData) dims[dimIndex];
           if (data != null) {
-            final Object o = 
ExprEval.bestEffortOf(data.getValue()).valueOrDefault();
+            final Object o = ExprEval.bestEffortOf(data.getValue()).value();
             return o;
           }
         }
diff --git 
a/processing/src/main/java/org/apache/druid/segment/filter/ExpressionFilter.java
 
b/processing/src/main/java/org/apache/druid/segment/filter/ExpressionFilter.java
index d4f52fa8ead..7f17f28aa00 100644
--- 
a/processing/src/main/java/org/apache/druid/segment/filter/ExpressionFilter.java
+++ 
b/processing/src/main/java/org/apache/druid/segment/filter/ExpressionFilter.java
@@ -97,7 +97,7 @@ public class ExpressionFilter implements Filter
       // evaluate the expression, just in case it does actually match nulls
       final ExprEval<?> constantEval = 
theExpr.eval(InputBindings.nilBindings());
       final ConstantMatcherType constantMatcherType;
-      if (constantEval.valueOrDefault() == null) {
+      if (constantEval.value() == null) {
         constantMatcherType = ConstantMatcherType.ALL_UNKNOWN;
       } else {
         constantMatcherType = constantEval.asBoolean() ? 
ConstantMatcherType.ALL_TRUE : ConstantMatcherType.ALL_FALSE;
@@ -200,7 +200,7 @@ public class ExpressionFilter implements Filter
     if (details.getRequiredBindings().isEmpty()) {
       // Constant expression.
       final ExprEval<?> eval = expr.get().eval(InputBindings.nilBindings());
-      if (eval.valueOrDefault() == null) {
+      if (eval.value() == null) {
         return new AllUnknownBitmapColumnIndex(selector);
       }
       if (eval.asBoolean()) {
diff --git 
a/processing/src/main/java/org/apache/druid/segment/transform/ExpressionTransform.java
 
b/processing/src/main/java/org/apache/druid/segment/transform/ExpressionTransform.java
index cd4565514d8..de3cb7c8697 100644
--- 
a/processing/src/main/java/org/apache/druid/segment/transform/ExpressionTransform.java
+++ 
b/processing/src/main/java/org/apache/druid/segment/transform/ExpressionTransform.java
@@ -99,7 +99,7 @@ public class ExpressionTransform implements Transform
     public Object eval(final Row row)
     {
       try {
-        return expr.eval(InputBindings.forRow(row)).valueOrDefault();
+        return expr.eval(InputBindings.forRow(row)).value();
       }
       catch (Throwable t) {
         throw new ISE(t, "Could not transform value for %s reason: %s", name, 
t.getMessage());
@@ -110,7 +110,7 @@ public class ExpressionTransform implements Transform
     public List<String> evalDimension(Row row)
     {
       try {
-        return 
Rows.objectToStrings(expr.eval(InputBindings.forRow(row)).valueOrDefault());
+        return 
Rows.objectToStrings(expr.eval(InputBindings.forRow(row)).value());
       }
       catch (Throwable t) {
         throw new ISE(t, "Could not transform dimension value for %s reason: 
%s", name, t.getMessage());
diff --git 
a/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionDeferredGroupByVectorColumnSelector.java
 
b/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionDeferredGroupByVectorColumnSelector.java
index 1f42002758f..2963de0b027 100644
--- 
a/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionDeferredGroupByVectorColumnSelector.java
+++ 
b/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionDeferredGroupByVectorColumnSelector.java
@@ -120,7 +120,7 @@ public class ExpressionDeferredGroupByVectorColumnSelector 
implements GroupByVec
       keyOffset += subSelector.getGroupingKeySize();
     }
 
-    resultRow.getArray()[resultRowPosition] = 
expr.eval(tmpResultRowBindings).valueOrDefault();
+    resultRow.getArray()[resultRowPosition] = 
expr.eval(tmpResultRowBindings).value();
   }
 
   @Override
diff --git 
a/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionSelectors.java
 
b/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionSelectors.java
index fd7d9db2961..d037a24bbd0 100644
--- 
a/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionSelectors.java
+++ 
b/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionSelectors.java
@@ -471,11 +471,11 @@ public class ExpressionSelectors
       }
       return Arrays.stream(asArray).collect(Collectors.toList());
     }
-    return eval.valueOrDefault();
+    return eval.value();
   }
 
   /**
-   * Wraps a {@link ColumnValueSelector<ExprEval>} and calls {@link 
ExprEval#valueOrDefault()} on the output of
+   * Wraps a {@link ColumnValueSelector<ExprEval>} and calls {@link 
ExprEval#value()} on the output of
    * {@link #baseSelector#getObject()} in {@link #getObject()}.
    */
   private static class EvalUnwrappingColumnValueSelector implements 
ColumnValueSelector
@@ -517,7 +517,7 @@ public class ExpressionSelectors
     {
       // No need for null check on getObject() since baseSelector impls will 
never return null.
       ExprEval eval = baseSelector.getObject();
-      return eval.valueOrDefault();
+      return eval.value();
     }
 
     @Override
diff --git 
a/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionVectorSelectors.java
 
b/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionVectorSelectors.java
index cb103f424f4..92ef11bba31 100644
--- 
a/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionVectorSelectors.java
+++ 
b/processing/src/main/java/org/apache/druid/segment/virtual/ExpressionVectorSelectors.java
@@ -87,7 +87,7 @@ public class ExpressionVectorSelectors
     if (plan.isConstant()) {
       return ConstantVectorSelectors.vectorValueSelector(
           factory.getReadableVectorInspector(),
-          (Number) 
plan.getExpression().eval(InputBindings.nilBindings()).valueOrDefault()
+          (Number) 
plan.getExpression().eval(InputBindings.nilBindings()).value()
       );
     }
     final Expr.VectorInputBinding bindings = 
createVectorBindings(plan.getAnalysis(), factory);
@@ -114,7 +114,7 @@ public class ExpressionVectorSelectors
       }
       return ConstantVectorSelectors.vectorObjectSelector(
           factory.getReadableVectorInspector(),
-          eval.valueOrDefault()
+          eval.value()
       );
     }
 
diff --git a/processing/src/test/java/org/apache/druid/math/expr/EvalTest.java 
b/processing/src/test/java/org/apache/druid/math/expr/EvalTest.java
index e05f98c4540..047c73ffe2e 100644
--- a/processing/src/test/java/org/apache/druid/math/expr/EvalTest.java
+++ b/processing/src/test/java/org/apache/druid/math/expr/EvalTest.java
@@ -917,13 +917,13 @@ public class EvalTest extends InitializedNullHandlingTest
 
     assertEquals(1L, eval("null || 1", bindings).value());
     assertEquals(1L, eval("1 || null", bindings).value());
-    assertNull(eval("null || 0", bindings).valueOrDefault());
-    assertNull(eval("0 || null", bindings).valueOrDefault());
-    assertNull(eval("null || null", bindings).valueOrDefault());
+    assertNull(eval("null || 0", bindings).value());
+    assertNull(eval("0 || null", bindings).value());
+    assertNull(eval("null || null", bindings).value());
 
-    assertNull(eval("null && 1", bindings).valueOrDefault());
-    assertNull(eval("1 && null", bindings).valueOrDefault());
-    assertNull(eval("null && null", bindings).valueOrDefault());
+    assertNull(eval("null && 1", bindings).value());
+    assertNull(eval("1 && null", bindings).value());
+    assertNull(eval("null && null", bindings).value());
     // if either side is false, output is false in both modes
     assertEquals(0L, eval("null && 0", bindings).value());
     assertEquals(0L, eval("0 && null", bindings).value());
@@ -1028,14 +1028,14 @@ public class EvalTest extends 
InitializedNullHandlingTest
   }
 
   @Test
-  public void testValueOrDefault()
+  public void testvalue()
   {
     ExprEval<?> longNull = ExprEval.ofLong(null);
     ExprEval<?> doubleNull = ExprEval.ofDouble(null);
     Assert.assertTrue(longNull.isNumericNull());
     Assert.assertTrue(doubleNull.isNumericNull());
-    Assert.assertNull(null, longNull.valueOrDefault());
-    Assert.assertNull(null, doubleNull.valueOrDefault());
+    Assert.assertNull(null, longNull.value());
+    Assert.assertNull(null, doubleNull.value());
   }
 
   @Test
diff --git 
a/processing/src/test/java/org/apache/druid/math/expr/VectorExprResultConsistencyTest.java
 
b/processing/src/test/java/org/apache/druid/math/expr/VectorExprResultConsistencyTest.java
index 2af34b87428..11580eb9f5b 100644
--- 
a/processing/src/test/java/org/apache/druid/math/expr/VectorExprResultConsistencyTest.java
+++ 
b/processing/src/test/java/org/apache/druid/math/expr/VectorExprResultConsistencyTest.java
@@ -484,13 +484,13 @@ public class VectorExprResultConsistencyTest extends 
InitializedNullHandlingTest
         if (outputType != null && outputType.isArray()) {
           Assert.assertArrayEquals(
               StringUtils.format("Values do not match for row %s for 
expression %s", i, expr),
-              (Object[]) eval.valueOrDefault(),
+              (Object[]) eval.value(),
               (Object[]) vectorVals[i]
           );
         } else {
           Assert.assertEquals(
               StringUtils.format("Values do not match for row %s for 
expression %s", i, expr),
-              eval.valueOrDefault(),
+              eval.value(),
               vectorVals[i]
           );
         }
@@ -541,13 +541,13 @@ public class VectorExprResultConsistencyTest extends 
InitializedNullHandlingTest
         if (outputType != null && outputType.isArray()) {
           Assert.assertArrayEquals(
               StringUtils.format("Values do not match for row %s for 
expression %s", i, expr),
-              (Object[]) eval.valueOrDefault(),
+              (Object[]) eval.value(),
               (Object[]) vectorVals[i]
           );
         } else {
           Assert.assertEquals(
               StringUtils.format("Values do not match for row %s for 
expression %s", i, expr),
-              eval.valueOrDefault(),
+              eval.value(),
               vectorVals[i]
           );
         }
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayContainsOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayContainsOperatorConversion.java
index 4189cb9e6ff..df729a01142 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayContainsOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayContainsOperatorConversion.java
@@ -193,7 +193,7 @@ public class ArrayContainsOperatorConversion extends 
BaseExpressionDimFilterOper
           return new ArrayContainsElementFilter(
               leftExpr.getSimpleExtraction().getColumn(),
               ExpressionType.toColumnType(exprEval.type()),
-              exprEval.valueOrDefault(),
+              exprEval.value(),
               null
           );
         }
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOverlapOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOverlapOperatorConversion.java
index 55385eca40f..21d9a06b117 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOverlapOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOverlapOperatorConversion.java
@@ -204,7 +204,7 @@ public class ArrayOverlapOperatorConversion extends 
BaseExpressionDimFilterOpera
           return new ArrayContainsElementFilter(
               leftExpr.getSimpleExtraction().getColumn(),
               ExpressionType.toColumnType(exprEval.type()),
-              exprEval.valueOrDefault(),
+              exprEval.value(),
               null
           );
         }
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/filtration/Ranges.java 
b/sql/src/main/java/org/apache/druid/sql/calcite/filtration/Ranges.java
index 778be044713..88200e0a205 100644
--- a/sql/src/main/java/org/apache/druid/sql/calcite/filtration/Ranges.java
+++ b/sql/src/main/java/org/apache/druid/sql/calcite/filtration/Ranges.java
@@ -96,12 +96,10 @@ public class Ranges
   {
     final ExpressionType exprType = 
ExpressionType.fromColumnType(newMatchValueType);
     final RangeValue upper = range.getUpper() != null
-                             ? new RangeValue(ExprEval.ofType(exprType, 
range.getUpper())
-                                                      .valueOrDefault(), 
newMatchValueType)
+                             ? new RangeValue(ExprEval.ofType(exprType, 
range.getUpper()).value(), newMatchValueType)
                              : null;
     final RangeValue lower = range.getLower() != null
-                             ? new RangeValue(ExprEval.ofType(exprType, 
range.getLower())
-                                                      .valueOrDefault(), 
newMatchValueType)
+                             ? new RangeValue(ExprEval.ofType(exprType, 
range.getLower()).value(), newMatchValueType)
                              : null;
 
     if (lower == null) {
@@ -236,7 +234,7 @@ public class Ranges
         return value;
       } else {
         final ExpressionType expressionType = 
ExpressionType.fromColumnType(columnType);
-        return ExprEval.ofType(expressionType, value).valueOrDefault();
+        return ExprEval.ofType(expressionType, value).value();
       }
     } else {
       return value;
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/planner/DruidRexExecutor.java 
b/sql/src/main/java/org/apache/druid/sql/calcite/planner/DruidRexExecutor.java
index 1f73834fdb2..6edb94a0518 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/planner/DruidRexExecutor.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/planner/DruidRexExecutor.java
@@ -84,7 +84,7 @@ public class DruidRexExecutor implements RexExecutor
         final RexNode literal;
 
         if (sqlTypeName == SqlTypeName.BOOLEAN) {
-          if (exprResult.valueOrDefault() == null) {
+          if (exprResult.value() == null) {
             literal = rexBuilder.makeNullLiteral(constExp.getType());
           } else {
             literal = rexBuilder.makeLiteral(exprResult.asBoolean(), 
constExp.getType(), true);
@@ -212,7 +212,7 @@ public class DruidRexExecutor implements RexExecutor
             // column selector anyway
             literal = constExp;
           } else {
-            literal = rexBuilder.makeLiteral(exprResult.valueOrDefault(), 
constExp.getType(), true);
+            literal = rexBuilder.makeLiteral(exprResult.value(), 
constExp.getType(), true);
           }
         }
 
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/rule/DruidUnnestRule.java 
b/sql/src/main/java/org/apache/druid/sql/calcite/rule/DruidUnnestRule.java
index a5f3453f19a..25001186145 100644
--- a/sql/src/main/java/org/apache/druid/sql/calcite/rule/DruidUnnestRule.java
+++ b/sql/src/main/java/org/apache/druid/sql/calcite/rule/DruidUnnestRule.java
@@ -166,7 +166,7 @@ public class DruidUnnestRule extends RelOptRule
         }
       }
     } else {
-      rows.add(new Object[]{eval.valueOrDefault()});
+      rows.add(new Object[]{eval.value()});
     }
 
     // Transform to inline datasource.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to