You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Kokila N (Jira)" <ji...@apache.org> on 2026/04/24 05:38:00 UTC

[jira] [Resolved] (HIVE-29570) Fix Hive MERGE query parse failure when using backtick-quoted keyword column names

     [ https://issues.apache.org/jira/browse/HIVE-29570?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kokila N resolved HIVE-29570.
-----------------------------
    Fix Version/s: 4.3.0
       Resolution: Fixed

> Fix Hive MERGE query parse failure when using backtick-quoted keyword column names
> ----------------------------------------------------------------------------------
>
>                 Key: HIVE-29570
>                 URL: https://issues.apache.org/jira/browse/HIVE-29570
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Kokila N
>            Assignee: Kokila N
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 4.3.0
>
>
> Merge query fails with parse error when column name is of function name (date) 
> *Query:*
> {code:java}
> create table acidTbl_kw(a int, `date` int) clustered by (a) into 2 buckets stored as orc
>   TBLPROPERTIES ('transactional'='true');
> create table nonAcidOrcTbl_kw(a int, `date` int) clustered by (a) into 2 buckets stored as orc
>   TBLPROPERTIES ('transactional'='false');
> explain merge into acidTbl_kw as t using nonAcidOrcTbl_kw s ON t.`a` = s.`a`
> WHEN MATCHED THEN UPDATE SET `date` = s.`date`
> WHEN NOT MATCHED THEN INSERT VALUES(s.`a`, s.`date`);{code}
> *Error:*
> {code:java}
>  org.apache.hadoop.hive.ql.parse.SemanticException: Encountered parse error while parsing rewritten merge/update or delete query                                                                                   
>         at org.apache.hadoop.hive.ql.parse.ParseUtils.parseRewrittenQuery(ParseUtils.java:747)                                                                                                                     
>         at org.apache.hadoop.hive.ql.parse.rewrite.MergeRewriter.rewrite(MergeRewriter.java:86)                                                                                                                    
>         at org.apache.hadoop.hive.ql.parse.rewrite.MergeRewriter.rewrite(MergeRewriter.java:54)                                                                                                                    
>         at org.apache.hadoop.hive.ql.parse.RewriteSemanticAnalyzer.rewriteAndAnalyze(RewriteSemanticAnalyzer.java:94)                                                                                              
>         at org.apache.hadoop.hive.ql.parse.MergeSemanticAnalyzer.analyze(MergeSemanticAnalyzer.java:207)                                                                                                           
>         at org.apache.hadoop.hive.ql.parse.RewriteSemanticAnalyzer.analyze(RewriteSemanticAnalyzer.java:85)                                                                                                        
>         at org.apache.hadoop.hive.ql.parse.RewriteSemanticAnalyzer.analyzeInternal(RewriteSemanticAnalyzer.java:73)                                                                                                
>         at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:358)                                                                                                             
>         at org.apache.hadoop.hive.ql.parse.ExplainSemanticAnalyzer.analyzeInternal(ExplainSemanticAnalyzer.java:187)                                                                                               
>         at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:358)                                                                                                             
> ....
>                                                                                                                              
> Caused by: org.apache.hadoop.hive.ql.parse.ParseException: line 11:22 cannot recognize input near 's' '.' 'date' in selection target                                                                               
>         at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:125)                                                                                                                                 
>         at org.apache.hadoop.hive.ql.parse.ParseUtils.parse(ParseUtils.java:101)                                                                                                                                   
>         at org.apache.hadoop.hive.ql.parse.ParseUtils.parse(ParseUtils.java:93)                                                                                                                                    
>         at org.apache.hadoop.hive.ql.parse.ParseUtils.parseRewrittenQuery(ParseUtils.java:745)                                                                                                                     
>         ... 64 more                                                                                                                                                                                                
> Caused by: NoViableAltException(99@[80:1: selectItem : ( ( tableAllColumns )=> tableAllColumns -> ^( TOK_SELEXPR tableAllColumns ) | ( expression ( ( ( KW_AS )? identifier ) | ( KW_AS LPAREN identifier ( COMMA identifier )* RPAREN ) )? ) -> ^( TOK_SELEXPR expression ( identifier )* ) );])                                                                                                                                     
>         at org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser$DFA13.specialStateTransition(HiveParser_SelectClauseParser.java:5211)                                                                     
>         at org.antlr.runtime.DFA.predict(DFA.java:80)                                                                                                                                                              
>         at org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser.selectItem(HiveParser_SelectClauseParser.java:1835)                                                                                       
>         at org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser.selectList(HiveParser_SelectClauseParser.java:1396)                                                                                       
>         at org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser.selectClause(HiveParser_SelectClauseParser.java:1166)                                                                                     
>         at org.apache.hadoop.hive.ql.parse.HiveParser.selectClause(HiveParser.java:43926)                                                                                                                          
>         at org.apache.hadoop.hive.ql.parse.HiveParser.body(HiveParser.java:38957)                                                                                                                                  
>         at org.apache.hadoop.hive.ql.parse.HiveParser.singleFromStatement(HiveParser.java:37559)                                                                                                                   
>         at org.apache.hadoop.hive.ql.parse.HiveParser.fromStatement(HiveParser.java:37317)                                                                                                                         
>         at org.apache.hadoop.hive.ql.parse.HiveParser.queryStatementExpressionBody(HiveParser.java:36974)                                                                                                          
>         at org.apache.hadoop.hive.ql.parse.HiveParser.queryStatementExpression(HiveParser.java:36876)                                                                                                              
>         at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:2787)                                                                                                                          
>         at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1666)                                                                                                                              
>         at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:123)                                                                                                                                 
>         ... 67 more   {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)