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]