summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/sqlalchemy/orm/persistence.py8
-rw-r--r--lib/sqlalchemy/sql/sqltypes.py1
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))