You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/01/07 14:57:00 UTC
[jira] [Updated] (HIVE-25852) Introduce IN clauses at the very end of query planning
[ https://issues.apache.org/jira/browse/HIVE-25852?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated HIVE-25852:
----------------------------------
Labels: pull-request-available (was: )
> Introduce IN clauses at the very end of query planning
> ------------------------------------------------------
>
> Key: HIVE-25852
> URL: https://issues.apache.org/jira/browse/HIVE-25852
> Project: Hive
> Issue Type: Bug
> Components: CBO
> Affects Versions: 4.0.0
> Reporter: Alessandro Solimando
> Priority: Major
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Calcite "explodes" IN clauses into the equivalent OR form, and therefore it does not handle such clauses in most of the codebase (notably in _RexSimplify_).
> In Hive, the same happens, but _HivePointLookupOptimizerRule_ re-introduces IN clauses, and it happens in _applyPreJoinOrderingTransforms_ phase, which is pretty early and which mixes several other rules which might not fully support IN (notably, _HiveReduceExpressionsRule_ which is based on _RexSimplify_).
> The problem will become even harder in later versions of Calcite (current is 1.25) based on SARG, which does not support IN clauses.
> IN clauses can be converted into efficient runtime operators, we therefore want to keep them in the final plan, intuitively we just want this translation to happen in a later step, in order to leave the rest of the codebase (Hive and Calcite) unaware of IN clauses.
> The goal of the ticket is as follows:
> # re-convert the output expression of _HivePointLookupOptimizerRule_ into the OR form (keep the logic as-is to benefit from the rule)
> # add a rule, in the last step of the planning process, that only converts eligible OR expressions into IN clauses
--
This message was sent by Atlassian Jira
(v8.20.1#820001)