mirror of
https://github.com/apache/impala.git
synced 2025-12-25 11:04:13 -05:00
45 lines
991 B
Python
45 lines
991 B
Python
'''
|
|
Created on 17/05/2012
|
|
|
|
@author: piranna
|
|
|
|
Several utility functions to extract info from the SQL sentences
|
|
'''
|
|
|
|
from sqlparse.filters import ColumnsSelect, Limit
|
|
from sqlparse.pipeline import Pipeline
|
|
from sqlparse.tokens import Keyword, Whitespace
|
|
|
|
|
|
def getlimit(stream):
|
|
"""Function that return the LIMIT of a input SQL """
|
|
pipe = Pipeline()
|
|
|
|
pipe.append(Limit())
|
|
|
|
result = pipe(stream)
|
|
try:
|
|
return int(result)
|
|
except ValueError:
|
|
return result
|
|
|
|
|
|
def getcolumns(stream):
|
|
"""Function that return the colums of a SELECT query"""
|
|
pipe = Pipeline()
|
|
|
|
pipe.append(ColumnsSelect())
|
|
|
|
return pipe(stream)
|
|
|
|
|
|
class IsType(object):
|
|
"""Functor that return is the statement is of a specific type"""
|
|
def __init__(self, type):
|
|
self.type = type
|
|
|
|
def __call__(self, stream):
|
|
for token_type, value in stream:
|
|
if token_type not in Whitespace:
|
|
return token_type in Keyword and value == self.type
|