Skip to content

Commit 02dd692

Browse files
committed
Fix recv_results_rows signature mismatch
The Cython implementation in row_parser.pyx expects recv_results_rows() to take protocol_version as a parameter. Updated both the call site and method signature in protocol.py to match. This fixes the "recv_results_rows() takes exactly 6 positional arguments (5 given)" error that was causing authentication and cluster test failures.
1 parent 219f266 commit 02dd692

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

cassandra/protocol.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -688,7 +688,7 @@ def recv(self, f, protocol_features, user_type_map, result_metadata, column_encr
688688
if self.kind == RESULT_KIND_VOID:
689689
return
690690
elif self.kind == RESULT_KIND_ROWS:
691-
self.recv_results_rows(f, user_type_map, result_metadata, column_encryption_policy)
691+
self.recv_results_rows(f, self.protocol_version, user_type_map, result_metadata, column_encryption_policy)
692692
elif self.kind == RESULT_KIND_SET_KEYSPACE:
693693
self.new_keyspace = read_string(f)
694694
elif self.kind == RESULT_KIND_PREPARED:
@@ -706,7 +706,7 @@ def recv_body(cls, f, protocol_version, protocol_features, user_type_map, result
706706
msg.recv(f, protocol_features, user_type_map, result_metadata, column_encryption_policy)
707707
return msg
708708

709-
def recv_results_rows(self, f, user_type_map, result_metadata, column_encryption_policy):
709+
def recv_results_rows(self, f, protocol_version, user_type_map, result_metadata, column_encryption_policy):
710710
self.recv_results_metadata(f, user_type_map)
711711
column_metadata = self.column_metadata or result_metadata
712712
rowcount = read_int(f)
@@ -719,7 +719,7 @@ def decode_val(val, col_md, col_desc):
719719
uses_ce = column_encryption_policy and column_encryption_policy.contains_column(col_desc)
720720
col_type = column_encryption_policy.column_type(col_desc) if uses_ce else col_md[3]
721721
raw_bytes = column_encryption_policy.decrypt(col_desc, val) if uses_ce else val
722-
return col_type(self.protocol_version).from_binary(raw_bytes)
722+
return col_type(protocol_version).from_binary(raw_bytes)
723723

724724
def decode_row(row):
725725
return tuple(decode_val(val, col_md, col_desc) for val, col_md, col_desc in zip(row, column_metadata, col_descs))

0 commit comments

Comments
 (0)