Simply UserType deserialization in cqltypes.py
This commit is contained in:
@@ -943,27 +943,7 @@ class UserType(TupleType):
|
||||
|
||||
@classmethod
|
||||
def deserialize_safe(cls, byts, protocol_version):
|
||||
proto_version = max(3, protocol_version)
|
||||
p = 0
|
||||
values = []
|
||||
for col_type in cls.subtypes:
|
||||
if p == len(byts):
|
||||
break
|
||||
itemlen = int32_unpack(byts[p:p + 4])
|
||||
p += 4
|
||||
if itemlen >= 0:
|
||||
item = byts[p:p + itemlen]
|
||||
p += itemlen
|
||||
else:
|
||||
item = None
|
||||
# collections inside UDTs are always encoded with at least the
|
||||
# version 3 format
|
||||
values.append(col_type.from_binary(item, proto_version))
|
||||
|
||||
if len(values) < len(cls.subtypes):
|
||||
nones = [None] * (len(cls.subtypes) - len(values))
|
||||
values = values + nones
|
||||
|
||||
values = super(UserType, cls).deserialize_safe(byts, protocol_version)
|
||||
if cls.mapped_class:
|
||||
return cls.mapped_class(**dict(zip(cls.fieldnames, values)))
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user