diff options
Diffstat (limited to 'lib/sqlalchemy/orm')
| -rw-r--r-- | lib/sqlalchemy/orm/unitofwork.py | 7 | ||||
| -rw-r--r-- | lib/sqlalchemy/orm/uowdumper.py | 8 |
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 |
