diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g index 807f6f593e..c6272380ad 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g +++ ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g @@ -513,7 +513,10 @@ Identifier fragment QuotedIdentifier : - '`' ( '``' | ~('`') )* '`' { setText(getText().substring(1, getText().length() -1 ).replaceAll("``", "`")); } + '`' ( '``' | ~('`') )* '`' { +if(getText().substring(1, getText().length() -1 ).contains("``")) + setText(getText().substring(1, getText().length() -1 ).replaceAll("``", "`")); +} ; CharSetName diff --git ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java index 4ec111cf1e..b4cfc69285 100644 --- ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java +++ ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java @@ -161,7 +161,7 @@ public void testSelectStarFromAnonymousVirtTable1Row() throws ParseException { } catch(ParseException ex) { Assert.assertEquals("Failure didn't match.", - "line 1:24 cannot recognize input near 'values' '(' '3' in joinSource", + "line 1:24 cannot recognize input near '`values`' '(' '3' in joinSource", ex.getMessage()); } }