2 from sqlparse.sql import Statement
3 from sqlparse.tokens import Name, Error, Punctuation, Comment, Newline, \
7 def requote_names(token_list):
8 """Remove backticks, quote non-lowercase identifiers"""
9 for token in token_list.flatten():
10 if token.ttype is Name:
12 if (value[0] == "`") and (value[-1] == "`"):
15 token.normalized = token.value = value
17 token.normalized = token.value = '"%s"' % value
20 def find_error(token_list):
22 for token in token_list.flatten():
23 if token.ttype is Error:
28 class StatementGrouper(object):
33 def get_statements(self):
34 for statement in self.statements:
38 def process(self, tokens):
40 self.tokens.append(token)
41 if (token.ttype == Punctuation) and (token.value == ';'):
42 self.statements.append(Statement(self.tokens))
46 for token in self.tokens:
47 if (token.ttype not in (Comment.Single, Comment.Multiline,
48 Newline, Whitespace)):
49 raise ValueError("Incomplete SQL statement: %s" % self.tokens)