From 2244c88a7c958c5afc93524d0b53940e7b3dd546 Mon Sep 17 00:00:00 2001 From: Illes Solt Date: Wed, 23 Apr 2025 12:30:37 +0200 Subject: [PATCH] Allow overriding sqlparse.parse() --- sql_metadata/parser.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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)