]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
Add explicit copy() to Enum
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 17 Oct 2016 04:22:38 +0000 (00:22 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 17 Oct 2016 16:13:01 +0000 (12:13 -0400)
commit8ef4f6a53864ce9c57c4879d6b2aa0f81ddbf596
tree69575ef2f444ca2c9818956a6b0c561c0c55a6d0
parentc02675b407b8326643b559770d6d9686b880c113
Add explicit copy() to Enum

The Boolean and Enum types both place SchemaType second in the
inheritance hierarchy.  In the case of Enum, this works
out that the copy() method is called from the base TypeEngine
which fails to transfer _create_events.   The test suite
doesn't seem to work with the inhertance hierarchy set up like
this as the event listeners don't work out, the _on_metadata_create
and _on_table_create hooks cause the production of an adapted type
which then adds event listeners that cause deque changed while
iteration.  It's not clear why Enum /Boolean don't have this problem.
But in any case it seems like the class mechanics for these types
remains fragile and would benefit from yet another refactor someday.

Change-Id: Ib641a5d2321b00f58bbe98dd0c5e789374db32b2
Fixes: #3827
doc/build/changelog/changelog_11.rst
lib/sqlalchemy/sql/sqltypes.py
test/sql/test_metadata.py