summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/strategies.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/orm/strategies.py')
-rw-r--r--lib/sqlalchemy/orm/strategies.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/strategies.py b/lib/sqlalchemy/orm/strategies.py
index 4e7636cf8..4b9eb3b0f 100644
--- a/lib/sqlalchemy/orm/strategies.py
+++ b/lib/sqlalchemy/orm/strategies.py
@@ -195,7 +195,7 @@ class ColumnLoader(LoaderStrategy):
@log.class_logger
-@properties.ColumnProperty.strategy_for(deferred_expression=True)
+@properties.ColumnProperty.strategy_for(query_expression=True)
class ExpressionColumnLoader(ColumnLoader):
def __init__(self, parent, strategy_key):
super(ExpressionColumnLoader, self).__init__(parent, strategy_key)
@@ -235,6 +235,15 @@ class ExpressionColumnLoader(ColumnLoader):
else:
populators["expire"].append((self.key, True))
+ def init_class_attribute(self, mapper):
+ self.is_class_level = True
+
+ _register_attribute(
+ self.parent_property, mapper, useobject=False,
+ compare_function=self.columns[0].type.compare_values,
+ accepts_scalar_loader=False
+ )
+
@log.class_logger
@properties.ColumnProperty.strategy_for(deferred=True, instrument=True)