Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
When converting to conjunctive normal form (CNF), fail if the expression exceeds a threshold. CNF can explode exponentially in the size of the input expression, but rarely does so in practice. Add a maxNodeCount parameter to RexUtil.toCnf and throw or return null if it is exceeded.
I don't believe it is possible to predict the size of the CNF from the input expression (especially if there are duplicate terms) but I might be wrong.
Attachments
Issue Links
- blocks
-
CALCITE-1356 Release Calcite 1.9.0
- Closed
- is related to
-
HIVE-14021 When converting to CNF, fail if the expression exceeds a threshold
- Closed
- relates to
-
CALCITE-5365 RelMdExpressionLineage#createAllPossibleExpressions will create many RexCall lead to OOM
- Open
-
CALCITE-1790 Simplify CASE P1 THEN <boolean> P@ THEN <booleans> ... ELSE TRUE/FALSE
- Open