- changed status to resolved
Can't pickle metadata with Enum() columns
Issue #1698
resolved
Similar to #1694, but harder to fix. The offender is Enum's second base, SchemaType. Boolean fully overrides _set_table, but Enum sometimes calls up to the parent, and SchemaType._set_table sets two to four bound methods as DDL listeners.
Test:
from sqlalchemy import *
meta = MetaData()
Table('foo',meta,Column('bar',Enum('x','y','z', name="somename")))
from cPickle import dumps
dumps(meta)
throws
File "/usr/lib/python2.6/pickle.py", line 306, in save
rv = reduce(self.proto)
File "/home/taavi/sa/lib/python2.6/copy_reg.py", line 70, in _reduce_ex
raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle instancemethod objects
Comments (2)
-
repo owner -
repo owner - removed milestone
Removing milestone: 0.6.0 (automated comment)
- Log in to comment
c8e8d77fdc0503bd1ac48ba35921745ff61f4cc3