Library Version
6.0.3
.NET Runtime
NET 10
OS and Architecture
Windows (64-bit)
How to reproduce?
Create a Parquet file with UUID/Guid columns using Parquet.Net 6.0.3.
I attached sample.parquet generated with Parquet.Net 6.0.3.
The file has UUID columns. The UUID values in the data page appear to be written in standard UUID byte order, but the footer min/max statistics appear to be written using .NET Guid byte order.
Example column: processInstanceId
Actual value in data page:
8ee56673-22f0-4b2c-b2c0-3622ff5cbbbf
Footer statistics value:
7366e58e-f022-2c4b-b2c0-3622ff5cbbbf
So the data value and the min/max statistics do not use the same byte order.
Expected result:
The UUID values and the footer min/max statistics should use the same byte order. UUID min/max statistics should follow the Parquet UUID logical type byte ordering, so readers can safely use row group statistics for predicate pushdown.
sample.zip
Failing test
I do not have a unit test inside the parquet-dotnet test project yet.
The attached sample.parquet reproduces the issue by comparing the UUID value in the data page with the footer min/max statistics.
Library Version
6.0.3
.NET Runtime
NET 10
OS and Architecture
Windows (64-bit)
How to reproduce?
Create a Parquet file with UUID/Guid columns using Parquet.Net 6.0.3.
I attached sample.parquet generated with Parquet.Net 6.0.3.
The file has UUID columns. The UUID values in the data page appear to be written in standard UUID byte order, but the footer min/max statistics appear to be written using .NET Guid byte order.
Example column: processInstanceId
Actual value in data page:
8ee56673-22f0-4b2c-b2c0-3622ff5cbbbf
Footer statistics value:
7366e58e-f022-2c4b-b2c0-3622ff5cbbbf
So the data value and the min/max statistics do not use the same byte order.
Expected result:
The UUID values and the footer min/max statistics should use the same byte order. UUID min/max statistics should follow the Parquet UUID logical type byte ordering, so readers can safely use row group statistics for predicate pushdown.
sample.zip
Failing test