mirror of
https://github.com/apache/druid.git
synced 2025-02-17 23:46:30 +00:00
fix greatest/least function non-vectorized processing to ignore null argument types (#16649)
This commit is contained in:
parent
ab76d851ad
commit
d4f2636325
@ -622,11 +622,10 @@ public interface Function extends NamedFunction
|
||||
ExprEval<?> exprEval = expr.eval(bindings);
|
||||
ExpressionType exprType = exprEval.type();
|
||||
|
||||
if (isValidType(exprType)) {
|
||||
outputType = ExpressionTypeConversion.function(outputType, exprType);
|
||||
}
|
||||
|
||||
if (exprEval.value() != null) {
|
||||
if (isValidType(exprType)) {
|
||||
outputType = ExpressionTypeConversion.function(outputType, exprType);
|
||||
}
|
||||
evals.add(exprEval);
|
||||
}
|
||||
}
|
||||
|
@ -677,6 +677,7 @@ public class FunctionTest extends InitializedNullHandlingTest
|
||||
assertExpr("greatest()", null);
|
||||
assertExpr("greatest(null, null)", null);
|
||||
assertExpr("greatest(1, null, 'A')", "A");
|
||||
assertExpr("greatest(1.0, 1, null)", 1.0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -703,6 +704,7 @@ public class FunctionTest extends InitializedNullHandlingTest
|
||||
assertExpr("least()", null);
|
||||
assertExpr("least(null, null)", null);
|
||||
assertExpr("least(1, null, 'A')", "1");
|
||||
assertExpr("least(1.0, 1, null)", 1.0);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -214,7 +214,7 @@ public class GreatestExpressionTest extends CalciteTestBase
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecimalWithNullShouldReturnString()
|
||||
public void testDecimalWithNullShouldNotReturnString()
|
||||
{
|
||||
testExpression(
|
||||
Arrays.asList(
|
||||
@ -227,7 +227,7 @@ public class GreatestExpressionTest extends CalciteTestBase
|
||||
null,
|
||||
3.4
|
||||
),
|
||||
"3.4"
|
||||
3.4
|
||||
);
|
||||
}
|
||||
@Test
|
||||
|
@ -214,7 +214,7 @@ public class LeastExpressionTest extends CalciteTestBase
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecimalWithNullShouldReturnString()
|
||||
public void testDecimalWithNullShouldNotReturnString()
|
||||
{
|
||||
testExpression(
|
||||
Arrays.asList(
|
||||
@ -227,7 +227,7 @@ public class LeastExpressionTest extends CalciteTestBase
|
||||
3.4,
|
||||
null
|
||||
),
|
||||
"1.2"
|
||||
1.2
|
||||
);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user