summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/orm')
-rw-r--r--lib/sqlalchemy/orm/unitofwork.py7
-rw-r--r--lib/sqlalchemy/orm/uowdumper.py8
2 files changed, 10 insertions, 5 deletions
diff --git a/lib/sqlalchemy/orm/unitofwork.py b/lib/sqlalchemy/orm/unitofwork.py
index 7fdcaeba2..7a12d554d 100644
--- a/lib/sqlalchemy/orm/unitofwork.py
+++ b/lib/sqlalchemy/orm/unitofwork.py
@@ -21,6 +21,7 @@ changes at once.
from sqlalchemy import util, logging, topological
from sqlalchemy.orm import attributes
+from sqlalchemy.orm import util as mapperutil
from sqlalchemy.orm.mapper import object_mapper, class_mapper
from sqlalchemy.exceptions import *
import StringIO
@@ -249,12 +250,18 @@ class UOWTransaction(object):
save/delete registration is entered for the object.
"""
+
#print "REGISTER", repr(obj), repr(getattr(obj, '_instance_key', None)), str(isdelete), str(listonly)
# if object is not in the overall session, do nothing
if not self.uow._is_valid(obj):
+ if logging.is_debug_enabled(self.logger):
+ self.logger.debug("object %s not part of session, not registering for flush" % (mapperutil.instance_str(obj)))
return
+ if logging.is_debug_enabled(self.logger):
+ self.logger.debug("register object for flush: %s isdelete=%s listonly=%s postupdate=%s" % (mapperutil.instance_str(obj), isdelete, listonly, postupdate))
+
mapper = object_mapper(obj)
self.mappers.add(mapper)
task = self.get_task_by_mapper(mapper)
diff --git a/lib/sqlalchemy/orm/uowdumper.py b/lib/sqlalchemy/orm/uowdumper.py
index 166e3b879..3e691f5a7 100644
--- a/lib/sqlalchemy/orm/uowdumper.py
+++ b/lib/sqlalchemy/orm/uowdumper.py
@@ -1,4 +1,5 @@
from sqlalchemy.orm import unitofwork
+from sqlalchemy.orm import util as mapperutil
"""Dumps out a string representation of a UOWTask structure"""
@@ -162,9 +163,9 @@ class UOWDumper(unitofwork.UOWExecutor):
objid = "(placeholder)"
else:
if attribute is not None:
- objid = "%s(%s).%s" % (te.obj.__class__.__name__, hex(id(te.obj)), attribute)
+ objid = "%s.%s" % (mapperutil.instance_str(te.obj), attribute)
else:
- objid = "%s(%s)" % (te.obj.__class__.__name__, hex(id(te.obj)))
+ objid = mapperutil.instance_str(te.obj)
if self.verbose:
return "%s (UOWTaskElement(%s, %s))" % (objid, hex(id(te)), (te.listonly and 'listonly' or (te.isdelete and 'delete' or 'save')))
elif process:
@@ -191,8 +192,5 @@ class UOWDumper(unitofwork.UOWExecutor):
else:
return '(none)'
- def _repr(self, obj):
- return "%s(%s)" % (obj.__class__.__name__, hex(id(obj)))
-
def _indent(self):
return " |" * self.indent