def remove_directive_tokens(statement):
- """Remove /*! directives */ from the first-level"""
+ """Remove /\*! directives \*/ from the first-level"""
new_tokens = []
for token in statement.tokens:
if _is_directive_token(token):
token.normalized = token.value = value
-def is_insert(statement):
+def get_DML_type(statement):
for token in statement.tokens:
if is_comment_or_space(token):
continue
- return (token.ttype is T.DML) and (token.normalized == 'INSERT')
+ if (token.ttype is T.DML):
+ return token.normalized
+ break
+ raise ValueError("Not a DML statement")
def split_ext_insert(statement):
if i == len(values_tokens) - 1: # Last but one statement
# Insert newlines only between split statements but not after
new_lines = []
- # The statemnt sets `parent` attribute of the every token to self
+ # The statement sets `parent` attribute of the every token to self
# but we don't care.
statement = Statement(insert_tokens + [values] +
end_tokens + new_lines)
unescape_strings(statement)
remove_directive_tokens(statement)
escape_strings(statement, quoting_style)
- if is_insert(statement):
+ try:
+ is_insert = get_DML_type(statement) == 'INSERT'
+ except ValueError:
+ is_insert = False
+ if is_insert:
for statement in split_ext_insert(statement):
yield statement
else: