diff options
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 10 |
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 ( |