mirror of
https://github.com/apache/impala.git
synced 2025-12-22 19:35:22 -05:00
IMPALA-9362: Upgrade sqlparse 0.1.19 -> 0.3.1
Upgrades the impala-shell's bundled version of sqlparse to 0.3.1. There were some API changes in 0.2.0+ that required a re-write of the StripLeadingCommentFilter in impala_shell.py. A slight perf optimization was also added to avoid using the filter altogether if no leading comment is readily discernible. As 0.1.19 was the last version of sqlparse to support python 2.6, this patch also breaks Impala's compatibility with python 2.6. No new tests were added, but all existing tests passed without modification. Change-Id: I77a1fd5ae311634a18ee04b8c389d8a3f3a6e001 Reviewed-on: http://gerrit.cloudera.org:8080/15642 Reviewed-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
This commit is contained in:
committed by
Impala Public Jenkins
parent
327ec29c48
commit
c26e3db4bd
45
shell/ext-py/sqlparse-0.3.1/sqlparse/compat.py
Normal file
45
shell/ext-py/sqlparse-0.3.1/sqlparse/compat.py
Normal file
@@ -0,0 +1,45 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2009-2018 the sqlparse authors and contributors
|
||||
# <see AUTHORS file>
|
||||
#
|
||||
# This module is part of python-sqlparse and is released under
|
||||
# the BSD License: https://opensource.org/licenses/BSD-3-Clause
|
||||
|
||||
"""Python 2/3 compatibility.
|
||||
|
||||
This module only exists to avoid a dependency on six
|
||||
for very trivial stuff. We only need to take care of
|
||||
string types, buffers and metaclasses.
|
||||
|
||||
Parts of the code is copied directly from six:
|
||||
https://bitbucket.org/gutworth/six
|
||||
"""
|
||||
|
||||
import sys
|
||||
from io import TextIOBase
|
||||
|
||||
PY2 = sys.version_info[0] == 2
|
||||
PY3 = sys.version_info[0] == 3
|
||||
|
||||
|
||||
if PY3:
|
||||
def unicode_compatible(cls):
|
||||
return cls
|
||||
|
||||
text_type = str
|
||||
string_types = (str,)
|
||||
from io import StringIO
|
||||
file_types = (StringIO, TextIOBase)
|
||||
|
||||
|
||||
elif PY2:
|
||||
def unicode_compatible(cls):
|
||||
cls.__unicode__ = cls.__str__
|
||||
cls.__str__ = lambda x: x.__unicode__().encode('utf-8')
|
||||
return cls
|
||||
|
||||
text_type = unicode
|
||||
string_types = (str, unicode,)
|
||||
from StringIO import StringIO
|
||||
file_types = (file, StringIO, TextIOBase)
|
||||
Reference in New Issue
Block a user