[
https://issues.apache.org/jira/browse/HIVE-30178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Denys Kuzmenko updated HIVE-30178:
----------------------------------
Description:
Since HIVE-30170, a non-null VARIANT expression is never constant-folded: the
variant constant inspector does not
support non-null constants, and Calcite has no VARIANT literal other than NULL.
- Effect: parse_json('{"a":1}') in a filter or projection is evaluated per row.
Before, it was folded into a struct
constant.
- Proposal: fold deterministic VARIANT expressions over constants into a
VARIANT constant on the Hive side
(ConstantPropagate, ExprNodeConstantDesc with the constant variant
inspector), so v = parse_json('...') compares
against a precomputed value.
> Constant-fold VARIANT literals
> ------------------------------
>
> Key: HIVE-30178
> URL: https://issues.apache.org/jira/browse/HIVE-30178
> Project: Hive
> Issue Type: Sub-task
> Reporter: Denys Kuzmenko
> Priority: Major
>
> Since HIVE-30170, a non-null VARIANT expression is never constant-folded: the
> variant constant inspector does not
> support non-null constants, and Calcite has no VARIANT literal other than
> NULL.
> - Effect: parse_json('{"a":1}') in a filter or projection is evaluated per
> row. Before, it was folded into a struct
> constant.
> - Proposal: fold deterministic VARIANT expressions over constants into a
> VARIANT constant on the Hive side
> (ConstantPropagate, ExprNodeConstantDesc with the constant variant
> inspector), so v = parse_json('...') compares
> against a precomputed value.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)