| 2486 | } // namespace detail |
| 2487 | |
| 2488 | std::vector<Encoding::type> SupportedEncodings(Type::type physical_type) { |
| 2489 | switch (physical_type) { |
| 2490 | case Type::BOOLEAN: |
| 2491 | return {Encoding::PLAIN, Encoding::RLE}; |
| 2492 | case Type::INT32: |
| 2493 | case Type::INT64: |
| 2494 | return {Encoding::PLAIN, Encoding::DELTA_BINARY_PACKED, |
| 2495 | Encoding::BYTE_STREAM_SPLIT}; |
| 2496 | case Type::INT96: |
| 2497 | return {Encoding::PLAIN}; |
| 2498 | case Type::FLOAT: |
| 2499 | case Type::DOUBLE: |
| 2500 | return {Encoding::PLAIN, Encoding::BYTE_STREAM_SPLIT}; |
| 2501 | case Type::FIXED_LEN_BYTE_ARRAY: |
| 2502 | return {Encoding::PLAIN, Encoding::BYTE_STREAM_SPLIT, Encoding::DELTA_BYTE_ARRAY}; |
| 2503 | case Type::BYTE_ARRAY: |
| 2504 | return {Encoding::PLAIN, Encoding::DELTA_LENGTH_BYTE_ARRAY, |
| 2505 | Encoding::DELTA_BYTE_ARRAY}; |
| 2506 | default: |
| 2507 | throw ParquetException("Invalid physical type"); |
| 2508 | } |
| 2509 | } |
| 2510 | |
| 2511 | } // namespace parquet |