clintropolis commented on a change in pull request #11184:
URL: https://github.com/apache/druid/pull/11184#discussion_r759805910
##########
File path:
core/src/main/java/org/apache/druid/math/expr/BinaryLogicalOperatorExpr.java
##########
@@ -385,7 +322,59 @@ protected BinaryOpExprBase copy(Expr left, Expr right)
public ExprEval eval(ObjectBinding bindings)
{
ExprEval leftVal = left.eval(bindings);
- return leftVal.asBoolean() ? right.eval(bindings) : leftVal;
+ if (!ExpressionProcessing.useStrictBooleans()) {
+ return leftVal.asBoolean() ? right.eval(bindings) : leftVal;
+ }
+
+ // if left is false, always false
+ if (leftVal.value() != null && !leftVal.asBoolean()) {
+ return ExprEval.ofLongBoolean(false);
Review comment:
yeah, it seems reasonable to make true and false constants, I may make
this change in this PR or in a follow-up later if nothing else comes up that
needs immediate change
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]