git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jira] [Created] (CALCITE-2314) Verify RexNode transformations by evaluating before and after expressions against sample values


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)



( ! ) Warning: include(msgfooter.php): failed to open stream: No such file or directory in /var/www/git/apache-calcite-development/msg03489.html on line 94
Call Stack
#TimeMemoryFunctionLocation
10.0007364760{main}( ).../msg03489.html:0

( ! ) Warning: include(): Failed opening 'msgfooter.php' for inclusion (include_path='.:/var/www/git') in /var/www/git/apache-calcite-development/msg03489.html on line 94
Call Stack
#TimeMemoryFunctionLocation
10.0007364760{main}( ).../msg03489.html:0