kgyrtkirk commented on a change in pull request #1117: [CALCITE-2921] support
null literal in function call
URL: https://github.com/apache/calcite/pull/1117#discussion_r308319030
##########
File path: core/src/test/resources/sql/sub-query.iq
##########
@@ -32,7 +32,7 @@ where t1.x not in (select t2.x from t2);
(0 rows)
!ok
-EnumerableCalc(expr#0..4=[{inputs}], expr#5=[0], expr#6=[=($t1, $t5)],
expr#7=[<>($t1, $t5)], expr#8=[IS NULL($t4)], expr#9=[>=($t2, $t1)],
expr#10=[IS NOT NULL($t0)], expr#11=[AND($t7, $t8, $t9, $t10)],
expr#12=[OR($t6, $t11)], X=[$t0], $condition=[$t12])
+EnumerableCalc(expr#0..4=[{inputs}], expr#5=[0], expr#6=[=($t1, $t5)],
expr#7=[IS NULL($t4)], expr#8=[>=($t2, $t1)], expr#9=[IS NOT NULL($t0)],
expr#10=[AND($t7, $t8, $t9)], expr#11=[OR($t6, $t10)], X=[$t0],
$condition=[$t11])
Review comment:
this change caught my eye; I think this resolves to a different conclusion
after this change:
consider that `$t5` is `null` - all others variable could be freely choosen
* old expression is `OR( "$t6 is dependent on $t5 => null/false" , AND (
"$t7 is dependent on $t5 => null/false", ... ) ) => null/false`
* new expression `OR( "$t6 is dependent on $t5 => null" , AND( "let $t4
null", "let $t2 '2' and $t1 '1'" , "let $t0 '0') => true`
I only say that the expression is different; not logically equiv - but in
the context of the query it might be ok - since this change is more about
intorducing untyped null/suppress checks - I wouldn't expect this kind of
change at first
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services