| 564 | } |
| 565 | |
| 566 | void PutIndices(const ::arrow::Array& data) override { |
| 567 | switch (data.type()->id()) { |
| 568 | case ::arrow::Type::UINT8: |
| 569 | case ::arrow::Type::INT8: |
| 570 | return PutIndicesTyped<::arrow::UInt8Type>(data); |
| 571 | case ::arrow::Type::UINT16: |
| 572 | case ::arrow::Type::INT16: |
| 573 | return PutIndicesTyped<::arrow::UInt16Type>(data); |
| 574 | case ::arrow::Type::UINT32: |
| 575 | case ::arrow::Type::INT32: |
| 576 | return PutIndicesTyped<::arrow::UInt32Type>(data); |
| 577 | case ::arrow::Type::UINT64: |
| 578 | case ::arrow::Type::INT64: |
| 579 | return PutIndicesTyped<::arrow::UInt64Type>(data); |
| 580 | default: |
| 581 | throw ParquetException("Passed non-integer array to PutIndices"); |
| 582 | } |
| 583 | } |
| 584 | |
| 585 | std::shared_ptr<Buffer> FlushValues() override { |
| 586 | const int64_t buffer_size = EstimatedDataEncodedSize(); |