summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/orm')
-rw-r--r--lib/sqlalchemy/orm/mapper.py10
-rw-r--r--lib/sqlalchemy/orm/query.py5
2 files changed, 8 insertions, 7 deletions
diff --git a/lib/sqlalchemy/orm/mapper.py b/lib/sqlalchemy/orm/mapper.py
index 1d4ce6bb9..18c4c3acb 100644
--- a/lib/sqlalchemy/orm/mapper.py
+++ b/lib/sqlalchemy/orm/mapper.py
@@ -1200,9 +1200,9 @@ class Mapper(object):
if not context.identity_map.has_key(identitykey):
context.identity_map[identitykey] = instance
isnew = True
- if self.extension.populate_instance(self, context, row, instance, identitykey, isnew) is EXT_PASS:
+ if context.extension.populate_instance(self, context, row, instance, identitykey, isnew) is EXT_PASS:
self.populate_instance(context, instance, row, identitykey, isnew)
- if self.extension.append_result(self, context, row, instance, identitykey, result, isnew) is EXT_PASS:
+ if context.extension.append_result(self, context, row, instance, identitykey, result, isnew) is EXT_PASS:
if result is not None:
result.append(instance)
return instance
@@ -1228,7 +1228,7 @@ class Mapper(object):
return None
# plugin point
- instance = self.extension.create_instance(self, context, row, self.class_)
+ instance = context.extension.create_instance(self, context, row, self.class_)
if instance is EXT_PASS:
instance = self._create_instance(context.session)
else:
@@ -1243,9 +1243,9 @@ class Mapper(object):
# call further mapper properties on the row, to pull further
# instances from the row and possibly populate this item.
- if self.extension.populate_instance(self, context, row, instance, identitykey, isnew) is EXT_PASS:
+ if context.extension.populate_instance(self, context, row, instance, identitykey, isnew) is EXT_PASS:
self.populate_instance(context, instance, row, identitykey, isnew)
- if self.extension.append_result(self, context, row, instance, identitykey, result, isnew) is EXT_PASS:
+ if context.extension.append_result(self, context, row, instance, identitykey, result, isnew) is EXT_PASS:
if result is not None:
result.append(instance)
return instance
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index 4c0a4b1ec..e7b124372 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -323,7 +323,7 @@ class Query(object):
session = self.session
- context = SelectionContext(self.select_mapper, session, with_options=self.with_options, **kwargs)
+ context = SelectionContext(self.select_mapper, session, self.extension, with_options=self.with_options, **kwargs)
result = util.UniqueAppender([])
if mappers:
@@ -525,10 +525,11 @@ class SelectionContext(OperationContext):
to the freshly loaded value
"""
- def __init__(self, mapper, session, **kwargs):
+ def __init__(self, mapper, session, extension, **kwargs):
self.populate_existing = kwargs.pop('populate_existing', False)
self.version_check = kwargs.pop('version_check', False)
self.session = session
+ self.extension = extension
self.identity_map = {}
super(SelectionContext, self).__init__(mapper, kwargs.pop('with_options', []), **kwargs)
def accept_option(self, opt):