diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g index 2e583da83ff5bdba1281e59dbb53aa02b875d29a..eb91e1f7b50c4c0dc94560a03c952f94ad7a5820 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g @@ -2157,7 +2157,7 @@ regularBody[boolean topLevel] i=insertClause ( s=selectStatement[topLevel] - {$s.tree.getChild(1).replaceChildren(0, 0, $i.tree);} -> {$s.tree} + {$s.tree.getChild(1) !=null}? {$s.tree.getChild(1).replaceChildren(0, 0, $i.tree);} -> {$s.tree} | valuesClause -> ^(TOK_QUERY diff --git a/ql/src/test/queries/clientnegative/insertsel_fail.q b/ql/src/test/queries/clientnegative/insertsel_fail.q new file mode 100644 index 0000000000000000000000000000000000000000..c14fefd565d40f66ec440fa21de6a7ff7ca45654 --- /dev/null +++ b/ql/src/test/queries/clientnegative/insertsel_fail.q @@ -0,0 +1 @@ +insert overwrite directory 'target/warehouse/aret.out' select a.key src a; diff --git a/ql/src/test/results/clientnegative/insertsel_fail.q.out b/ql/src/test/results/clientnegative/insertsel_fail.q.out new file mode 100644 index 0000000000000000000000000000000000000000..c87b0c294fbebb14ba2fd648f0aefdf5a3cac75d --- /dev/null +++ b/ql/src/test/results/clientnegative/insertsel_fail.q.out @@ -0,0 +1 @@ +FAILED: ParseException line 1:72 Failed to recognize predicate 'a'. Failed rule: 'regularBody' in statement