diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2023-03-10 21:06:28 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2023-03-10 21:06:28 +0000 |
| commit | e7aabd54c4defe237cecfa80863f0d7fa5a48035 (patch) | |
| tree | db8e99bb10de75c58067a685cac8000446bfe335 /lib/sqlalchemy/engine | |
| parent | 7f4df1625ef06cbfda5ca2db34984fd576506fff (diff) | |
| parent | fd9aa847920b9e4dff61ef7a5555c9fa6e362484 (diff) | |
| download | sqlalchemy-e7aabd54c4defe237cecfa80863f0d7fa5a48035.tar.gz | |
Merge "Fix regression when deserializing python rows into cython" into main
Diffstat (limited to 'lib/sqlalchemy/engine')
| -rw-r--r-- | lib/sqlalchemy/engine/_py_row.py | 5 |
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) |
