diff options
author | Andi Albrecht <albrecht.andi@gmail.com> | 2015-07-26 11:20:49 +0200 |
---|---|---|
committer | Andi Albrecht <albrecht.andi@gmail.com> | 2015-07-26 11:20:49 +0200 |
commit | fb6b59dece40a608a1c6cf741a4ac6ee88d85d2f (patch) | |
tree | 2d013f2e9d2de4fffab927ca03e33dee0ee609c9 /sqlparse/sql.py | |
parent | 8b5a957f4dad82fda0dc174538fdaf0860a9256a (diff) | |
download | sqlparse-fb6b59dece40a608a1c6cf741a4ac6ee88d85d2f.tar.gz |
Ignore comments at beginning of statement when calling Statement.get_type (fixes #186).
Diffstat (limited to 'sqlparse/sql.py')
-rw-r--r-- | sqlparse/sql.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sqlparse/sql.py b/sqlparse/sql.py index 717661f..5ecfbdc 100644 --- a/sqlparse/sql.py +++ b/sqlparse/sql.py @@ -240,15 +240,20 @@ class TokenList(Token): def _groupable_tokens(self): return self.tokens - def token_first(self, ignore_whitespace=True): + def token_first(self, ignore_whitespace=True, ignore_comments=False): """Returns the first child token. If *ignore_whitespace* is ``True`` (the default), whitespace tokens are ignored. + + if *ignore_comments* is ``True`` (default: ``False``), comments are + ignored too. """ for token in self.tokens: if ignore_whitespace and token.is_whitespace(): continue + if ignore_comments and isinstance(token, Comment): + continue return token def token_next_by_instance(self, idx, clss): @@ -468,8 +473,11 @@ class Statement(TokenList): The returned value is a string holding an upper-cased reprint of the first DML or DDL keyword. If the first token in this group isn't a DML or DDL keyword "UNKNOWN" is returned. + + Whitespaces and comments at the beginning of the statement + are ignored. """ - first_token = self.token_first() + first_token = self.token_first(ignore_comments=True) if first_token is None: # An "empty" statement that either has not tokens at all # or only whitespace tokens. |