Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions data/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
| int96_from_spark.parquet | Single column of (deprecated) int96 values that originated as Apache Spark microsecond-resolution timestamps. Some values are outside the range typically representable by 64-bit nanosecond-resolution timestamps. See [int96_from_spark.md](int96_from_spark.md) for details. |
| int96_timestamp_order.parquet | Single `required int96` column written with the `INT96_TIMESTAMP_ORDER` column order ([parquet-format #584](https://github.com/apache/parquet-format/pull/584)). Values are chosen so a byte-wise comparison disagrees with the chronological order, so the min/max statistics (and column index) are only correct for a reader that honors the new order. See [int96_timestamp_order.md](int96_timestamp_order.md) for details. |
| binary_truncated_min_max.parquet | A file containing six columns with exact, fully-truncated and partially-truncated max and min statistics and with the expected is_{min/max}_value_exact. (see [note](Binary-truncated-min-and-max-statistics)).|
| alp_extended.zstd.parquet | FLOAT and DOUBLE columns encoded using Adaptive Lossless floating-Point (ALP). See [note](#alp-encoding) below |

TODO: Document what each file is in the table above.

Expand Down Expand Up @@ -589,3 +590,56 @@ java -jar parquet-cli/target/parquet-cli-1.16.0-SNAPSHOT-runtime.jar cat /home/r
{"utf8_full_truncation": "Julia Roberts", "binary_full_truncation": "Julia Roberts", "utf8_partial_truncation": "Julia Roberts", "binary_partial_truncation": "Julia Roberts", "utf8_no_truncation": "Julia Roberts", "binary_no_truncation": "Julia Roberts"}
{"utf8_full_truncation": "Kevin Bacon", "binary_full_truncation": "Kevin Bacon", "utf8_partial_truncation": "🚀Kevin Bacon", "binary_partial_truncation": "ÿÿ\u0001\u0002", "utf8_no_truncation": "Ke", "binary_no_truncation": "Ke"}
```

## ALP encoding

`alp_extended.zstd.parquet` contains FLOAT and DOUBLE columns encoded with
[Adaptive Lossless floating-Point (ALP)](https://github.com/apache/parquet-format/blob/master/Encodings.md#adaptive-lossless-floating-point-alp--10)
(`ALP = 10` in the parquet.thrift `Encoding` enum).
It was created with the code in this [PR](https://github.com/apache/arrow/pull/49154).

The same values appear in `PLAIN`-encoded reference columns so decoders can
bit-compare the `ALP` columns against known results:

| Column | Encoding | Rationale / coverage |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried to explain both what is in the file, as well as to explain the rationale for including each piece

|-------------------------------------|---------------------------|-----------------------------------------------------------------------------------|
| `float_plain`, `double_plain` | `PLAIN` + zstd | In-file reference: readers can bit-compare the ALP columns against these |
| `float_alp_1024`, `double_alp_1024` | `ALP`, 1024-value vectors | The default vector size of 1024 values |
| `float_alp_4096`, `double_alp_4096` | `ALP`, 4096-value vectors | Readers must honor `log_vector_size` from the page header rather than assume 1024 |
| `float_alp_32`, `double_alp_32` | `ALP`, 32-value vectors | Many vectors per page, stresses the per-vector metadata loop |

All columns contain the same 9000 values. The `ALP` column chunks are
uncompressed; the `PLAIN` reference columns are zstd-compressed to keep the file small.

### Data distribution (9000 rows)

The "base distribution" means random values in [-10.00, 10.00] with exactly 2
decimal digits (e.g. `9.43`), which are losslessly encodable by ALP (no exceptions).

The contents of the 9000 rows are as follows:

| Rows | Contents | Rationale / coverage |
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 0–1023 | base | Happy path: full vector, small frame-of-reference bit width, no exceptions |
| 1024–2047 | base, plus: NaN at 1024 and 2047, NaN at 1500, +Inf at 2000, −Inf at 2001, −0.0 at 2002, subnormal (`5e-324` double / `1e-45` float) at 2003 | NaN / Inf and sign/precision edge values via the exception mechanism; exceptions at exact vector boundaries; statistics conventions (NaN excluded from min/max, ±Inf included, `nan_count`, −0.0/+0.0 normalization) |
| 2048–3071 | base, plus: `3.141592653589793` at 2500 | Exactly one exception: the full-mantissa value cannot round-trip as a decimal, and nothing else in the vector is exceptional |
| 3072–4095 | base, plus: `44974934523.343` at 3100 and `-1243432432.3432` at 3711 | Large-magnitude values |
| 4096–5119 | every 2nd value full-mantissa random, rest base | Many (but not all) exceptions |
| 5120–6143 | all values full-mantissa random | All exceptions |
| 6144–7167 | base but with 4 decimal digits (e.g. `3.1416`) | Different exponent/factor than the other vectors |
| 7168–8191 | constant (all `7.77`) | `bit_width = 0` vectors |
| 8192–8999 | base, with nulls at every 100th row (8 nulls) | Trailing partial vector + null handling |

The file has four row groups:

| Row group | Rows | Contents |
|-----------|-----------|--------------------------------------------------------------------|
| 0 | 0–6143 | Base + all exception cases (6144 rows, 1546 exceptions per column) |
| 1 | 6144–7167 | 4-decimal-digit values (different exponent/factor) |
| 2 | 7168–8191 | Constant `7.77` (`bit_width = 0`) |
| 3 | 8192–8999 | Partial trailing vector with 8 nulls |

To check conformance of an `ALP` decoder, read each `ALP`-encoded column and
compare the decoded values against the values from the corresponding
`PLAIN`-encoded column. The values should be bit-exact, including NaN and
`-0.0`.
Binary file added data/alp_extended.zstd.parquet

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can verify this a bit with standard tools. For example, using the tools from the Rust implementation in apache/arrow-rs#9372

andrewlamb@Andrews-MacBook-Pro-3:~/Software/parquet-testing$ ~/Software/arrow-rs/target/release/parquet-schema data/alp_extended.zstd.parquet
Metadata for file: data/alp_extended.zstd.parquet

version: 2
num of rows: 9000
created by: parquet-cpp-arrow version 23.0.0-SNAPSHOT
message schema {
  OPTIONAL FLOAT float_plain;
  OPTIONAL DOUBLE double_plain;
  OPTIONAL FLOAT float_alp_1024;
  OPTIONAL DOUBLE double_alp_1024;
  OPTIONAL FLOAT float_alp_4096;
  OPTIONAL DOUBLE double_alp_4096;
  OPTIONAL FLOAT float_alp_32;
  OPTIONAL DOUBLE double_alp_32;
}

@alamb alamb Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The layout:

andrewlamb@Andrews-MacBook-Pro-3:~/Software/parquet-testing$ ~/Software/arrow-rs/target/release/parquet-layout data/alp_extended.zstd.parquet
Details
{
  "row_groups": [
    {
      "columns": [
        {
          "path": "float_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211391,
            "length": 12
          },
          "column_index": {
            "offset": 210367,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "double_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211403,
            "length": 14
          },
          "column_index": {
            "offset": 210395,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "float_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211417,
            "length": 14
          },
          "column_index": {
            "offset": 210431,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211431,
            "length": 14
          },
          "column_index": {
            "offset": 210459,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211445,
            "length": 14
          },
          "column_index": {
            "offset": 210495,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211459,
            "length": 14
          },
          "column_index": {
            "offset": 210523,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211473,
            "length": 14
          },
          "column_index": {
            "offset": 210559,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211487,
            "length": 14
          },
          "column_index": {
            "offset": 210587,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        }
      ],
      "row_count": 6144
    },
    {
      "columns": [
        {
          "path": "float_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211501,
            "length": 13
          },
          "column_index": {
            "offset": 210623,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "double_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211514,
            "length": 13
          },
          "column_index": {
            "offset": 210651,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "float_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211527,
            "length": 13
          },
          "column_index": {
            "offset": 210687,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211540,
            "length": 13
          },
          "column_index": {
            "offset": 210715,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211553,
            "length": 13
          },
          "column_index": {
            "offset": 210751,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211566,
            "length": 13
          },
          "column_index": {
            "offset": 210779,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211579,
            "length": 13
          },
          "column_index": {
            "offset": 210815,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211592,
            "length": 13
          },
          "column_index": {
            "offset": 210843,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        }
      ],
      "row_count": 1024
    },
    {
      "columns": [
        {
          "path": "float_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211605,
            "length": 12
          },
          "column_index": {
            "offset": 210879,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "double_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211617,
            "length": 12
          },
          "column_index": {
            "offset": 210907,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "float_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211629,
            "length": 12
          },
          "column_index": {
            "offset": 210943,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211641,
            "length": 12
          },
          "column_index": {
            "offset": 210971,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211653,
            "length": 12
          },
          "column_index": {
            "offset": 211007,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211665,
            "length": 12
          },
          "column_index": {
            "offset": 211035,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211677,
            "length": 13
          },
          "column_index": {
            "offset": 211071,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211690,
            "length": 13
          },
          "column_index": {
            "offset": 211099,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        }
      ],
      "row_count": 1024
    },
    {
      "columns": [
        {
          "path": "float_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211703,
            "length": 13
          },
          "column_index": {
            "offset": 211135,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "double_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211716,
            "length": 13
          },
          "column_index": {
            "offset": 211163,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "float_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211729,
            "length": 13
          },
          "column_index": {
            "offset": 211199,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211742,
            "length": 13
          },
          "column_index": {
            "offset": 211227,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211755,
            "length": 13
          },
          "column_index": {
            "offset": 211263,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211768,
            "length": 13
          },
          "column_index": {
            "offset": 211291,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211781,
            "length": 13
          },
          "column_index": {
            "offset": 211327,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 211794,
            "length": 13
          },
          "column_index": {
            "offset": 211355,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        }
      ],
      "row_count": 808
    }
  ],
  "footer": {
    "metadata_size": 3866
  }
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated layout

Details

{
  "row_groups": [
    {
      "columns": [
        {
          "path": "float_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213725,
            "length": 12
          },
          "column_index": {
            "offset": 212453,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "double_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213737,
            "length": 14
          },
          "column_index": {
            "offset": 212481,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "float_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213751,
            "length": 14
          },
          "column_index": {
            "offset": 212517,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213765,
            "length": 14
          },
          "column_index": {
            "offset": 212545,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213779,
            "length": 14
          },
          "column_index": {
            "offset": 212581,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213793,
            "length": 14
          },
          "column_index": {
            "offset": 212609,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213807,
            "length": 14
          },
          "column_index": {
            "offset": 212645,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213821,
            "length": 14
          },
          "column_index": {
            "offset": 212673,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        }
      ],
      "row_count": 6144
    },
    {
      "columns": [
        {
          "path": "float_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213835,
            "length": 13
          },
          "column_index": {
            "offset": 212709,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "double_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213848,
            "length": 13
          },
          "column_index": {
            "offset": 212737,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "float_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213861,
            "length": 13
          },
          "column_index": {
            "offset": 212773,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213874,
            "length": 13
          },
          "column_index": {
            "offset": 212801,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213887,
            "length": 13
          },
          "column_index": {
            "offset": 212837,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213900,
            "length": 13
          },
          "column_index": {
            "offset": 212865,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213913,
            "length": 13
          },
          "column_index": {
            "offset": 212901,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213926,
            "length": 13
          },
          "column_index": {
            "offset": 212929,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        }
      ],
      "row_count": 1024
    },
    {
      "columns": [
        {
          "path": "float_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213939,
            "length": 12
          },
          "column_index": {
            "offset": 212965,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "double_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213951,
            "length": 12
          },
          "column_index": {
            "offset": 212993,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "float_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213963,
            "length": 12
          },
          "column_index": {
            "offset": 213029,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213975,
            "length": 12
          },
          "column_index": {
            "offset": 213057,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213987,
            "length": 12
          },
          "column_index": {
            "offset": 213093,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 213999,
            "length": 12
          },
          "column_index": {
            "offset": 213121,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214011,
            "length": 13
          },
          "column_index": {
            "offset": 213157,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214024,
            "length": 13
          },
          "column_index": {
            "offset": 213185,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        }
      ],
      "row_count": 1024
    },
    {
      "columns": [
        {
          "path": "float_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214037,
            "length": 13
          },
          "column_index": {
            "offset": 213221,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "double_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214050,
            "length": 13
          },
          "column_index": {
            "offset": 213249,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "float_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214063,
            "length": 13
          },
          "column_index": {
            "offset": 213285,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214076,
            "length": 13
          },
          "column_index": {
            "offset": 213313,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214089,
            "length": 13
          },
          "column_index": {
            "offset": 213349,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214102,
            "length": 13
          },
          "column_index": {
            "offset": 213377,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214115,
            "length": 13
          },
          "column_index": {
            "offset": 213413,
            "length": 28
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214128,
            "length": 13
          },
          "column_index": {
            "offset": 213441,
            "length": 36
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        }
      ],
      "row_count": 808
    },
    {
      "columns": [
        {
          "path": "float_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214141,
            "length": 13
          },
          "column_index": {
            "offset": 213477,
            "length": 27
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "double_plain",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214154,
            "length": 13
          },
          "column_index": {
            "offset": 213504,
            "length": 35
          },
          "bloom_filter": null,
          "compression": "ZSTD",
          "encodings": [
            "PLAIN",
            "RLE"
          ]
        },
        {
          "path": "float_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214167,
            "length": 13
          },
          "column_index": {
            "offset": 213539,
            "length": 27
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_1024",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214180,
            "length": 13
          },
          "column_index": {
            "offset": 213566,
            "length": 35
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214193,
            "length": 13
          },
          "column_index": {
            "offset": 213601,
            "length": 27
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_4096",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214206,
            "length": 13
          },
          "column_index": {
            "offset": 213628,
            "length": 35
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "float_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214219,
            "length": 13
          },
          "column_index": {
            "offset": 213663,
            "length": 27
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        },
        {
          "path": "double_alp_32",
          "has_offset_index": true,
          "has_column_index": true,
          "has_bloom_filter": false,
          "offset_index": {
            "offset": 214232,
            "length": 13
          },
          "column_index": {
            "offset": 213690,
            "length": 35
          },
          "bloom_filter": null,
          "compression": "UNCOMPRESSED",
          "encodings": [
            "RLE",
            "ALP"
          ]
        }
      ],
      "row_count": 32
    }
  ],
  "footer": {
    "metadata_size": 4747
  }
}

Binary file not shown.