diff options
Diffstat (limited to 'lib/sqlalchemy/orm/properties.py')
-rw-r--r-- | lib/sqlalchemy/orm/properties.py | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index 027786c19..4cf501e3f 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -346,14 +346,20 @@ class ColumnProperty(StrategizedProperty): pe = self._parententity # no adapter, so we aren't aliased # assert self._parententity is self._parentmapper - return self.prop.columns[0]._annotate( - { - "entity_namespace": pe, - "parententity": pe, - "parentmapper": pe, - "orm_key": self.prop.key, - "compile_state_plugin": "orm", - } + return ( + self.prop.columns[0] + ._annotate( + { + "entity_namespace": pe, + "parententity": pe, + "parentmapper": pe, + "orm_key": self.prop.key, + "compile_state_plugin": "orm", + } + ) + ._set_propagate_attrs( + {"compile_state_plugin": "orm", "plugin_subject": pe} + ) ) def _memoized_attr_info(self): @@ -388,6 +394,11 @@ class ColumnProperty(StrategizedProperty): "orm_key": self.prop.key, "compile_state_plugin": "orm", } + )._set_propagate_attrs( + { + "compile_state_plugin": "orm", + "plugin_subject": self._parententity, + } ) for col in self.prop.columns ] |