MCPcopy Create free account
hub / github.com/apache/cassandra-python-driver / recv_results_rows

Method recv_results_rows

cassandra/protocol.py:743–771  ·  view source on GitHub ↗
(self, f, protocol_version, user_type_map, result_metadata, column_encryption_policy)

Source from the content-addressed store, hash-verified

741 return msg
742
743 def recv_results_rows(self, f, protocol_version, user_type_map, result_metadata, column_encryption_policy):
744 self.recv_results_metadata(f, user_type_map)
745 column_metadata = self.column_metadata or result_metadata
746 rowcount = read_int(f)
747 rows = [self.recv_row(f, len(column_metadata)) for _ in range(rowcount)]
748 self.column_names = [c[2] for c in column_metadata]
749 self.column_types = [c[3] for c in column_metadata]
750 col_descs = [ColDesc(md[0], md[1], md[2]) for md in column_metadata]
751
752 def decode_val(val, col_md, col_desc):
753 uses_ce = column_encryption_policy and column_encryption_policy.contains_column(col_desc)
754 col_type = column_encryption_policy.column_type(col_desc) if uses_ce else col_md[3]
755 raw_bytes = column_encryption_policy.decrypt(col_desc, val) if uses_ce else val
756 return col_type.from_binary(raw_bytes, protocol_version)
757
758 def decode_row(row):
759 return tuple(decode_val(val, col_md, col_desc) for val, col_md, col_desc in zip(row, column_metadata, col_descs))
760
761 try:
762 self.parsed_rows = [decode_row(row) for row in rows]
763 except Exception:
764 for row in rows:
765 for val, col_md, col_desc in zip(row, column_metadata, col_descs):
766 try:
767 decode_val(val, col_md, col_desc)
768 except Exception as e:
769 raise DriverException('Failed decoding result column "%s" of type %s: %s' % (col_md[2],
770 col_md[3].cql_parameterized_type(),
771 str(e)))
772
773 def recv_results_prepared(self, f, protocol_version, user_type_map):
774 self.query_id = read_binary_string(f)

Callers 1

recvMethod · 0.95

Calls 5

recv_results_metadataMethod · 0.95
recv_rowMethod · 0.95
DriverExceptionClass · 0.90
read_intFunction · 0.85

Tested by

no test coverage detected