From: Mike Bayer Date: Tue, 29 Jul 2014 17:32:05 +0000 (-0400) Subject: - Fixed 0.9.7 regression caused by :ticket:`3067` in conjunction with X-Git-Tag: rel_1_0_0b1~265 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=405c223ae50e78dacac08783c414619db20df0b7;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Fixed 0.9.7 regression caused by :ticket:`3067` in conjunction with a mis-named unit test such that so-called "schema" types like :class:`.Boolean` and :class:`.Enum` could no longer be pickled. fixes #3144 --- diff --git a/doc/build/changelog/changelog_09.rst b/doc/build/changelog/changelog_09.rst index 9d5614d683..c63ed7fbb0 100644 --- a/doc/build/changelog/changelog_09.rst +++ b/doc/build/changelog/changelog_09.rst @@ -13,6 +13,15 @@ .. changelog:: :version: 0.9.8 + .. change:: + :tags: bug, sql + :versions: 1.0.0 + :tickets: 3144, 3067 + + Fixed 0.9.7 regression caused by :ticket:`3067` in conjunction with + a mis-named unit test such that so-called "schema" types like + :class:`.Boolean` and :class:`.Enum` could no longer be pickled. + .. change:: :tags: bug, postgresql :versions: 1.0.0 diff --git a/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py index 6114460dc3..6cbf583cc4 100644 --- a/lib/sqlalchemy/sql/elements.py +++ b/lib/sqlalchemy/sql/elements.py @@ -3276,6 +3276,9 @@ class _defer_name(_truncated_label): else: return super(_defer_name, cls).__new__(cls, value) + def __reduce__(self): + return self.__class__, (util.text_type(self), ) + class _defer_none_name(_defer_name): """indicate a 'deferred' name that was ultimately the value None.""" diff --git a/test/sql/test_types.py b/test/sql/test_types.py index 03d399763c..efa0f90ae8 100644 --- a/test/sql/test_types.py +++ b/test/sql/test_types.py @@ -234,9 +234,9 @@ class TypeAffinityTest(fixtures.TestBase): assert t1.dialect_impl(d)._type_affinity is postgresql.UUID -class PickleMetadataTest(fixtures.TestBase): +class PickleTypesTest(fixtures.TestBase): - def testmeta(self): + def test_pickle_types(self): for loads, dumps in picklers(): column_types = [ Column('Boo', Boolean()),