diff options
Diffstat (limited to 'lib/sqlalchemy/sql/base.py')
| -rw-r--r-- | lib/sqlalchemy/sql/base.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql/base.py b/lib/sqlalchemy/sql/base.py index f14319089..5dd3b519a 100644 --- a/lib/sqlalchemy/sql/base.py +++ b/lib/sqlalchemy/sql/base.py @@ -446,10 +446,14 @@ class CompileState(object): plugin_name = statement._propagate_attrs.get( "compile_state_plugin", "default" ) - else: - plugin_name = "default" + klass = cls.plugins.get( + (plugin_name, statement.__visit_name__), None + ) + if klass is None: + klass = cls.plugins[("default", statement.__visit_name__)] - klass = cls.plugins[(plugin_name, statement.__visit_name__)] + else: + klass = cls.plugins[("default", statement.__visit_name__)] if klass is cls: return cls(statement, compiler, **kw) |
