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 ed823616b fix(view): snapshot builder properties (#2465)
ed823616b is described below

commit ed823616ba729ee4b1afdd93487d4c80ef934942
Author: Minh Vu <[email protected]>
AuthorDate: Mon Nov 9 20:18:06 2026 +0100

    fix(view): snapshot builder properties (#2465)
---
 view/metadata_builder.go      |  2 +-
 view/metadata_builder_test.go | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/view/metadata_builder.go b/view/metadata_builder.go
index 6a8d1b3b7..80f167438 100644
--- a/view/metadata_builder.go
+++ b/view/metadata_builder.go
@@ -419,7 +419,7 @@ func (b *MetadataBuilder) buildMetadata(retainedVersions 
[]*Version, retainedHis
                VersionList:           retainedVersions,
                VersionLogList:        retainedHistory,
                SchemaList:            b.schemaList,
-               Props:                 b.props,
+               Props:                 maps.Clone(b.props),
        }
        md.init()
 
diff --git a/view/metadata_builder_test.go b/view/metadata_builder_test.go
index 7e6191fa0..7ff80d9ba 100644
--- a/view/metadata_builder_test.go
+++ b/view/metadata_builder_test.go
@@ -110,6 +110,27 @@ func TestBuild_DoesNotGrowVersionLog(t *testing.T) {
        }
 }
 
+func TestBuildSnapshotsProperties(t *testing.T) {
+       initialProperties := iceberg.Properties{"comment": "daily report", 
"owner": "analytics"}
+       builder := newTestBuilder().
+               SetLoc("location").
+               SetProperties(initialProperties).
+               AddSchema(newTestSchema(1)).
+               AddVersion(newTestVersion(1, LastAddedID)).
+               SetCurrentVersionID(LastAddedID)
+
+       first, err := builder.Build()
+       require.NoError(t, err)
+
+       builder.SetProperties(iceberg.Properties{"comment": "weekly report"}).
+               RemoveProperties([]string{"owner"})
+       second, err := builder.Build()
+       require.NoError(t, err)
+
+       assert.Equal(t, initialProperties, first.Properties())
+       assert.Equal(t, iceberg.Properties{"comment": "weekly report"}, 
second.Properties())
+}
+
 func TestBuild_RepeatedBuildsWithVersionExpiry(t *testing.T) {
        // With a history size of 1, versions 1 and 2 are expired. The only 
history entry is
        // the one for version 3, which is retained, so updateHistory keeps it; 
its clear

Reply via email to