(self, f, protocol_version, user_type_map, result_metadata, column_encryption_policy)
| 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) |
no test coverage detected