From 0a701edc4b5585401aeaca1238e8e1fa2834dad8 Mon Sep 17 00:00:00 2001 From: Rahul Sharma Date: Wed, 25 Jun 2025 12:05:32 +0200 Subject: [PATCH 1/3] Define ordering for int96 timestamp --- src/main/thrift/parquet.thrift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/thrift/parquet.thrift b/src/main/thrift/parquet.thrift index 59ec5f17..a69985a3 100644 --- a/src/main/thrift/parquet.thrift +++ b/src/main/thrift/parquet.thrift @@ -1076,7 +1076,7 @@ union ColumnOrder { * BOOLEAN - false, true * INT32 - signed comparison * INT64 - signed comparison - * INT96 (only used for legacy timestamps) - undefined + * INT96 (only used for legacy timestamps) - timestamp ordering (first 8 bytes nanoseconds, next 4 bytes julian date) * FLOAT - signed comparison of the represented value (*) * DOUBLE - signed comparison of the represented value (*) * BYTE_ARRAY - unsigned byte-wise comparison From c6029a8152630f6d77d3d32ca1e676a5a2f237d2 Mon Sep 17 00:00:00 2001 From: Rahul Sharma Date: Wed, 25 Jun 2025 12:56:52 +0200 Subject: [PATCH 2/3] Change the message --- src/main/thrift/parquet.thrift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/thrift/parquet.thrift b/src/main/thrift/parquet.thrift index a69985a3..0fc15ce0 100644 --- a/src/main/thrift/parquet.thrift +++ b/src/main/thrift/parquet.thrift @@ -1076,7 +1076,7 @@ union ColumnOrder { * BOOLEAN - false, true * INT32 - signed comparison * INT64 - signed comparison - * INT96 (only used for legacy timestamps) - timestamp ordering (first 8 bytes nanoseconds, next 4 bytes julian date) + * INT96 (only used for legacy timestamps) - timestamp ordering (LE 8 bytes nanos | LE 4 bytes julian days) * FLOAT - signed comparison of the represented value (*) * DOUBLE - signed comparison of the represented value (*) * BYTE_ARRAY - unsigned byte-wise comparison From ac195517aee59b21b77a42942405774b09c0a151 Mon Sep 17 00:00:00 2001 From: Rahul Sharma Date: Mon, 30 Jun 2025 17:38:38 +0200 Subject: [PATCH 3/3] Update src/main/thrift/parquet.thrift Co-authored-by: emkornfield --- src/main/thrift/parquet.thrift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/thrift/parquet.thrift b/src/main/thrift/parquet.thrift index 0fc15ce0..322d411b 100644 --- a/src/main/thrift/parquet.thrift +++ b/src/main/thrift/parquet.thrift @@ -1076,7 +1076,7 @@ union ColumnOrder { * BOOLEAN - false, true * INT32 - signed comparison * INT64 - signed comparison - * INT96 (only used for legacy timestamps) - timestamp ordering (LE 8 bytes nanos | LE 4 bytes julian days) + * INT96 (only used for legacy timestamps) - two level comparison. Days (last 4 bytes compared as unsigned Little endian int32), nanoseconds (first 8 bytes compared as unsigned little endian int64) * FLOAT - signed comparison of the represented value (*) * DOUBLE - signed comparison of the represented value (*) * BYTE_ARRAY - unsigned byte-wise comparison