summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/compiler.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r--lib/sqlalchemy/sql/compiler.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index ccc1b53fe..9a7646743 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -653,6 +653,12 @@ class SQLCompiler(Compiled):
"""
+ compile_state_factories = util.immutabledict()
+ """Dictionary of alternate :class:`.CompileState` factories for given
+ classes, identified by their visit_name.
+
+ """
+
def __init__(
self,
dialect,
@@ -661,6 +667,7 @@ class SQLCompiler(Compiled):
column_keys=None,
inline=False,
linting=NO_LINTING,
+ compile_state_factories=None,
**kwargs
):
"""Construct a new :class:`.SQLCompiler` object.
@@ -727,6 +734,9 @@ class SQLCompiler(Compiled):
# dialect.label_length or dialect.max_identifier_length
self.truncated_names = {}
+ if compile_state_factories:
+ self.compile_state_factories = compile_state_factories
+
Compiled.__init__(self, dialect, statement, **kwargs)
if (