diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/orm/persistence.py | 8 | ||||
| -rw-r--r-- | lib/sqlalchemy/sql/sqltypes.py | 1 |
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/persistence.py b/lib/sqlalchemy/orm/persistence.py index 4f1e08afa..a48bf9bf7 100644 --- a/lib/sqlalchemy/orm/persistence.py +++ b/lib/sqlalchemy/orm/persistence.py @@ -1273,8 +1273,14 @@ def _sort_states(states): pending = set(states) persistent = set(s for s in pending if s.key is not None) pending.difference_update(persistent) + try: + persistent_sorted = sorted(persistent, key=lambda q: q.key[1]) + except TypeError as err: + raise sa_exc.InvalidRequestError( + "Could not sort objects by primary key; primary key " + "values must be sortable in Python (was: %s)" % err) return sorted(pending, key=operator.attrgetter("insert_order")) + \ - sorted(persistent, key=lambda q: q.key[1]) + persistent_sorted class BulkUD(object): diff --git a/lib/sqlalchemy/sql/sqltypes.py b/lib/sqlalchemy/sql/sqltypes.py index c02ece98a..573fda98f 100644 --- a/lib/sqlalchemy/sql/sqltypes.py +++ b/lib/sqlalchemy/sql/sqltypes.py @@ -1175,7 +1175,6 @@ class Enum(Emulated, String, SchemaType): two = 2 three = 3 - t = Table( 'data', MetaData(), Column('value', Enum(MyEnum)) |
