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