Skip to content

Commit 9a4d0b2

Browse files
committed
Fix OrderedMapSerializedKey initialization in deserializers
OrderedMapSerializedKey now takes a single cass_type_instance argument instead of (cass_type, protocol_version). Updated the Cython deserializer to instantiate the key_type with protocol_version before passing it. This fixes the "map<varchar, varchar>: __init__() takes exactly 2 positional arguments (3 given)" error.
1 parent 02dd692 commit 9a4d0b2

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

cassandra/deserializers.pyx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -281,14 +281,14 @@ cdef class DesMapType(_DesParameterizedType):
281281
result = _deserialize_map(
282282
buf,
283283
self.key_deserializer, self.val_deserializer,
284-
key_type, val_type)
284+
key_type(self.key_deserializer.protocol_version), val_type)
285285

286286
return result
287287

288288

289289
cdef _deserialize_map(Buffer *buf,
290290
Deserializer key_deserializer, Deserializer val_deserializer,
291-
key_type, val_type):
291+
key_type_instance, val_type):
292292
cdef Buffer key_buf, val_buf
293293
cdef Buffer itemlen_buf
294294

@@ -298,7 +298,7 @@ cdef _deserialize_map(Buffer *buf,
298298

299299
_unpack_len(buf, 0, &numelements)
300300
offset = sizeof(int32_t)
301-
themap = util.OrderedMapSerializedKey(key_type, key_deserializer.protocol_version)
301+
themap = util.OrderedMapSerializedKey(key_type_instance)
302302
for _ in range(numelements):
303303
subelem(buf, &key_buf, &offset)
304304
subelem(buf, &val_buf, &offset)

0 commit comments

Comments
 (0)