Skip to content

[BUG]: Guid/UUID min/max statistics appear to use .NET Guid byte order #758

Description

@jorgelfons

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions