You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Shohei Okumiya (Jira)" <ji...@apache.org> on 2024/06/18 13:45:00 UTC
[jira] [Updated] (HIVE-28193) Ignore CBO fallback strategy when EXCEPT/INTERSECT/QUALIFY are used
[ https://issues.apache.org/jira/browse/HIVE-28193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shohei Okumiya updated HIVE-28193:
----------------------------------
Summary: Ignore CBO fallback strategy when EXCEPT/INTERSECT/QUALIFY are used (was: CBO fallback can overwrite the real error message when EXCEPT or INTERSECT are used)
> Ignore CBO fallback strategy when EXCEPT/INTERSECT/QUALIFY are used
> -------------------------------------------------------------------
>
> Key: HIVE-28193
> URL: https://issues.apache.org/jira/browse/HIVE-28193
> Project: Hive
> Issue Type: Improvement
> Components: CBO
> Affects Versions: 4.0.0
> Reporter: Shohei Okumiya
> Assignee: Shohei Okumiya
> Priority: Major
> Labels: pull-request-available
>
> With `hive.cbo.fallback.strategy=CONSERVATIVE`, Hive retries to compile an SQL without CBO when a compile error happens. We sometimes see an unkind error message when EXCEPT, INTERSECT, OR QUALIFY are used. The fallback non-CBO mode doesn't support those operators, so Hive asked us to enable CBO.
> {code:java}
> 0: jdbc:hive2://hive-hiveserver2:10000/defaul> select cast(0 as bigint) = '1' EXCEPT select cast(1 as bigint) = '1';
> Error: Error while compiling statement: FAILED: SemanticException EXCEPT and INTERSECT operations are only supported with Cost Based Optimizations enabled. Please set 'hive.cbo.enable' to true! (state=42000,code=40000)
> 0: jdbc:hive2://hive-hiveserver2:10000/defaul> set hive.cbo.fallback.strategy=NEVER;
> No rows affected (0.035 seconds)
> 0: jdbc:hive2://hive-hiveserver2:10000/defaul> select cast(0 as bigint) = '1' EXCEPT select cast(1 as bigint) = '1';
> Error: Error while compiling statement: FAILED: SemanticException Line 0:-1 Wrong arguments ''1'': Unsafe compares between different types are disabled for safety reasons. If you know what you are doing, please set hive.strict.checks.type.safety to false and make sure that hive.mapred.mode is not set to 'strict' to proceed. Note that you may get errors or incorrect results if you make a mistake while using some of the unsafe features. (state=42000,code=40000) {code}
> It is inconvenient, especially when the CBO mode fails because of `hive.strict.checks.*`, because we can't identify the true reason why the query failed.
> We plan to disable the fallback behavior or deprecate the non-CBO mode. However, we sometimes need to rely on the features at this point.
> * https://issues.apache.org/jira/browse/HIVE-27831
> * https://issues.apache.org/jira/browse/HIVE-27830
--
This message was sent by Atlassian Jira
(v8.20.10#820010)