| 2456 | } // namespace detail |
| 2457 | |
| 2458 | std::vector<Encoding::type> SupportedEncodings(Type::type physical_type) { |
| 2459 | switch (physical_type) { |
| 2460 | case Type::BOOLEAN: |
| 2461 | return {Encoding::PLAIN, Encoding::RLE}; |
| 2462 | case Type::INT32: |
| 2463 | case Type::INT64: |
| 2464 | return {Encoding::PLAIN, Encoding::DELTA_BINARY_PACKED, |
| 2465 | Encoding::BYTE_STREAM_SPLIT}; |
| 2466 | case Type::INT96: |
| 2467 | return {Encoding::PLAIN}; |
| 2468 | case Type::FLOAT: |
| 2469 | case Type::DOUBLE: |
| 2470 | return {Encoding::PLAIN, Encoding::BYTE_STREAM_SPLIT}; |
| 2471 | case Type::FIXED_LEN_BYTE_ARRAY: |
| 2472 | return {Encoding::PLAIN, Encoding::BYTE_STREAM_SPLIT, Encoding::DELTA_BYTE_ARRAY}; |
| 2473 | case Type::BYTE_ARRAY: |
| 2474 | return {Encoding::PLAIN, Encoding::DELTA_LENGTH_BYTE_ARRAY, |
| 2475 | Encoding::DELTA_BYTE_ARRAY}; |
| 2476 | default: |
| 2477 | throw ParquetException("Invalid physical type"); |
| 2478 | } |
| 2479 | } |
| 2480 | |
| 2481 | } // namespace parquet |