summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-04-18 22:33:53 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-04-18 22:33:53 +0000
commit7efd23b23cbbd1d714cc31e44e776b7e1e9af319 (patch)
tree9785dee17451fb928446af8034ce8ceabfe74a09 /lib/sqlalchemy
parentd5c3eb39ca6e6738d16e8013fd5cb46b17486d5a (diff)
downloadsqlalchemy-7efd23b23cbbd1d714cc31e44e776b7e1e9af319.tar.gz
- fixed critical issue when, after options(eagerload()) is used,
the mapper would then always apply query "wrapping" behavior for all subsequent LIMIT/OFFSET/DISTINCT queries, even if no eager loading was applied on those subsequent queries.
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/orm/interfaces.py4
-rw-r--r--lib/sqlalchemy/orm/strategies.py3
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/sqlalchemy/orm/interfaces.py b/lib/sqlalchemy/orm/interfaces.py
index 5c6a92325..358e1297f 100644
--- a/lib/sqlalchemy/orm/interfaces.py
+++ b/lib/sqlalchemy/orm/interfaces.py
@@ -149,8 +149,8 @@ class StrategizedProperty(MapperProperty):
except KeyError:
# cache the located strategy per class for faster re-lookup
strategy = cls(self)
- strategy.init()
strategy.is_default = False
+ strategy.init()
self._all_strategies[cls] = strategy
return strategy
@@ -282,7 +282,7 @@ class LoaderStrategy(object):
def init(self):
self.parent = self.parent_property.parent
self.key = self.parent_property.key
-
+
def init_class_attribute(self):
pass
diff --git a/lib/sqlalchemy/orm/strategies.py b/lib/sqlalchemy/orm/strategies.py
index e9d992d18..ee80b3477 100644
--- a/lib/sqlalchemy/orm/strategies.py
+++ b/lib/sqlalchemy/orm/strategies.py
@@ -317,7 +317,8 @@ class EagerLoader(AbstractRelationLoader):
"to child class '%s': Cant use eager loading on a self "
"referential relationship." %
(self.key, repr(self.parent.class_), repr(self.mapper.class_)))
- self.parent._eager_loaders.add(self.parent_property)
+ if self.is_default:
+ self.parent._eager_loaders.add(self.parent_property)
self.clauses = {}
self.clauses_by_lead_mapper = {}