rubenada commented on code in PR #6523:
URL: https://github.com/apache/hive/pull/6523#discussion_r3784624414


##########
ql/src/test/results/clientpositive/llap/auto_join13.q.out:
##########
@@ -87,7 +88,7 @@ STAGE PLANS:
                                 sort order: 
                                 Statistics: Num rows: 1 Data size: 8 Basic 
stats: COMPLETE Column stats: COMPLETE
                                 value expressions: _col0 (type: bigint)
-            Execution mode: vectorized, llap
+            Execution mode: llap

Review Comment:
   IIUC before the upgrade RexSimplify rewrote `IS_NOT_NULL(PLUS(CAST(_col0), 
CAST(_col2)))` into `IS_NOT_NULL(_col0) AND IS_NOT_NULL(_col2)`, and those two 
IS NOT NULL predicates on plain columns were pushable below the join.
   With the upgrade, RexSimplify refuses that rewrite because `CAST(string AS 
DOUBLE)` isn't a lossless cast, so the global `IS_NOT_NULL(CAST(_col0) + 
CAST(_col2))` stays glued together at the join level, because its two operands 
come from different inputs to the join, it can only be evaluated after the join 
keys are joined, that leads to the loss of vectorization. Is that correct?
   



-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to