mirror of
https://github.com/apache/impala.git
synced 2025-12-20 10:29:58 -05:00
The only thing this commit does is upgrade sqlparse. The upgrade was done by downloading and extracting the tarball, nothing else (such as patching). The older version of sqlparse would parse SELECT ' ; ' ; into two statements. Neither statement is complete due to the open quote and this would cause an infinite loop. The bug is already fixed in the newest version of sqlparse. Change-Id: I7ce7c269769ae0cde3dc8ca386d0b0e11bea71c1 Reviewed-on: http://gerrit.cloudera.org:8080/102 Reviewed-by: Casey Ching <casey@cloudera.com> Tested-by: Internal Jenkins
32 lines
995 B
Python
32 lines
995 B
Python
# Copyright (C) 2011 Jesus Leganes "piranna", piranna@gmail.com
|
|
#
|
|
# This module is part of python-sqlparse and is released under
|
|
# the BSD License: http://www.opensource.org/licenses/bsd-license.php.
|
|
|
|
from types import GeneratorType
|
|
|
|
|
|
class Pipeline(list):
|
|
"""Pipeline to process filters sequentially"""
|
|
|
|
def __call__(self, stream):
|
|
"""Run the pipeline
|
|
|
|
Return a static (non generator) version of the result
|
|
"""
|
|
|
|
# Run the stream over all the filters on the pipeline
|
|
for filter in self:
|
|
# Functions and callable objects (objects with '__call__' method)
|
|
if callable(filter):
|
|
stream = filter(stream)
|
|
|
|
# Normal filters (objects with 'process' method)
|
|
else:
|
|
stream = filter.process(None, stream)
|
|
|
|
# If last filter return a generator, staticalize it inside a list
|
|
if isinstance(stream, GeneratorType):
|
|
return list(stream)
|
|
return stream
|