blob: ca1809bb832daf0fd694c995a90c67d6809f8adf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
From 405c223ae50e78dacac08783c414619db20df0b7 Mon Sep 17 00:00:00 2001
From: Mike Bayer <mike_mp@zzzcomputing.com>
Date: Tue, 29 Jul 2014 13:32:05 -0400
Subject: [PATCH] - 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/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py
index 6114460..6cbf583 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 03d3997..efa0f90 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()),
|