You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by ta...@apache.org on 2016/10/07 20:06:59 UTC
incubator-impala git commit: IMPALA-4240: qgen: Add "ParseException
line missing )" to Known Errors for Hive
Repository: incubator-impala
Updated Branches:
refs/heads/master acb25a6d1 -> 50b2b888c
IMPALA-4240: qgen: Add "ParseException line missing )" to Known Errors for Hive
There is a bug in Hive with parenthesis parsing for PARTITION BY clauses. Full details
can be found in https://issues.apache.org/jira/browse/HIVE-14871. Fixing this issue in
Hive isn't trivial, so it should be marked as a "Known Error" in the qgen code.
The exception printed by Hive is of the form:
FAILED: ParseException line ?:? missing ) at '?' near '?'
line ?:? missing EOF at '?' near '?' (state=42000,code=40000)
Testing:
* All unit tests are passing
* Tested against Hive locally
* Tested against Impala via the discrepancy searcher
Change-Id: Iba3ff4c667ad43ab0927fb19da3dd36ba6504058
Reviewed-on: http://gerrit.cloudera.org:8080/4587
Reviewed-by: Taras Bobrovytsky <tb...@cloudera.com>
Tested-by: Taras Bobrovytsky <tb...@cloudera.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/50b2b888
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/50b2b888
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/50b2b888
Branch: refs/heads/master
Commit: 50b2b888cd9053c013d4c2e5c34f0107e0d44036
Parents: acb25a6
Author: Sahil Takiar <st...@cloudera.com>
Authored: Sat Oct 1 09:48:27 2016 -0700
Committer: Taras Bobrovytsky <tb...@cloudera.com>
Committed: Fri Oct 7 19:59:38 2016 +0000
----------------------------------------------------------------------
tests/comparison/discrepancy_searcher.py | 51 ++++++++++++++++-----------
1 file changed, 30 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/50b2b888/tests/comparison/discrepancy_searcher.py
----------------------------------------------------------------------
diff --git a/tests/comparison/discrepancy_searcher.py b/tests/comparison/discrepancy_searcher.py
index 11f65c0..a1e60e2 100755
--- a/tests/comparison/discrepancy_searcher.py
+++ b/tests/comparison/discrepancy_searcher.py
@@ -47,6 +47,7 @@ from db_connection import (
from model_translator import SqlWriter
from query_flattener import QueryFlattener
from query_generator import QueryGenerator
+from tests.comparison import db_connection
LOG = getLogger(__name__)
@@ -111,27 +112,35 @@ class QueryResultComparator(object):
# "known errors" will be ignored
error_message = str(test_exception)
known_error = None
- if 'Expressions in the ORDER BY clause must not be constant' in error_message \
- or 'Expressions in the PARTITION BY clause must not be consta' in error_message:
- # It's too much work to avoid this bug. Just ignore it if it comes up.
- known_error = KnownError('https://issues.cloudera.org/browse/IMPALA-1354')
- elif 'GROUP BY expression must not contain aggregate functions' in error_message \
- or 'select list expression not produced by aggregation output' in error_message:
- known_error = KnownError('https://issues.cloudera.org/browse/IMPALA-1423')
- elif ('max(' in error_message or 'min(' in error_message) \
- and 'only supported with an UNBOUNDED PRECEDING start bound' in error_message:
- # This analytic isn't supported and ignoring this here is much easier than not
- # generating the query...
- known_error = KnownError('MAX UNBOUNDED PRECISION')
- elif 'IN and/or EXISTS subquery predicates are not supported in binary predicates' \
- in error_message:
- known_error = KnownError('https://issues.cloudera.org/browse/IMPALA-1418')
- elif 'Unsupported predicate with subquery' in error_message:
- known_error = KnownError('https://issues.cloudera.org/browse/IMPALA-1950')
- elif 'RIGHT OUTER JOIN type with no equi-join' in error_message:
- known_error = KnownError('https://issues.cloudera.org/browse/IMPALA-3063')
- elif 'Operation is in ERROR_STATE' in error_message:
- known_error = KnownError('Mem limit exceeded')
+
+ if self.test_db_type is db_connection.IMPALA:
+ if 'Expressions in the ORDER BY clause must not be constant' in error_message \
+ or 'Expressions in the PARTITION BY clause must not be consta' in error_message:
+ # It's too much work to avoid this bug. Just ignore it if it comes up.
+ known_error = KnownError('https://issues.cloudera.org/browse/IMPALA-1354')
+ elif 'GROUP BY expression must not contain aggregate functions' in error_message \
+ or 'select list expression not produced by aggregation output' in error_message:
+ known_error = KnownError('https://issues.cloudera.org/browse/IMPALA-1423')
+ elif ('max(' in error_message or 'min(' in error_message) \
+ and 'only supported with an UNBOUNDED PRECEDING start bound' in error_message:
+ # This analytic isn't supported and ignoring this here is much easier than not
+ # generating the query...
+ known_error = KnownError('MAX UNBOUNDED PRECISION')
+ elif 'IN and/or EXISTS subquery predicates are not supported in binary predicates' \
+ in error_message:
+ known_error = KnownError('https://issues.cloudera.org/browse/IMPALA-1418')
+ elif 'Unsupported predicate with subquery' in error_message:
+ known_error = KnownError('https://issues.cloudera.org/browse/IMPALA-1950')
+ elif 'RIGHT OUTER JOIN type with no equi-join' in error_message:
+ known_error = KnownError('https://issues.cloudera.org/browse/IMPALA-3063')
+ elif 'Operation is in ERROR_STATE' in error_message:
+ known_error = KnownError('Mem limit exceeded')
+ elif self.test_db_type is db_connection.HIVE:
+ if 'ParseException line' in error_message and 'missing ) at' in \
+ error_message and query.select_clause and \
+ query.select_clause.analytic_items:
+ known_error = KnownError("https://issues.apache.org/jira/browse/HIVE-14871")
+
if known_error:
comparison_result.exception = known_error
else: