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 48c85561 chore(metadata): remove Builder returns from MetadataBuilder 
(#566)
48c85561 is described below

commit 48c85561da582ccd35aa2466c1398a429512cde5
Author: Tobias Pütz <tob...@minio.io>
AuthorDate: Thu Sep 18 00:55:00 2025 +0200

    chore(metadata): remove Builder returns from MetadataBuilder (#566)
    
    This removes the `MetadataBuilder` return value from the mutators of
    `MetadataBuilder`. Since all those functions are fallible, we cannot use
    it as a builder anyways. Removing them makes the API more concise and
    simpler.
---
 catalog/glue/schema_test.go             |   4 +-
 io/azure_integration_test.go            |   8 +-
 table/arrow_utils_internal_test.go      |   2 +-
 table/metadata.go                       | 155 +++++++++++++++-----------------
 table/metadata_builder_internal_test.go |  96 ++++++++------------
 table/metadata_internal_test.go         |  39 +++-----
 table/time_travel_test.go               |   3 +-
 table/updates.go                        |  64 ++++---------
 8 files changed, 148 insertions(+), 223 deletions(-)

diff --git a/catalog/glue/schema_test.go b/catalog/glue/schema_test.go
index e2622afa..88412db0 100644
--- a/catalog/glue/schema_test.go
+++ b/catalog/glue/schema_test.go
@@ -440,9 +440,9 @@ func TestSchemasToGlueColumns(t *testing.T) {
        mb, err := table.MetadataBuilderFromBase(metadata)
        assert.NoError(t, err)
 
-       mb, err = mb.AddSchema(schemas[1])
+       err = mb.AddSchema(schemas[1])
        assert.NoError(t, err)
-       mb, err = mb.SetCurrentSchemaID(1)
+       err = mb.SetCurrentSchemaID(1)
        assert.NoError(t, err)
 
        metadata, err = mb.Build()
diff --git a/io/azure_integration_test.go b/io/azure_integration_test.go
index 49189443..cfe5ecb6 100644
--- a/io/azure_integration_test.go
+++ b/io/azure_integration_test.go
@@ -95,10 +95,10 @@ func (s *AzureBlobIOTestSuite) 
TestAzuriteWarehouseConnectionString() {
        path := "iceberg-test-azure/test-table-azure"
        containerName := "warehouse"
        properties := iceberg.Properties{
-               "uri":                       ":memory:",
-               sqlcat.DriverKey:            sqliteshim.ShimName,
-               sqlcat.DialectKey:           string(sqlcat.SQLite),
-               "type":                      "sql",
+               "uri":             ":memory:",
+               sqlcat.DriverKey:  sqliteshim.ShimName,
+               sqlcat.DialectKey: string(sqlcat.SQLite),
+               "type":            "sql",
                io.AdlsConnectionStringPrefix + accountName: connectionString,
        }
 
diff --git a/table/arrow_utils_internal_test.go 
b/table/arrow_utils_internal_test.go
index 7a19d627..25b1983c 100644
--- a/table/arrow_utils_internal_test.go
+++ b/table/arrow_utils_internal_test.go
@@ -184,7 +184,7 @@ func (suite *FileStatsMetricsSuite) getDataFile(meta 
iceberg.Properties, writeSt
        if len(meta) > 0 {
                bldr, err := MetadataBuilderFromBase(tableMeta)
                suite.Require().NoError(err)
-               _, err = bldr.SetProperties(meta)
+               err = bldr.SetProperties(meta)
                suite.Require().NoError(err)
                tableMeta, err = bldr.Build()
                suite.Require().NoError(err)
diff --git a/table/metadata.go b/table/metadata.go
index 8da21a70..568c9fd3 100644
--- a/table/metadata.go
+++ b/table/metadata.go
@@ -261,7 +261,7 @@ func (b *MetadataBuilder) currentSnapshot() *Snapshot {
        return s
 }
 
-func (b *MetadataBuilder) AddSchema(schema *iceberg.Schema) (*MetadataBuilder, 
error) {
+func (b *MetadataBuilder) AddSchema(schema *iceberg.Schema) error {
        newSchemaID := b.reuseOrCreateNewSchemaID(schema)
 
        if _, err := b.GetSchemaByID(newSchemaID); err == nil {
@@ -270,7 +270,7 @@ func (b *MetadataBuilder) AddSchema(schema *iceberg.Schema) 
(*MetadataBuilder, e
                        b.lastAddedSchemaID = &newSchemaID
                }
 
-               return b, nil
+               return nil
        }
 
        b.lastColumnId = max(b.lastColumnId, schema.HighestFieldID())
@@ -281,15 +281,15 @@ func (b *MetadataBuilder) AddSchema(schema 
*iceberg.Schema) (*MetadataBuilder, e
        b.updates = append(b.updates, NewAddSchemaUpdate(schema))
        b.lastAddedSchemaID = &newSchemaID
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) AddPartitionSpec(spec *iceberg.PartitionSpec, 
initial bool) (*MetadataBuilder, error) {
+func (b *MetadataBuilder) AddPartitionSpec(spec *iceberg.PartitionSpec, 
initial bool) error {
        newSpecID := b.reuseOrCreateNewPartitionSpecID(*spec)
 
        freshSpec, err := spec.BindToSchema(b.CurrentSchema(), 
b.lastPartitionID, &newSpecID, false)
        if err != nil {
-               return nil, err
+               return err
        }
 
        spec = nil
@@ -299,7 +299,7 @@ func (b *MetadataBuilder) AddPartitionSpec(spec 
*iceberg.PartitionSpec, initial
                        b.lastAddedPartitionID = &newSpecID
                }
 
-               return b, nil
+               return nil
        }
 
        maxFieldID := 0
@@ -309,7 +309,7 @@ func (b *MetadataBuilder) AddPartitionSpec(spec 
*iceberg.PartitionSpec, initial
                if b.formatVersion <= 1 {
                        expectedID := partitionFieldStartID + fieldCount
                        if f.FieldID != expectedID {
-                               return nil, fmt.Errorf("v1 constraint: 
partition field IDs are not sequential: expected %d, got %d", expectedID, 
f.FieldID)
+                               return fmt.Errorf("v1 constraint: partition 
field IDs are not sequential: expected %d, got %d", expectedID, f.FieldID)
                        }
                        fieldCount++
                }
@@ -334,25 +334,25 @@ func (b *MetadataBuilder) AddPartitionSpec(spec 
*iceberg.PartitionSpec, initial
        b.lastAddedPartitionID = &newSpecID
        b.updates = append(b.updates, NewAddPartitionSpecUpdate(&freshSpec, 
initial))
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) AddSnapshot(snapshot *Snapshot) (*MetadataBuilder, 
error) {
+func (b *MetadataBuilder) AddSnapshot(snapshot *Snapshot) error {
        if snapshot == nil {
-               return nil, nil
+               return nil
        }
 
        if len(b.schemaList) == 0 {
-               return nil, errors.New("can't add snapshot with no added 
schemas")
+               return errors.New("can't add snapshot with no added schemas")
        } else if len(b.specs) == 0 {
-               return nil, errors.New("can't add snapshot with no added 
partition specs")
+               return errors.New("can't add snapshot with no added partition 
specs")
        } else if s, _ := b.SnapshotByID(snapshot.SnapshotID); s != nil {
-               return nil, fmt.Errorf("can't add snapshot with id %d, already 
exists", snapshot.SnapshotID)
+               return fmt.Errorf("can't add snapshot with id %d, already 
exists", snapshot.SnapshotID)
        } else if b.formatVersion == 2 &&
                snapshot.SequenceNumber > 0 &&
                snapshot.ParentSnapshotID != nil &&
                snapshot.SequenceNumber <= *b.lastSequenceNumber {
-               return nil, fmt.Errorf("can't add snapshot with sequence number 
%d, must be > than last sequence number %d",
+               return fmt.Errorf("can't add snapshot with sequence number %d, 
must be > than last sequence number %d",
                        snapshot.SequenceNumber, b.lastSequenceNumber)
        }
 
@@ -361,12 +361,12 @@ func (b *MetadataBuilder) AddSnapshot(snapshot *Snapshot) 
(*MetadataBuilder, err
        b.lastSequenceNumber = &snapshot.SequenceNumber
        b.snapshotList = append(b.snapshotList, *snapshot)
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) RemoveSnapshots(snapshotIds []int64) 
(*MetadataBuilder, error) {
+func (b *MetadataBuilder) RemoveSnapshots(snapshotIds []int64) error {
        if slices.Contains(snapshotIds, *b.currentSnapshotID) {
-               return nil, errors.New("current snapshot cannot be removed")
+               return errors.New("current snapshot cannot be removed")
        }
 
        b.snapshotList = slices.DeleteFunc(b.snapshotList, func(e Snapshot) 
bool {
@@ -377,10 +377,10 @@ func (b *MetadataBuilder) RemoveSnapshots(snapshotIds 
[]int64) (*MetadataBuilder
        })
        b.updates = append(b.updates, NewRemoveSnapshotsUpdate(snapshotIds))
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) AddSortOrder(sortOrder *SortOrder, initial bool) 
(*MetadataBuilder, error) {
+func (b *MetadataBuilder) AddSortOrder(sortOrder *SortOrder, initial bool) 
error {
        var sortOrders []SortOrder
        if !initial {
                sortOrders = append(sortOrders, b.sortOrderList...)
@@ -388,19 +388,19 @@ func (b *MetadataBuilder) AddSortOrder(sortOrder 
*SortOrder, initial bool) (*Met
 
        for _, s := range sortOrders {
                if s.OrderID == sortOrder.OrderID {
-                       return nil, fmt.Errorf("sort order with id %d already 
exists", sortOrder.OrderID)
+                       return fmt.Errorf("sort order with id %d already 
exists", sortOrder.OrderID)
                }
        }
 
        b.sortOrderList = append(sortOrders, *sortOrder)
        b.updates = append(b.updates, NewAddSortOrderUpdate(sortOrder, initial))
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) RemoveProperties(keys []string) (*MetadataBuilder, 
error) {
+func (b *MetadataBuilder) RemoveProperties(keys []string) error {
        if len(keys) == 0 {
-               return b, nil
+               return nil
        }
 
        b.updates = append(b.updates, NewRemovePropertiesUpdate(keys))
@@ -408,33 +408,33 @@ func (b *MetadataBuilder) RemoveProperties(keys []string) 
(*MetadataBuilder, err
                delete(b.props, key)
        }
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) SetCurrentSchemaID(currentSchemaID int) 
(*MetadataBuilder, error) {
+func (b *MetadataBuilder) SetCurrentSchemaID(currentSchemaID int) error {
        if currentSchemaID == -1 {
                if b.lastAddedSchemaID == nil {
-                       return nil, errors.New("can't set current schema to 
last added schema, no schema has been added")
+                       return errors.New("can't set current schema to last 
added schema, no schema has been added")
                }
                currentSchemaID = *b.lastAddedSchemaID
        }
 
        if currentSchemaID == b.currentSchemaID {
-               return b, nil
+               return nil
        }
 
        _, err := b.GetSchemaByID(currentSchemaID)
        if err != nil {
-               return nil, fmt.Errorf("can't set current schema to schema with 
id %d: %w", currentSchemaID, err)
+               return fmt.Errorf("can't set current schema to schema with id 
%d: %w", currentSchemaID, err)
        }
 
        b.updates = append(b.updates, 
NewSetCurrentSchemaUpdate(currentSchemaID))
        b.currentSchemaID = currentSchemaID
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) SetDefaultSortOrderID(defaultSortOrderID int) 
(*MetadataBuilder, error) {
+func (b *MetadataBuilder) SetDefaultSortOrderID(defaultSortOrderID int) error {
        if defaultSortOrderID == -1 {
                defaultSortOrderID = maxBy(b.sortOrderList, func(s SortOrder) 
int {
                        return s.OrderID
@@ -442,41 +442,41 @@ func (b *MetadataBuilder) 
SetDefaultSortOrderID(defaultSortOrderID int) (*Metada
                if !slices.ContainsFunc(b.updates, func(u Update) bool {
                        return u.Action() == UpdateAddSortOrder && 
u.(*addSortOrderUpdate).SortOrder.OrderID == defaultSortOrderID
                }) {
-                       return nil, errors.New("can't set default sort order to 
last added with no added sort orders")
+                       return errors.New("can't set default sort order to last 
added with no added sort orders")
                }
        }
 
        if defaultSortOrderID == b.defaultSortOrderID {
-               return b, nil
+               return nil
        }
 
        if _, err := b.GetSortOrderByID(defaultSortOrderID); err != nil {
-               return nil, fmt.Errorf("can't set default sort order to sort 
order with id %d: %w", defaultSortOrderID, err)
+               return fmt.Errorf("can't set default sort order to sort order 
with id %d: %w", defaultSortOrderID, err)
        }
 
        b.updates = append(b.updates, 
NewSetDefaultSortOrderUpdate(defaultSortOrderID))
        b.defaultSortOrderID = defaultSortOrderID
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) SetDefaultSpecID(defaultSpecID int) 
(*MetadataBuilder, error) {
+func (b *MetadataBuilder) SetDefaultSpecID(defaultSpecID int) error {
        lastUsed := false
        if defaultSpecID == -1 {
                if b.lastAddedPartitionID != nil {
                        lastUsed = true
                        defaultSpecID = *b.lastAddedPartitionID
                } else {
-                       return nil, errors.New("can't set default spec to last 
added with no added partition specs")
+                       return errors.New("can't set default spec to last added 
with no added partition specs")
                }
        }
 
        if defaultSpecID == b.defaultSpecID {
-               return b, nil
+               return nil
        }
 
        if _, err := b.GetSpecByID(defaultSpecID); err != nil {
-               return nil, fmt.Errorf("can't set default spec to spec with id 
%d: %w", defaultSpecID, err)
+               return fmt.Errorf("can't set default spec to spec with id %d: 
%w", defaultSpecID, err)
        }
 
        if lastUsed {
@@ -486,43 +486,43 @@ func (b *MetadataBuilder) SetDefaultSpecID(defaultSpecID 
int) (*MetadataBuilder,
        }
        b.defaultSpecID = defaultSpecID
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) SetFormatVersion(formatVersion int) 
(*MetadataBuilder, error) {
+func (b *MetadataBuilder) SetFormatVersion(formatVersion int) error {
        if formatVersion < b.formatVersion {
-               return nil, fmt.Errorf("downgrading format version from %d to 
%d is not allowed",
+               return fmt.Errorf("downgrading format version from %d to %d is 
not allowed",
                        b.formatVersion, formatVersion)
        }
 
        if formatVersion > supportedTableFormatVersion {
-               return nil, fmt.Errorf("unsupported format version %d", 
formatVersion)
+               return fmt.Errorf("unsupported format version %d", 
formatVersion)
        }
 
        if formatVersion == b.formatVersion {
-               return b, nil
+               return nil
        }
 
        b.updates = append(b.updates, 
NewUpgradeFormatVersionUpdate(formatVersion))
        b.formatVersion = formatVersion
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) SetLoc(loc string) (*MetadataBuilder, error) {
+func (b *MetadataBuilder) SetLoc(loc string) error {
        if b.loc == loc {
-               return b, nil
+               return nil
        }
 
        b.updates = append(b.updates, NewSetLocationUpdate(loc))
        b.loc = loc
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) SetProperties(props iceberg.Properties) 
(*MetadataBuilder, error) {
+func (b *MetadataBuilder) SetProperties(props iceberg.Properties) error {
        if len(props) == 0 {
-               return b, nil
+               return nil
        }
 
        b.updates = append(b.updates, NewSetPropertiesUpdate(props))
@@ -532,7 +532,7 @@ func (b *MetadataBuilder) SetProperties(props 
iceberg.Properties) (*MetadataBuil
                maps.Copy(b.props, props)
        }
 
-       return b, nil
+       return nil
 }
 
 type setSnapshotRefOption func(*SnapshotRef) error
@@ -575,14 +575,14 @@ func (b *MetadataBuilder) SetSnapshotRef(
        snapshotID int64,
        refType RefType,
        options ...setSnapshotRefOption,
-) (*MetadataBuilder, error) {
+) error {
        ref := SnapshotRef{
                SnapshotID:      snapshotID,
                SnapshotRefType: refType,
        }
        for _, opt := range options {
                if err := opt(&ref); err != nil {
-                       return nil, fmt.Errorf("invalid snapshot ref option: 
%w", err)
+                       return fmt.Errorf("invalid snapshot ref option: %w", 
err)
                }
        }
 
@@ -599,12 +599,12 @@ func (b *MetadataBuilder) SetSnapshotRef(
        }
 
        if existingRef, ok := b.refs[name]; ok && existingRef.Equals(ref) {
-               return b, nil
+               return nil
        }
 
        snapshot, err := b.SnapshotByID(snapshotID)
        if err != nil {
-               return nil, fmt.Errorf("can't set snapshot ref %s to unknown 
snapshot %d: %w", name, snapshotID, err)
+               return fmt.Errorf("can't set snapshot ref %s to unknown 
snapshot %d: %w", name, snapshotID, err)
        }
 
        isAddedSnapshot := slices.ContainsFunc(b.updates, func(u Update) bool {
@@ -634,12 +634,12 @@ func (b *MetadataBuilder) SetSnapshotRef(
 
        b.refs[name] = ref
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) RemoveSnapshotRef(name string) (*MetadataBuilder, 
error) {
+func (b *MetadataBuilder) RemoveSnapshotRef(name string) error {
        if _, found := b.refs[name]; !found {
-               return nil, fmt.Errorf("snapshot ref not found: %s", name)
+               return fmt.Errorf("snapshot ref not found: %s", name)
        }
 
        if name == MainBranch {
@@ -650,18 +650,18 @@ func (b *MetadataBuilder) RemoveSnapshotRef(name string) 
(*MetadataBuilder, erro
        delete(b.refs, name)
        b.updates = append(b.updates, NewRemoveSnapshotRefUpdate(name))
 
-       return b, nil
+       return nil
 }
 
-func (b *MetadataBuilder) SetUUID(uuid uuid.UUID) (*MetadataBuilder, error) {
+func (b *MetadataBuilder) SetUUID(uuid uuid.UUID) error {
        if b.uuid == uuid {
-               return b, nil
+               return nil
        }
 
        b.updates = append(b.updates, NewAssignUUIDUpdate(uuid))
        b.uuid = uuid
 
-       return b, nil
+       return nil
 }
 
 func (b *MetadataBuilder) SetLastUpdatedMS() *MetadataBuilder {
@@ -846,9 +846,9 @@ func (b *MetadataBuilder) 
reuseOrCreateNewSchemaID(newSchema *iceberg.Schema) in
        return newSchemaID
 }
 
-func (b *MetadataBuilder) RemovePartitionSpecs(ints []int) (*MetadataBuilder, 
error) {
+func (b *MetadataBuilder) RemovePartitionSpecs(ints []int) error {
        if slices.Contains(ints, b.defaultSpecID) {
-               return nil, fmt.Errorf("can't remove default partition spec 
with id %d", b.defaultSpecID)
+               return fmt.Errorf("can't remove default partition spec with id 
%d", b.defaultSpecID)
        }
 
        newSpecs := make([]iceberg.PartitionSpec, 0, len(b.specs)-len(ints))
@@ -868,7 +868,7 @@ func (b *MetadataBuilder) RemovePartitionSpecs(ints []int) 
(*MetadataBuilder, er
                b.updates = append(b.updates, NewRemoveSpecUpdate(ints))
        }
 
-       return b, nil
+       return nil
 }
 
 // maxBy returns the maximum value of extract(e) for all e in elems.
@@ -1409,48 +1409,39 @@ func NewMetadataWithUUID(sc *iceberg.Schema, partitions 
*iceberg.PartitionSpec,
                return nil, err
        }
 
-       _, err = builder.SetFormatVersion(formatVersion)
-       if err != nil {
+       if err = builder.SetFormatVersion(formatVersion); err != nil {
                return nil, err
        }
 
-       _, err = builder.SetUUID(tableUuid)
-       if err != nil {
+       if err = builder.SetUUID(tableUuid); err != nil {
                return nil, err
        }
 
-       _, err = builder.AddSortOrder(&reassignedIds.sortOrder, true)
-       if err != nil {
+       if err = builder.AddSortOrder(&reassignedIds.sortOrder, true); err != 
nil {
                return nil, err
        }
 
-       _, err = builder.SetDefaultSortOrderID(-1)
-       if err != nil {
+       if err = builder.SetDefaultSortOrderID(-1); err != nil {
                return nil, err
        }
 
-       _, err = builder.AddSchema(reassignedIds.schema)
-       if err != nil {
+       if err = builder.AddSchema(reassignedIds.schema); err != nil {
                return nil, err
        }
 
-       _, err = builder.SetCurrentSchemaID(-1)
-       if err != nil {
+       if err = builder.SetCurrentSchemaID(-1); err != nil {
                return nil, err
        }
 
-       _, err = builder.AddPartitionSpec(reassignedIds.partitionSpec, true)
-       if err != nil {
+       if err = builder.AddPartitionSpec(reassignedIds.partitionSpec, true); 
err != nil {
                return nil, err
        }
 
-       _, err = builder.SetLoc(location)
-       if err != nil {
+       if err = builder.SetLoc(location); err != nil {
                return nil, err
        }
 
-       _, err = builder.SetProperties(props)
-       if err != nil {
+       if err = builder.SetProperties(props); err != nil {
                return nil, err
        }
 
diff --git a/table/metadata_builder_internal_test.go 
b/table/metadata_builder_internal_test.go
index 1fc900e4..0ff33869 100644
--- a/table/metadata_builder_internal_test.go
+++ b/table/metadata_builder_internal_test.go
@@ -68,24 +68,19 @@ func builderWithoutChanges(formatVersion int) 
MetadataBuilder {
        if err != nil {
                panic(err)
        }
-       _, err = builder.SetFormatVersion(formatVersion)
-       if err != nil {
+       if err = builder.SetFormatVersion(formatVersion); err != nil {
                panic(err)
        }
-       _, err = builder.AddSortOrder(&sortOrder, true)
-       if err != nil {
+       if err = builder.AddSortOrder(&sortOrder, true); err != nil {
                panic(err)
        }
-       _, err = builder.AddSchema(&tableSchema)
-       if err != nil {
+       if err = builder.AddSchema(&tableSchema); err != nil {
                panic(err)
        }
-       _, err = builder.SetCurrentSchemaID(-1)
-       if err != nil {
+       if err = builder.SetCurrentSchemaID(-1); err != nil {
                panic(err)
        }
-       _, err = builder.AddPartitionSpec(&partitionSpec, true)
-       if err != nil {
+       if err = builder.AddPartitionSpec(&partitionSpec, true); err != nil {
                panic(err)
        }
 
@@ -111,7 +106,7 @@ func TestAddRemovePartitionSpec(t *testing.T) {
                iceberg.AddPartitionFieldBySourceID(3, "z", 
iceberg.IdentityTransform{}, builder.schemaList[0], nil))
        require.NoError(t, err)
 
-       builderRef, err = builderRef.AddPartitionSpec(&addedSpec, false)
+       err = builderRef.AddPartitionSpec(&addedSpec, false)
        require.NoError(t, err)
        metadata, err := builderRef.Build()
        require.NoError(t, err)
@@ -137,9 +132,8 @@ func TestAddRemovePartitionSpec(t *testing.T) {
        newBuilder, err := MetadataBuilderFromBase(metadata)
        require.NoError(t, err)
        // Remove the spec
-       newBuilderRef, err := newBuilder.RemovePartitionSpecs([]int{1})
-       require.NoError(t, err)
-       newBuild, err := newBuilderRef.Build()
+       require.NoError(t, newBuilder.RemovePartitionSpecs([]int{1}))
+       newBuild, err := newBuilder.Build()
        require.NoError(t, err)
        require.NotNil(t, newBuild)
        require.Len(t, newBuilder.updates, 1)
@@ -157,22 +151,19 @@ func TestSetDefaultPartitionSpec(t *testing.T) {
                iceberg.WithSpecID(10),
                iceberg.AddPartitionFieldBySourceID(1, "y_bucket[2]", 
iceberg.BucketTransform{NumBuckets: 2}, curSchema, nil))
        require.NoError(t, err)
-       builderRef, err := builder.AddPartitionSpec(&addedSpec, false)
-       require.NoError(t, err)
-       // Set the default partition spec
-       builderRef, err = builderRef.SetDefaultSpecID(-1)
-       require.NoError(t, err)
+       require.NoError(t, builder.AddPartitionSpec(&addedSpec, false))
+       require.NoError(t, builder.SetDefaultSpecID(-1))
 
        id := 1001
        expectedSpec, err := iceberg.NewPartitionSpecOpts(
                iceberg.WithSpecID(1),
                iceberg.AddPartitionFieldBySourceID(1, "y_bucket[2]", 
iceberg.BucketTransform{NumBuckets: 2}, curSchema, &id))
        require.NoError(t, err)
-       require.True(t, builderRef.HasChanges())
-       require.Equal(t, len(builderRef.updates), 2)
-       require.True(t, 
builderRef.updates[0].(*addPartitionSpecUpdate).Spec.Equals(expectedSpec))
-       require.Equal(t, -1, 
builderRef.updates[1].(*setDefaultSpecUpdate).SpecID)
-       metadata, err := builderRef.Build()
+       require.True(t, builder.HasChanges())
+       require.Equal(t, len(builder.updates), 2)
+       require.True(t, 
builder.updates[0].(*addPartitionSpecUpdate).Spec.Equals(expectedSpec))
+       require.Equal(t, -1, builder.updates[1].(*setDefaultSpecUpdate).SpecID)
+       metadata, err := builder.Build()
        require.NoError(t, err)
        require.NotNil(t, metadata)
 
@@ -195,18 +186,16 @@ func TestSetExistingDefaultPartitionSpec(t *testing.T) {
        expectedSpec, err := 
iceberg.NewPartitionSpecOpts(iceberg.WithSpecID(1), 
iceberg.AddPartitionFieldBySourceID(1, "y_bucket[2]", 
iceberg.BucketTransform{NumBuckets: 2}, curSchema, &id))
        require.NoError(t, err)
 
-       builderRef, err := builder.AddPartitionSpec(&addedSpec, false)
-       require.NoError(t, err)
+       require.NoError(t, builder.AddPartitionSpec(&addedSpec, false))
 
-       builderRef, err = builderRef.SetDefaultSpecID(-1)
-       require.NoError(t, err)
+       require.NoError(t, builder.SetDefaultSpecID(-1))
 
-       require.True(t, builderRef.HasChanges())
-       require.Len(t, builderRef.updates, 2)
-       require.True(t, 
builderRef.updates[0].(*addPartitionSpecUpdate).Spec.Equals(expectedSpec))
-       require.Equal(t, -1, 
builderRef.updates[1].(*setDefaultSpecUpdate).SpecID)
+       require.True(t, builder.HasChanges())
+       require.Len(t, builder.updates, 2)
+       require.True(t, 
builder.updates[0].(*addPartitionSpecUpdate).Spec.Equals(expectedSpec))
+       require.Equal(t, -1, builder.updates[1].(*setDefaultSpecUpdate).SpecID)
 
-       metadata, err := builderRef.Build()
+       metadata, err := builder.Build()
        require.NoError(t, err)
        require.NotNil(t, metadata)
        require.Equal(t, 1, metadata.DefaultPartitionSpec())
@@ -217,14 +206,13 @@ func TestSetExistingDefaultPartitionSpec(t *testing.T) {
        require.NoError(t, err)
        require.NotNil(t, newBuilder)
 
-       newBuilderRef, err := newBuilder.SetDefaultSpecID(0)
-       require.NoError(t, err)
+       require.NoError(t, newBuilder.SetDefaultSpecID(0))
 
-       require.True(t, newBuilderRef.HasChanges(), "expected changes after 
setting default spec")
-       require.Len(t, newBuilderRef.updates, 1, "expected one update")
-       require.Equal(t, 0, 
newBuilderRef.updates[0].(*setDefaultSpecUpdate).SpecID, "expected default 
partition spec to be set to 0")
+       require.True(t, newBuilder.HasChanges(), "expected changes after 
setting default spec")
+       require.Len(t, newBuilder.updates, 1, "expected one update")
+       require.Equal(t, 0, 
newBuilder.updates[0].(*setDefaultSpecUpdate).SpecID, "expected default 
partition spec to be set to 0")
 
-       newBuild, err := newBuilderRef.Build()
+       newBuild, err := newBuilder.Build()
        require.NoError(t, err)
        require.NotNil(t, newBuild)
        require.Equal(t, 0, newBuild.DefaultPartitionSpec(), "expected default 
partition spec to be set to 0")
@@ -253,12 +241,11 @@ func TestSetRef(t *testing.T) {
                },
                SchemaID: &schemaID,
        }
-       _, err := builder.AddSnapshot(&snapshot)
-       require.NoError(t, err)
-       _, err = builder.SetSnapshotRef(MainBranch, 10, BranchRef, 
WithMinSnapshotsToKeep(10))
+
+       require.NoError(t, builder.AddSnapshot(&snapshot))
+       err := builder.SetSnapshotRef(MainBranch, 10, BranchRef, 
WithMinSnapshotsToKeep(10))
        require.ErrorContains(t, err, "can't set snapshot ref main to unknown 
snapshot 10: snapshot with id 10 not found")
-       _, err = builder.SetSnapshotRef(MainBranch, 1, BranchRef, 
WithMinSnapshotsToKeep(10))
-       require.NoError(t, err)
+       require.NoError(t, builder.SetSnapshotRef(MainBranch, 1, BranchRef, 
WithMinSnapshotsToKeep(10)))
        require.Len(t, builder.snapshotList, 1)
        snap, err := builder.SnapshotByID(1)
        require.NoError(t, err)
@@ -279,8 +266,7 @@ func TestAddPartitionSpecForV1RequiresSequentialIDs(t 
*testing.T) {
                iceberg.AddPartitionFieldBySourceID(3, "z", 
iceberg.IdentityTransform{}, builder.CurrentSchema(), &id2))
        require.NoError(t, err)
 
-       _, err = builder.AddPartitionSpec(&addedSpec, false)
-       require.ErrorContains(t, err, "v1 constraint: partition field IDs are 
not sequential: expected 1001, got 1002")
+       require.ErrorContains(t, builder.AddPartitionSpec(&addedSpec, false), 
"v1 constraint: partition field IDs are not sequential: expected 1001, got 
1002")
 }
 
 func TestSetBranchSnapshotCreatesBranchIfNotExists(t *testing.T) {
@@ -304,10 +290,8 @@ func TestSetBranchSnapshotCreatesBranchIfNotExists(t 
*testing.T) {
                SchemaID: &schemaID,
        }
 
-       _, err := builder.AddSnapshot(&snapshot)
-       require.NoError(t, err)
-       _, err = builder.SetSnapshotRef("new_branch", 2, BranchRef)
-       require.NoError(t, err)
+       require.NoError(t, builder.AddSnapshot(&snapshot))
+       require.NoError(t, builder.SetSnapshotRef("new_branch", 2, BranchRef))
 
        meta, err := builder.Build()
        require.NoError(t, err)
@@ -343,10 +327,8 @@ func TestCannotAddDuplicateSnapshotID(t *testing.T) {
                },
                SchemaID: &schemaID,
        }
-       _, err := builder.AddSnapshot(&snapshot)
-       require.NoError(t, err)
-       _, err = builder.AddSnapshot(&snapshot)
-       require.ErrorContains(t, err, "can't add snapshot with id 2, already 
exists")
+       require.NoError(t, builder.AddSnapshot(&snapshot))
+       require.ErrorContains(t, builder.AddSnapshot(&snapshot), "can't add 
snapshot with id 2, already exists")
 }
 
 func TestRemoveMainSnapshotRef(t *testing.T) {
@@ -360,8 +342,7 @@ func TestRemoveMainSnapshotRef(t *testing.T) {
        if _, ok := builder.refs[MainBranch]; !ok {
                t.Fatal("expected main branch to exist")
        }
-       _, err = builder.RemoveSnapshotRef(MainBranch)
-       require.NoError(t, err)
+       require.NoError(t, builder.RemoveSnapshotRef(MainBranch))
        require.Nil(t, builder.currentSnapshotID)
        meta, err = builder.Build()
        require.NoError(t, err)
@@ -371,6 +352,5 @@ func TestRemoveMainSnapshotRef(t *testing.T) {
 func TestDefaultSpecCannotBeRemoved(t *testing.T) {
        builder := builderWithoutChanges(2)
 
-       _, err := builder.RemovePartitionSpecs([]int{0})
-       require.ErrorContains(t, err, "can't remove default partition spec with 
id 0")
+       require.ErrorContains(t, builder.RemovePartitionSpecs([]int{0}), "can't 
remove default partition spec with id 0")
 }
diff --git a/table/metadata_internal_test.go b/table/metadata_internal_test.go
index ef1fc6ac..87c3fd55 100644
--- a/table/metadata_internal_test.go
+++ b/table/metadata_internal_test.go
@@ -757,11 +757,9 @@ func TestMetadataBuilderSetDefaultSpecIDLastPartition(t 
*testing.T) {
        assert.NoError(t, err)
 
        partitionSpec := iceberg.NewPartitionSpecID(0)
-       _, err = builder.AddPartitionSpec(&partitionSpec, false)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.AddPartitionSpec(&partitionSpec, false))
 
-       _, err = builder.SetDefaultSpecID(-1)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.SetDefaultSpecID(-1))
 
        assert.Equal(t, 0, builder.defaultSpecID)
 }
@@ -769,22 +767,17 @@ func TestMetadataBuilderSetDefaultSpecIDLastPartition(t 
*testing.T) {
 func TestMetadataBuilderSetLastAddedSchema(t *testing.T) {
        builder, err := NewMetadataBuilder()
        assert.NoError(t, err)
-       _, err = builder.SetFormatVersion(2)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.SetFormatVersion(2))
        schema := iceberg.NewSchema(1,
                iceberg.NestedField{ID: 1, Name: "foo", Type: 
iceberg.StringType{}, Required: true},
        )
-       _, err = builder.AddSchema(schema)
-       assert.NoError(t, err)
-       _, err = builder.SetCurrentSchemaID(-1)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.AddSchema(schema))
+       assert.NoError(t, builder.SetCurrentSchemaID(-1))
 
        partitionSpec := iceberg.NewPartitionSpecID(0)
-       _, err = builder.AddPartitionSpec(&partitionSpec, false)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.AddPartitionSpec(&partitionSpec, false))
 
-       _, err = builder.SetDefaultSpecID(-1)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.SetDefaultSpecID(-1))
 
        meta, err := builder.Build()
        assert.NoError(t, err)
@@ -795,25 +788,21 @@ func TestMetadataBuilderSetLastAddedSchema(t *testing.T) {
 func TestMetadataBuilderSchemaIncreasingNumbering(t *testing.T) {
        builder, err := NewMetadataBuilder()
        assert.NoError(t, err)
-       _, err = builder.SetFormatVersion(2)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.SetFormatVersion(2))
        schema := iceberg.NewSchema(1,
                iceberg.NestedField{ID: 1, Name: "foo", Type: 
iceberg.StringType{}, Required: true},
        )
-       _, err = builder.AddSchema(schema)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.AddSchema(schema))
 
        schema = iceberg.NewSchema(3,
                iceberg.NestedField{ID: 3, Name: "foo", Type: 
iceberg.StringType{}, Required: true},
        )
-       _, err = builder.AddSchema(schema)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.AddSchema(schema))
 
        schema = iceberg.NewSchema(2,
                iceberg.NestedField{ID: 4, Name: "foo", Type: 
iceberg.StringType{}, Required: true},
        )
-       _, err = builder.AddSchema(schema)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.AddSchema(schema))
 
        assert.Equal(t, 1, builder.schemaList[0].ID)
        assert.Equal(t, 3, builder.schemaList[1].ID)
@@ -826,13 +815,11 @@ func TestMetadataBuilderReuseSchema(t *testing.T) {
        schema := iceberg.NewSchema(1,
                iceberg.NestedField{ID: 1, Name: "foo", Type: 
iceberg.StringType{}, Required: true},
        )
-       _, err = builder.AddSchema(schema)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.AddSchema(schema))
        schema2 := iceberg.NewSchema(15,
                iceberg.NestedField{ID: 1, Name: "foo", Type: 
iceberg.StringType{}, Required: true},
        )
-       _, err = builder.AddSchema(schema2)
-       assert.NoError(t, err)
+       assert.NoError(t, builder.AddSchema(schema2))
        assert.Equal(t, len(builder.schemaList), 1)
        assert.Equal(t, *builder.lastAddedSchemaID, 1)
 }
diff --git a/table/time_travel_test.go b/table/time_travel_test.go
index 0ef34d81..5dd92a1d 100644
--- a/table/time_travel_test.go
+++ b/table/time_travel_test.go
@@ -287,8 +287,7 @@ func createTestMetadata(snapshots []Snapshot, snapshotLog 
[]SnapshotLogEntry) (M
 
                // Add snapshots if provided
                for _, snapshot := range snapshots {
-                       builder, err = builder.AddSnapshot(&snapshot)
-                       if err != nil {
+                       if err = builder.AddSnapshot(&snapshot); err != nil {
                                return nil, err
                        }
                }
diff --git a/table/updates.go b/table/updates.go
index f91bd487..dd867aab 100644
--- a/table/updates.go
+++ b/table/updates.go
@@ -153,9 +153,7 @@ func NewAssignUUIDUpdate(uuid uuid.UUID) *assignUUIDUpdate {
 }
 
 func (u *assignUUIDUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.SetUUID(u.UUID)
-
-       return err
+       return builder.SetUUID(u.UUID)
 }
 
 type upgradeFormatVersionUpdate struct {
@@ -173,9 +171,7 @@ func NewUpgradeFormatVersionUpdate(formatVersion int) 
*upgradeFormatVersionUpdat
 }
 
 func (u *upgradeFormatVersionUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.SetFormatVersion(u.FormatVersion)
-
-       return err
+       return builder.SetFormatVersion(u.FormatVersion)
 }
 
 type addSchemaUpdate struct {
@@ -193,9 +189,7 @@ func NewAddSchemaUpdate(schema *iceberg.Schema) 
*addSchemaUpdate {
 }
 
 func (u *addSchemaUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.AddSchema(u.Schema)
-
-       return err
+       return builder.AddSchema(u.Schema)
 }
 
 type setCurrentSchemaUpdate struct {
@@ -213,9 +207,7 @@ func NewSetCurrentSchemaUpdate(id int) 
*setCurrentSchemaUpdate {
 }
 
 func (u *setCurrentSchemaUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.SetCurrentSchemaID(u.SchemaID)
-
-       return err
+       return builder.SetCurrentSchemaID(u.SchemaID)
 }
 
 type addPartitionSpecUpdate struct {
@@ -236,9 +228,7 @@ func NewAddPartitionSpecUpdate(spec *iceberg.PartitionSpec, 
initial bool) *addPa
 }
 
 func (u *addPartitionSpecUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.AddPartitionSpec(u.Spec, u.initial)
-
-       return err
+       return builder.AddPartitionSpec(u.Spec, u.initial)
 }
 
 type setDefaultSpecUpdate struct {
@@ -256,9 +246,7 @@ func NewSetDefaultSpecUpdate(id int) *setDefaultSpecUpdate {
 }
 
 func (u *setDefaultSpecUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.SetDefaultSpecID(u.SpecID)
-
-       return err
+       return builder.SetDefaultSpecID(u.SpecID)
 }
 
 type addSortOrderUpdate struct {
@@ -279,9 +267,7 @@ func NewAddSortOrderUpdate(sortOrder *SortOrder, initial 
bool) *addSortOrderUpda
 }
 
 func (u *addSortOrderUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.AddSortOrder(u.SortOrder, u.initial)
-
-       return err
+       return builder.AddSortOrder(u.SortOrder, u.initial)
 }
 
 type setDefaultSortOrderUpdate struct {
@@ -299,9 +285,7 @@ func NewSetDefaultSortOrderUpdate(id int) 
*setDefaultSortOrderUpdate {
 }
 
 func (u *setDefaultSortOrderUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.SetDefaultSortOrderID(u.SortOrderID)
-
-       return err
+       return builder.SetDefaultSortOrderID(u.SortOrderID)
 }
 
 type addSnapshotUpdate struct {
@@ -318,9 +302,7 @@ func NewAddSnapshotUpdate(snapshot *Snapshot) 
*addSnapshotUpdate {
 }
 
 func (u *addSnapshotUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.AddSnapshot(u.Snapshot)
-
-       return err
+       return builder.AddSnapshot(u.Snapshot)
 }
 
 type setSnapshotRefUpdate struct {
@@ -366,14 +348,12 @@ func (u *setSnapshotRefUpdate) Apply(builder 
*MetadataBuilder) error {
                opts = append(opts, 
WithMinSnapshotsToKeep(u.MinSnapshotsToKeep))
        }
 
-       _, err := builder.SetSnapshotRef(
+       return builder.SetSnapshotRef(
                u.RefName,
                u.SnapshotID,
                u.RefType,
                opts...,
        )
-
-       return err
 }
 
 type setLocationUpdate struct {
@@ -390,9 +370,7 @@ func NewSetLocationUpdate(loc string) Update {
 }
 
 func (u *setLocationUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.SetLoc(u.Location)
-
-       return err
+       return builder.SetLoc(u.Location)
 }
 
 type setPropertiesUpdate struct {
@@ -410,9 +388,7 @@ func NewSetPropertiesUpdate(updates iceberg.Properties) 
*setPropertiesUpdate {
 }
 
 func (u *setPropertiesUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.SetProperties(u.Updates)
-
-       return err
+       return builder.SetProperties(u.Updates)
 }
 
 type removePropertiesUpdate struct {
@@ -431,9 +407,7 @@ func NewRemovePropertiesUpdate(removals []string) 
*removePropertiesUpdate {
 }
 
 func (u *removePropertiesUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.RemoveProperties(u.Removals)
-
-       return err
+       return builder.RemoveProperties(u.Removals)
 }
 
 type removeSnapshotsUpdate struct {
@@ -451,9 +425,7 @@ func NewRemoveSnapshotsUpdate(ids []int64) 
*removeSnapshotsUpdate {
 }
 
 func (u *removeSnapshotsUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.RemoveSnapshots(u.SnapshotIDs)
-
-       return err
+       return builder.RemoveSnapshots(u.SnapshotIDs)
 }
 
 func (u *removeSnapshotsUpdate) PostCommit(ctx context.Context, preTable 
*Table, postTable *Table) error {
@@ -546,9 +518,7 @@ func NewRemoveSnapshotRefUpdate(ref string) 
*removeSnapshotRefUpdate {
 }
 
 func (u *removeSnapshotRefUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.RemoveSnapshotRef(u.RefName)
-
-       return err
+       return builder.RemoveSnapshotRef(u.RefName)
 }
 
 type removeSpecUpdate struct {
@@ -566,9 +536,7 @@ func NewRemoveSpecUpdate(specIds []int) *removeSpecUpdate {
 }
 
 func (u *removeSpecUpdate) Apply(builder *MetadataBuilder) error {
-       _, err := builder.RemovePartitionSpecs(u.SpecIds)
-
-       return err
+       return builder.RemovePartitionSpecs(u.SpecIds)
 }
 
 type removeSchemasUpdate struct {


Reply via email to