[ 
https://issues.apache.org/jira/browse/HIVE-28193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17855940#comment-17855940
 ] 

Shohei Okumiya commented on HIVE-28193:
---------------------------------------

I revised the title because I found that QUALIFY is also a family member that 
requires CBO, and I am recreating the branch.
 * 
[https://github.com/apache/hive/blob/rel/release-4.0.0/common/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java#L483-L484]
 * 
[https://github.com/apache/hive/blob/rel/release-4.0.0/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java#L12292-L12294]

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

Reply via email to