Details
-
Task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
When simplifying an expression, say whether an UNKNOWN value will be interpreted as is, or as true or false. Concretely, this means adding an enum RexUnknownAs with values TRUE, FALSE, UNKNOWN, and adding it as an argument to RexSimplify.simplify and similar methods.
Currently RexSimplify has a constant field boolean unknownAs but this is a mistake: the handling of unknown must change as you recurse into the tree. For example, if an UNKNOWN result of NOT x is interpreted as FALSE, then an UNKNOWN result of x must be interpreted as TRUE.
Attachments
Issue Links
- is related to
-
CALCITE-2451 RexSimplify: fuse unknownAsFalse and IS TRUE handling
- Open
-
CALCITE-2421 RexSimplify#simplifyAnds foregoes some simplications if unknownAsFalse set to true
- In Progress
-
CALCITE-2338 Make Simplification API more conservative
- Closed
-
CALCITE-2326 Generalize p(x) IS TRUE/FALSE/UNKNOWN handling in RexSimplify
- Open