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)