File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1174,11 +1174,12 @@ def extend_sqlglot() -> None:
11741174 MacroDef ,
11751175 )
11761176
1177- generator .UNWRAPPED_INTERVAL_VALUES = (
1178- * generator .UNWRAPPED_INTERVAL_VALUES ,
1179- MacroStrReplace ,
1180- MacroVar ,
1181- )
1177+ if MacroVar not in generator .UNWRAPPED_INTERVAL_VALUES :
1178+ generator .UNWRAPPED_INTERVAL_VALUES = (
1179+ * generator .UNWRAPPED_INTERVAL_VALUES ,
1180+ MacroStrReplace ,
1181+ MacroVar ,
1182+ )
11821183
11831184 _override (Parser , _parse_select )
11841185 _override (Parser , _parse_statement )
Original file line number Diff line number Diff line change @@ -1190,6 +1190,12 @@ def test_pipe_syntax():
11901190def test_extend_sqlglot_is_idempotent ():
11911191 # extend_sqlglot() runs at import time; calling it again must not re-wrap the
11921192 # already-installed overrides, otherwise they call themselves (RecursionError).
1193+ from sqlglot .generator import Generator
1194+
1195+ before = Generator .UNWRAPPED_INTERVAL_VALUES
1196+
11931197 d .extend_sqlglot ()
11941198
11951199 assert parse_one ("SELECT CAST(1 AS INT)" ).sql () == "SELECT CAST(1 AS INT)"
1200+ # The class-level registries must not grow on repeated calls.
1201+ assert Generator .UNWRAPPED_INTERVAL_VALUES == before
You can’t perform that action at this time.
0 commit comments