[
https://issues.apache.org/jira/browse/HIVE-14686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15476439#comment-15476439
]
Fan Yunbo commented on HIVE-14686:
----------------------------------
[~ruili] Thanks for your advice again.
The braces of if statement have been added.
> Get unexpected command type when execute query "CREATE TABLE IF NOT EXISTS
> ... AS"
> ----------------------------------------------------------------------------------
>
> Key: HIVE-14686
> URL: https://issues.apache.org/jira/browse/HIVE-14686
> Project: Hive
> Issue Type: Bug
> Affects Versions: 1.1.0
> Reporter: Fan Yunbo
> Assignee: Fan Yunbo
> Fix For: 2.2.0
>
> Attachments: HIVE-14686.1.patch, HIVE-14686.2.patch,
> HIVE-14686.3.patch, HIVE-14686.4.patch, HIVE-14686.5.patch
>
>
> See the query:
> {code}
> create table if not exists DST as select * from SRC;
> {code}
> if the table DST doesn't exist, SessionState.get().getHiveOperation() will
> return HiveOperation.CREATETABLE_AS_SELECT;
> But if the table DST already exists, it will return HiveOperation.CREATETABLE;
> It really makes some trouble for those who judge operation type by
> SessionState.get().getHiveOperation().
> The reason I find out is that the function analyzeCreateTable in
> SemanticAnalyzer.java will return null and won't set the correct command type
> if the table already exists.
> Here is the related code:
> {code}
> // check for existence of table
> if (ifNotExists) {
> try {
> Table table = getTable(qualifiedTabName, false);
> if (table != null) { // table exists
> return null;
> }
> } catch (HiveException e) {
> // should not occur since second parameter to getTableWithQN is false
> throw new IllegalStateException("Unxpected Exception thrown: " +
> e.getMessage(), e);
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)