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

Reply via email to