| 221 | bool buffered() const override { return buffered_row_group_; } |
| 222 | |
| 223 | void Close() override { |
| 224 | if (!closed_) { |
| 225 | closed_ = true; |
| 226 | CheckRowsWritten(); |
| 227 | |
| 228 | // Avoid invalid state if ColumnWriter::Close() throws internally. |
| 229 | auto column_writers = std::move(column_writers_); |
| 230 | for (size_t i = 0; i < column_writers.size(); i++) { |
| 231 | if (column_writers[i]) { |
| 232 | total_bytes_written_ += column_writers[i]->Close(); |
| 233 | total_compressed_bytes_written_ += |
| 234 | column_writers[i]->total_compressed_bytes_written(); |
| 235 | } |
| 236 | } |
| 237 | |
| 238 | // Ensures all columns have been written |
| 239 | metadata_->set_num_rows(num_rows_); |
| 240 | metadata_->Finish(total_bytes_written_, row_group_ordinal_); |
| 241 | } |
| 242 | } |
| 243 | |
| 244 | private: |
| 245 | std::shared_ptr<ArrowOutputStream> sink_; |
nothing calls this directly
no test coverage detected