summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/_py_row.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/engine/_py_row.py')
-rw-r--r--lib/sqlalchemy/engine/_py_row.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/_py_row.py b/lib/sqlalchemy/engine/_py_row.py
index 7cbac552f..1b952fe4c 100644
--- a/lib/sqlalchemy/engine/_py_row.py
+++ b/lib/sqlalchemy/engine/_py_row.py
@@ -24,7 +24,7 @@ if typing.TYPE_CHECKING:
MD_INDEX = 0 # integer index in cursor.description
-class _KeyStyle(enum.Enum):
+class _KeyStyle(enum.IntEnum):
KEY_INTEGER_ONLY = 0
"""__getitem__ only allows integer values and slices, raises TypeError
otherwise"""
@@ -121,6 +121,9 @@ class BaseRow:
mdindex = rec[MD_INDEX]
if mdindex is None:
self._parent._raise_for_ambiguous_column_name(rec)
+ # NOTE: keep "== KEY_OBJECTS_ONLY" instead of "is KEY_OBJECTS_ONLY"
+ # since deserializing the class from cython will load an int in
+ # _key_style, not an instance of _KeyStyle
elif self._key_style == KEY_OBJECTS_ONLY and isinstance(key, int):
raise KeyError(key)