mirror of
https://github.com/apache/impala.git
synced 2026-01-05 03:01:02 -05:00
IMPALA-6337: Fix infinite loop in Impala shell
This patch fixes a bug in sqlparse where sqlparse incorrectly splits a statement that has a new line inside double quotes. The bug in sqlparse causes Impala shell to go to infinite loop when a statement contains a new line inside double quotes. The patch in sqlparse is based on the upstream fix at https://github.com/andialbrecht/sqlparse/pull/396 Testing: - Added new end-to-end shell tests - Ran end-to-end shell tests Change-Id: I9142f21a888189d351f00ce09baeba123bc0959b Reviewed-on: http://gerrit.cloudera.org:8080/9195 Reviewed-by: David Knupp <dknupp@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
This commit is contained in:
committed by
Impala Public Jenkins
parent
47f95f14bc
commit
4cdb6dfa6d
@@ -196,7 +196,8 @@ class Lexer(object):
|
||||
(r'[-]?[0-9]+', tokens.Number.Integer),
|
||||
(r"'(''|\\\\|\\'|[^'])*'", tokens.String.Single),
|
||||
# not a real string literal in ANSI SQL:
|
||||
(r'(""|".*?[^\\]")', tokens.String.Symbol),
|
||||
# A patch based on: https://github.com/andialbrecht/sqlparse/pull/396
|
||||
(r'"(""|\\\\|\\"|[^"])*"', tokens.String.Symbol),
|
||||
# sqlite names can be escaped with [square brackets]. left bracket
|
||||
# cannot be preceded by word character or a right bracket --
|
||||
# otherwise it's probably an array index
|
||||
|
||||
Reference in New Issue
Block a user