chennaji9 opened a new issue, #11339:
URL: https://github.com/apache/rocketmq/issues/11339

   ### Description
   
   `LogicExpression` 
(`filter/src/main/java/org/apache/rocketmq/filter/expression/LogicExpression.java`)
 implements the SQL92 three-valued logic used by property (SQL92) 
subscriptions: operands evaluate to `TRUE`, `FALSE`, or `null` (UNKNOWN), 
`AND`/`OR` short-circuit when the left operand already decides the result, and 
UNKNOWN propagates (`null AND TRUE` = UNKNOWN, `null OR FALSE` = UNKNOWN), with 
`matches()` treating UNKNOWN as no-match.
   
   `ExpressionTest` covers composite expressions end to end, but nothing pins 
the truth table itself or the short-circuit: the full 3x3 operand matrix is not 
asserted anywhere, and no test would notice if the short-circuit disappeared 
(left `FALSE` under `AND` still evaluating the right operand) or if UNKNOWN 
propagation was replaced by a plain false.
   
   Since brokers compile every SQL92 subscription through these expressions, 
the matching semantics deserve direct regression coverage.
   
   ### Expected behavior
   
   A dedicated `LogicExpressionTest` covering the 3x3 truth table for AND/OR, 
the UNKNOWN-matches-false rule, and short-circuit proofs (right operand 
provably unevaluated when the left decides).


-- 
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]

Reply via email to