Julian Hyde created CALCITE-2314:
------------------------------------
Summary: Verify RexNode transformations by evaluating before and
after expressions against sample values
Key: CALCITE-2314
URL: https://issues.apache.org/jira/browse/CALCITE-2314
Project: Calcite
Issue Type: Bug
Reporter: Julian Hyde
Assignee: Julian Hyde
Verify transformations of {{RexNode}} expressions (such as simplification, see
{{class RexSimplify}}) by evaluating before and after expressions against
sample values.
Given an expression, say {{($0 < $1) IS NOT NULL}} we can bind $0 and $1 to
values (0, 1, null) and evaluate the 9 combinations. We can also evaluate the
simplified expression {{$0 IS NOT NULL AND $1 IS NOT NULL}} and see whether it
gives the same value for each of the combinations.
We can add this checking to existing tests with little effort. It will improve
confidence that we handle 3-valued logic correctly.
As part of this task, we will create an interpreter {{class RexInterpreter}}
that evaluates RexNode expressions for common operators without generating
code. It is not very efficient and does not cover very many types, functions
and operators, but should be easy for people to extend to add a few more.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)