Thread: [SQL-CVS] r4531 - in SQLObject/trunk: docs sqlobject
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <sub...@co...> - 2012-05-25 16:32:20
|
Author: phd Date: Fri May 25 10:32:14 2012 New Revision: 4531 Log: Merged revision 4530 from branch 1.3: fixed a bug in unpickling. Modified: SQLObject/trunk/docs/News.txt SQLObject/trunk/sqlobject/main.py Modified: SQLObject/trunk/docs/News.txt ============================================================================== --- SQLObject/trunk/docs/News.txt Fri May 25 10:30:57 2012 (r4530) +++ SQLObject/trunk/docs/News.txt Fri May 25 10:32:14 2012 (r4531) @@ -13,7 +13,7 @@ SQLObject 1.3.1 =============== -* A bugfix was ported from `SQLObject 1.2.3`_. +* Two bugfixes were ported from `SQLObject 1.2.3`_. SQLObject 1.3.0 =============== @@ -34,7 +34,9 @@ =============== * Fixed a minor bug in PostgreSQL introspection: VIEWs don't have - PRIMARY KEYs - use sqlmeta.idName as the key if there is no one. + PRIMARY KEYs - use sqlmeta.idName as the key. + +* Fixed a bug in cache handling while unpickling. SQLObject 1.2.2 =============== Modified: SQLObject/trunk/sqlobject/main.py ============================================================================== --- SQLObject/trunk/sqlobject/main.py Fri May 25 10:30:57 2012 (r4530) +++ SQLObject/trunk/sqlobject/main.py Fri May 25 10:32:14 2012 (r4531) @@ -1670,6 +1670,8 @@ return NotImplemented + # (De)serialization (pickle, etc.) + def __getstate__(self): if self.sqlmeta._perConnection: from pickle import PicklingError @@ -1680,10 +1682,16 @@ return d def __setstate__(self, d): + id = d['id'] + cls = self.__class__ + cache = self._connection.cache + if cache.get(id, cls) is not None: + raise ValueError( + "Cannot unpickle %s row with id=%s - the id already exists in the cache" % (cls.__name__, id)) self.__init__(_SO_fetch_no_create=1) self._SO_writeLock = threading.Lock() self.__dict__.update(d) - self.__class__._connection.cache.put(self.id, self.__class__, self) + cache.created(id, cls, self) def setterName(name): |