| 23 | namespace impala { |
| 24 | |
| 25 | Status OutboundRowBatch::PrepareForSend(int num_tuples_per_row, |
| 26 | TrackedString* compression_scratch, bool used_append_row) { |
| 27 | if (used_append_row) { |
| 28 | DCHECK_GE(tuple_data_.size(), tuple_data_offset_); |
| 29 | tuple_data_.resize(tuple_data_offset_); |
| 30 | } else { |
| 31 | DCHECK_EQ(tuple_data_offset_, 0); |
| 32 | } |
| 33 | bool is_compressed = false; |
| 34 | int64_t uncompressed_size = tuple_data_.size(); |
| 35 | if (uncompressed_size > 0 && compression_scratch != nullptr) { |
| 36 | RETURN_IF_ERROR(TryCompress(compression_scratch, &is_compressed)); |
| 37 | } |
| 38 | int num_tuples = tuple_offsets_.size(); |
| 39 | DCHECK_EQ(num_tuples % num_tuples_per_row, 0); |
| 40 | int num_rows = num_tuples / num_tuples_per_row; |
| 41 | SetHeader(num_rows, num_tuples_per_row, uncompressed_size, is_compressed); |
| 42 | return Status::OK(); |
| 43 | } |
| 44 | |
| 45 | Status OutboundRowBatch::TryCompress(TrackedString* compression_scratch, |
| 46 | bool* is_compressed) { |
no test coverage detected