This is an automated email from the ASF dual-hosted git repository.

zeroshade pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-go.git


The following commit(s) were added to refs/heads/main by this push:
     new 85121cbde fix(codec): nanosecond timestamp partitions in schema 
fingerprint (#2052)
85121cbde is described below

commit 85121cbde006091263c8035b90bd76a34b3d7460
Author: Andrei Tserakhau <[email protected]>
AuthorDate: Thu Sep 24 19:04:46 2026 +0200

    fix(codec): nanosecond timestamp partitions in schema fingerprint (#2052)
    
    fix(codec): support nanosecond timestamp partitions in schema fingerprint
    
    `manifestEntrySchemaFor` rejected `timestamp_ns` / `timestamptz_ns` 
partition types because `writePartitionTypeFingerprint` was missing the cases 
already supported by `partitionTypeToAvroSchema`.
    
    Add both fingerprint cases and update the invalid-type test. Existing 
fingerprint/Avro parity coverage now keeps the two paths in sync.
---
 data_file_codec.go      | 4 ++++
 data_file_codec_test.go | 2 --
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/data_file_codec.go b/data_file_codec.go
index 41445834f..dcd01d952 100644
--- a/data_file_codec.go
+++ b/data_file_codec.go
@@ -386,6 +386,10 @@ func writePartitionTypeFingerprint(key *strings.Builder, 
typ Type) error {
                key.WriteByte('t')
        case TimestampTzType:
                key.WriteByte('z')
+       case TimestampNsType:
+               key.WriteByte('n')
+       case TimestampTzNsType:
+               key.WriteByte('N')
        case UUIDType:
                key.WriteByte('u')
        case BooleanType:
diff --git a/data_file_codec_test.go b/data_file_codec_test.go
index fc42558ee..7ca765849 100644
--- a/data_file_codec_test.go
+++ b/data_file_codec_test.go
@@ -464,8 +464,6 @@ func 
TestManifestEntrySchemaForRejectsInvalidTypesAfterCacheHit(t *testing.T) {
 
        for _, typ := range []Type{
                unsupportedCodecPartitionType{},
-               TimestampNsType{},
-               TimestampTzNsType{},
                VariantType{},
                &StructType{}, &ListType{ElementID: 2, Element: Int64Type{}},
                &MapType{KeyID: 2, KeyType: StringType{}, ValueID: 3, 
ValueType: Int64Type{}},

Reply via email to