diff --git a/sql_metadata/parser.py b/sql_metadata/parser.py index 7605da22..5c61dca8 100644 --- a/sql_metadata/parser.py +++ b/sql_metadata/parser.py @@ -134,7 +134,8 @@ def tokens(self) -> List[SQLToken]: # noqa: C901 if self._tokens is not None: return self._tokens - parsed = sqlparse.parse(self._query) + # allow parser to be overriden + parsed = self._parse(self._query) tokens = [] # handle empty queries (#12) if not parsed: @@ -1104,3 +1105,10 @@ def _get_switch_by_create_query(tokens: List[SQLToken], index: int) -> str: switch = "CREATEFUNCTION" return switch + + @staticmethod + def _parse(sql: str) -> Tuple[sqlparse.sql.Statement]: + """ + Parse the SQL query using sqlparse library + """ + return sqlparse.parse(sql)