Author: phd
Date: Sun May 26 09:52:50 2013
New Revision: 4603
Log:
Merged revisions 4601, 4602 from branch 1.3: fixed bugs in (un)pickling
Modified:
SQLObject/branches/1.4/docs/Authors.txt
SQLObject/branches/1.4/docs/News.txt
SQLObject/branches/1.4/sqlobject/main.py
SQLObject/branches/1.4/sqlobject/tests/test_pickle.py
Modified: SQLObject/branches/1.4/docs/Authors.txt
==============================================================================
--- SQLObject/branches/1.4/docs/Authors.txt Sun May 26 09:08:50 2013 (r4602)
+++ SQLObject/branches/1.4/docs/Authors.txt Sun May 26 09:52:50 2013 (r4603)
@@ -28,6 +28,7 @@
* Petr Jakes <petr.jakes at tpc.cz>
* Ken Lalonde
* Andrew Ziem <ahz001 at gmail.com>
+* Andrew Trusty <atrusty at gatech.edu>
* Oleg Broytman <ph...@ph...>
.. image:: http://sflogo.sourceforge.net/sflogo.php?group_id=74338&type=10
Modified: SQLObject/branches/1.4/docs/News.txt
==============================================================================
--- SQLObject/branches/1.4/docs/News.txt Sun May 26 09:08:50 2013 (r4602)
+++ SQLObject/branches/1.4/docs/News.txt Sun May 26 09:52:50 2013 (r4603)
@@ -7,8 +7,12 @@
.. _start:
-SQLObject (trunk)
-=================
+SQLObject 1.4.1
+===============
+
+Released 26 May 2013.
+
+* A few bugfixes were ported from `SQLObject 1.3.3`_.
SQLObject 1.4.0
===============
@@ -29,6 +33,14 @@
* NCHAR/NVARCHAR and N''-quoted strings for MS SQL.
+SQLObject 1.3.3
+===============
+
+Released 26 May 2013.
+
+* Fixed bugs in pickling and unpickling (remove/restore a weak proxy to self,
+ fixed cache handling).
+
SQLObject 1.3.2
===============
Modified: SQLObject/branches/1.4/sqlobject/main.py
==============================================================================
--- SQLObject/branches/1.4/sqlobject/main.py Sun May 26 09:08:50 2013 (r4602)
+++ SQLObject/branches/1.4/sqlobject/main.py Sun May 26 09:52:50 2013 (r4603)
@@ -1676,21 +1676,27 @@
if self.sqlmeta._perConnection:
from pickle import PicklingError
raise PicklingError('Cannot pickle an SQLObject instance that has a per-instance connection')
+ if self.sqlmeta.lazyUpdate and self._SO_createValues:
+ self.syncUpdate()
d = self.__dict__.copy()
del d['sqlmeta']
+ del d['_SO_validatorState']
del d['_SO_writeLock']
+ del d['_SO_createValues']
return d
def __setstate__(self, d):
self.__init__(_SO_fetch_no_create=1)
+ self._SO_validatorState = sqlbuilder.SQLObjectState(self)
self._SO_writeLock = threading.Lock()
+ self._SO_createValues = {}
self.__dict__.update(d)
cls = self.__class__
cache = self._connection.cache
if cache.tryGet(self.id, cls) is not None:
raise ValueError(
"Cannot unpickle %s row with id=%s - a different instance with the id already exists in the cache" % (cls.__name__, self.id))
- cache.created(id, cls, self)
+ cache.created(self.id, cls, self)
def setterName(name):
Modified: SQLObject/branches/1.4/sqlobject/tests/test_pickle.py
==============================================================================
--- SQLObject/branches/1.4/sqlobject/tests/test_pickle.py Sun May 26 09:08:50 2013 (r4602)
+++ SQLObject/branches/1.4/sqlobject/tests/test_pickle.py Sun May 26 09:52:50 2013 (r4603)
@@ -21,7 +21,9 @@
pickle_data = pickle.dumps(test, pickle.HIGHEST_PROTOCOL)
connection.cache.clear()
test = pickle.loads(pickle_data)
+ test2 = connection.cache.tryGet(test.id, TestPickle)
+ assert test2 is test
assert test.question == test_question
assert test.answer == test_answer
|