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 41593a308 refactor(table)!: name path-based data file additions 
explicitly (#2308)
41593a308 is described below

commit 41593a308076eb33620da234aa9bb9d36a2c468a
Author: Minh Vu <[email protected]>
AuthorDate: Mon Oct 26 19:28:24 2026 +0100

    refactor(table)!: name path-based data file additions explicitly (#2308)
    
    * refactor(table)!: name path-based data file additions explicitly
    
    Signed-off-by: Minh Vu <[email protected]>
    
    * docs(release): note v1 API compatibility change
    
    * chore: sync release notes with main to resolve conflicts
    
    * docs(release): move compatibility note to a follow-up PR
    
    The note for this change lands in a follow-up release-notes PR so the 
pre-v1 renames can merge in parallel.
    
    ---------
    
    Signed-off-by: Minh Vu <[email protected]>
    Co-authored-by: Matt Topol <[email protected]>
---
 catalog/rest/rest_integration_test.go              |  6 +-
 catalog/rest/scan_planning_integration_test.go     |  2 +-
 catalog/sql/sql_integration_test.go                |  2 +-
 catalog/sql/sql_test.go                            |  2 +-
 table/addfiles_merge_regression_test.go            | 20 ++---
 table/arrow_utils.go                               |  2 +-
 table/arrow_utils_test.go                          |  4 +-
 table/branch_planning_test.go                      |  8 +-
 table/compaction/analyze_test.go                   |  4 +-
 table/compaction/cdc_stress_test.go                |  4 +-
 table/compaction/pos_delete_collect_ext_test.go    |  4 +-
 table/compaction_file_grain_test.go                |  2 +-
 table/data_file_meta.go                            |  2 +-
 table/dv_rewrite_test.go                           |  2 +-
 table/equality_delete_commit_test.go               | 10 +--
 table/equality_delete_reader_test.go               | 16 ++--
 table/equality_delete_writer_test.go               |  2 +-
 table/internal/parquet_files.go                    |  4 +-
 .../maintenance/orphan_cleanup_integration_test.go |  2 +-
 table/manifest_list_partitions_regression_test.go  | 10 +--
 table/mor_delete_conflict_test.go                  |  2 +-
 table/no_replay_removals_test.go                   |  6 +-
 table/occ_scenario_test.go                         |  8 +-
 table/read_perf_deletes_test.go                    |  4 +-
 table/replace_files_test.go                        | 14 ++--
 table/rewrite_data_files_test.go                   | 36 ++++-----
 table/rewrite_files_test.go                        | 20 ++---
 table/rewrite_manifests_test.go                    |  6 +-
 table/row_delta_test.go                            | 18 ++---
 table/snapshots_datafiles_internal_test.go         |  2 +-
 table/table_test.go                                | 90 +++++++++++-----------
 table/transaction.go                               | 16 ++--
 table/transaction_empty_append_test.go             | 10 +--
 table/transaction_internal_test.go                 |  8 +-
 table/transaction_test.go                          |  2 +-
 table/variant_shredded_test.go                     | 16 ++--
 table/write_file_io_test.go                        |  2 +-
 website/src/api.md                                 |  2 +-
 38 files changed, 187 insertions(+), 183 deletions(-)

diff --git a/catalog/rest/rest_integration_test.go 
b/catalog/rest/rest_integration_test.go
index 7c4dfffb5..ea9d66cbd 100644
--- a/catalog/rest/rest_integration_test.go
+++ b/catalog/rest/rest_integration_test.go
@@ -385,7 +385,7 @@ func (s *RestIntegrationSuite) TestWriteCommitTable() {
        defer mustFS(s.T(), tbl).Remove(s.ctx, pqfile)
 
        txn := tbl.NewTransaction()
-       s.Require().NoError(txn.AddFiles(s.ctx, []string{pqfile}, nil, false))
+       s.Require().NoError(txn.AddDataFilesByPath(s.ctx, []string{pqfile}, 
nil, false))
        updated, err := txn.Commit(s.ctx)
        s.Require().NoError(err)
 
@@ -465,10 +465,10 @@ func (s *RestIntegrationSuite) TestMultiTableCommit() {
 
        // Build transactions that add data files to each table.
        tx1 := tbl1.NewTransaction()
-       s.Require().NoError(tx1.AddFiles(s.ctx, []string{pq1}, nil, false))
+       s.Require().NoError(tx1.AddDataFilesByPath(s.ctx, []string{pq1}, nil, 
false))
 
        tx2 := tbl2.NewTransaction()
-       s.Require().NoError(tx2.AddFiles(s.ctx, []string{pq2}, nil, false))
+       s.Require().NoError(tx2.AddDataFilesByPath(s.ctx, []string{pq2}, nil, 
false))
 
        // Commit both atomically via MultiTableTransaction.
        mtx, err := catalog.NewMultiTableTransaction(s.cat)
diff --git a/catalog/rest/scan_planning_integration_test.go 
b/catalog/rest/scan_planning_integration_test.go
index 8f0e7cc94..ae508031d 100644
--- a/catalog/rest/scan_planning_integration_test.go
+++ b/catalog/rest/scan_planning_integration_test.go
@@ -268,7 +268,7 @@ func (s *RestIntegrationSuite) createScanPlanningTable(cat 
*rest.Catalog, ident
        s.T().Cleanup(func() { s.Require().NoError(mustFS(s.T(), 
tbl).Remove(s.ctx, dataPath)) })
 
        txn := tbl.NewTransaction()
-       s.Require().NoError(txn.AddFiles(s.ctx, []string{dataPath}, nil, false))
+       s.Require().NoError(txn.AddDataFilesByPath(s.ctx, []string{dataPath}, 
nil, false))
        updated, err := txn.Commit(s.ctx)
        s.Require().NoError(err)
        s.Require().NotNil(updated.CurrentSnapshot())
diff --git a/catalog/sql/sql_integration_test.go 
b/catalog/sql/sql_integration_test.go
index 78ece6998..802816465 100644
--- a/catalog/sql/sql_integration_test.go
+++ b/catalog/sql/sql_integration_test.go
@@ -297,7 +297,7 @@ func (s *SQLIntegrationSuite) TestWriteCommitTable() {
        }(fs, pqfile)
 
        txn := tbl.NewTransaction()
-       s.Require().NoError(txn.AddFiles(s.ctx, []string{pqfile}, nil, false))
+       s.Require().NoError(txn.AddDataFilesByPath(s.ctx, []string{pqfile}, 
nil, false))
        updated, err := txn.Commit(s.ctx)
        s.Require().NoError(err)
 
diff --git a/catalog/sql/sql_test.go b/catalog/sql/sql_test.go
index 7e74d8b39..7a88b76b0 100644
--- a/catalog/sql/sql_test.go
+++ b/catalog/sql/sql_test.go
@@ -2760,7 +2760,7 @@ func (s *SqliteCatalogTestSuite) TestCommitTable() {
                s.EqualValues(0, tbl.Metadata().CurrentSchema().ID)
 
                tx := tbl.NewTransaction()
-               s.Require().NoError(tx.AddFiles(ctx, []string{pqfile}, nil, 
false))
+               s.Require().NoError(tx.AddDataFilesByPath(ctx, 
[]string{pqfile}, nil, false))
                updated, err := tx.Commit(ctx)
                s.Require().NoError(err)
 
diff --git a/table/addfiles_merge_regression_test.go 
b/table/addfiles_merge_regression_test.go
index cac2a2580..0e4ee3cf1 100644
--- a/table/addfiles_merge_regression_test.go
+++ b/table/addfiles_merge_regression_test.go
@@ -17,14 +17,14 @@
 
 package table_test
 
-// Regression test for: AddFiles() ignoring commit.manifest-merge.enabled.
+// Regression test for: AddDataFilesByPath() ignoring 
commit.manifest-merge.enabled.
 //
-// Root cause: transaction.go hardcoded .fastAppend() in AddFiles(), bypassing
+// Root cause: transaction.go hardcoded .fastAppend() in AddDataFilesByPath(), 
bypassing
 // appendSnapshotProducer() which reads ManifestMergeEnabledKey.
 //
 // Java reference: BaseTable.newAppend() always uses MergeAppend (merge 
default=true).
 // AddDataFiles() and Append() in Go both correctly call 
appendSnapshotProducer().
-// Only AddFiles() was missing the call.
+// Only AddDataFilesByPath() was missing the call.
 //
 // Fix: change line 780 in transaction.go from:
 //
@@ -71,10 +71,10 @@ func (c *mergeCatalog) CommitTable(_ context.Context, _ 
table.Identifier, _ []ta
        return meta, "", nil
 }
 
-// TestAddFilesRespectsMergeEnabled verifies that AddFiles() respects the
+// TestAddFilesRespectsMergeEnabled verifies that AddDataFilesByPath() 
respects the
 // commit.manifest-merge.enabled table property.
 //
-// Before fix: 3 sequential AddFiles() commits produce 3 manifests because
+// Before fix: 3 sequential AddDataFilesByPath() commits produce 3 manifests 
because
 // fastAppend() is hardcoded and the merge property is ignored.
 //
 // After fix: with minCountToMerge=2, the 3rd commit triggers a merge and
@@ -131,7 +131,7 @@ func TestAddFilesRespectsMergeEnabled(t *testing.T) {
                cat,
        )
 
-       // Perform 3 separate AddFiles commits — simulating the committer's 
1-per-batch pattern.
+       // Perform 3 separate AddDataFilesByPath commits — simulating the 
committer's 1-per-batch pattern.
        // minCountToMerge=2 means the 3rd commit should trigger a merge.
        const numCommits = 3
        for i := range numCommits {
@@ -139,8 +139,8 @@ func TestAddFilesRespectsMergeEnabled(t *testing.T) {
                writeParquet(filePath)
 
                txn := tbl.NewTransaction()
-               require.NoError(t, txn.AddFiles(ctx, []string{filePath}, nil, 
false),
-                       "AddFiles commit %d failed", i+1)
+               require.NoError(t, txn.AddDataFilesByPath(ctx, 
[]string{filePath}, nil, false),
+                       "AddDataFilesByPath commit %d failed", i+1)
 
                tbl, err = txn.Commit(ctx)
                require.NoError(t, err, "Commit %d failed", i+1)
@@ -155,8 +155,8 @@ func TestAddFilesRespectsMergeEnabled(t *testing.T) {
        // After fix: merge fires on commit 3 (accumulated 3 > minCount 2) → 1 
merged manifest.
        // Before fix: 3 manifests (fastAppend carries all forward without 
merging).
        assert.Equal(t, 1, len(manifests),
-               "expected 1 merged manifest after %d AddFiles commits with 
manifest merge enabled "+
+               "expected 1 merged manifest after %d AddDataFilesByPath commits 
with manifest merge enabled "+
                        "(minCountToMerge=2), got %d manifests — "+
-                       "AddFiles() is not respecting 
commit.manifest-merge.enabled",
+                       "AddDataFilesByPath() is not respecting 
commit.manifest-merge.enabled",
                numCommits, len(manifests))
 }
diff --git a/table/arrow_utils.go b/table/arrow_utils.go
index 9173bfc15..0c4752667 100644
--- a/table/arrow_utils.go
+++ b/table/arrow_utils.go
@@ -1881,7 +1881,7 @@ func filesToDataFiles(ctx context.Context, fileIO 
iceio.IO, meta *MetadataBuilde
                                }
                        }()
 
-                       // Pass 0 so AddFiles does not claim sort_order_id on 
files
+                       // Pass 0 so AddDataFilesByPath does not claim 
sort_order_id on files
                        // it did not write (#1184). Callers that know the 
file's
                        // sort layout use FileToDataFile with an explicit id.
                        dataFiles[i] = fileToDataFile(ctx, fileIO, filePath, 
currentSchema, currentSpec, 0, meta.props)
diff --git a/table/arrow_utils_test.go b/table/arrow_utils_test.go
index 7d94abd1d..621d963ad 100644
--- a/table/arrow_utils_test.go
+++ b/table/arrow_utils_test.go
@@ -3497,7 +3497,7 @@ func TestGeoTypeParquetRoundTrip(t *testing.T) {
 // stored ARROW:schema, as Java/Spark writers produce. geoarrow-go maps the
 // Parquet GEOMETRY logical type to geoarrow.wkb on read, so the file projects
 // onto a matching geometry column. A binary table column rejects it, both on
-// read and in the FileToDataFile (AddFiles) schema check: geo types are
+// read and in the FileToDataFile (AddDataFilesByPath) schema check: geo types 
are
 // deliberately not promotable to or from binary (see iceberg.PromoteType and
 // https://github.com/apache/iceberg-go/issues/2193), and the binary subtests
 // assert that rejection.
@@ -3603,7 +3603,7 @@ func TestGeoParquetReadWithoutStoredSchema(t *testing.T) {
                assert.ErrorContains(t, err, "cannot promote 
geometry(srid:4326) to binary")
        })
 
-       t.Run("AddFiles schema check rejects binary column", func(t *testing.T) 
{
+       t.Run("AddDataFilesByPath schema check rejects binary column", func(t 
*testing.T) {
                binarySchema := iceberg.NewSchema(0, iceberg.NestedField{ID: 1, 
Name: "geom", Type: iceberg.PrimitiveTypes.Binary, Required: false})
                _, err := table.FileToDataFile(context.Background(), 
iceio.LocalFS{}, path, binarySchema, *iceberg.UnpartitionedSpec, 0, nil)
                require.Error(t, err)
diff --git a/table/branch_planning_test.go b/table/branch_planning_test.go
index 35951a96d..819c494d9 100644
--- a/table/branch_planning_test.go
+++ b/table/branch_planning_test.go
@@ -430,7 +430,7 @@ func TestBranchAddDataFilesDuplicateCheckUsesBranchHead(t 
*testing.T) {
        })
 }
 
-// AddFiles runs the same check from paths, through its own snapshot lookup.
+// AddDataFilesByPath runs the same check from paths, through its own snapshot 
lookup.
 func TestBranchAddFilesDuplicateCheckUsesBranchHead(t *testing.T) {
        t.Run("rejects a file the branch already references", func(t 
*testing.T) {
                tbl := seedDivergentBranch(t, newBranchPlanningTable(t, nil))
@@ -439,7 +439,7 @@ func TestBranchAddFilesDuplicateCheckUsesBranchHead(t 
*testing.T) {
                txn, err := tbl.NewTransactionOnBranch(branchPlanningRef)
                require.NoError(t, err)
 
-               err = txn.AddFiles(t.Context(), []string{branchOnly}, nil, 
false)
+               err = txn.AddDataFilesByPath(t.Context(), []string{branchOnly}, 
nil, false)
                require.ErrorContains(t, err, "cannot add files that are 
already referenced by table")
                assert.Contains(t, err.Error(), branchOnly)
        })
@@ -451,7 +451,7 @@ func TestBranchAddFilesDuplicateCheckUsesBranchHead(t 
*testing.T) {
                txn, err := tbl.NewTransactionOnBranch(branchPlanningRef)
                require.NoError(t, err)
 
-               require.NoError(t, txn.AddFiles(t.Context(), 
[]string{mainOnly}, nil, false))
+               require.NoError(t, txn.AddDataFilesByPath(t.Context(), 
[]string{mainOnly}, nil, false))
                tbl, err = txn.Commit(t.Context())
                require.NoError(t, err)
 
@@ -602,7 +602,7 @@ func TestBranchRowDeltaResolvesRemovedDeletesOnBranchHead(t 
*testing.T) {
        writeParquetFile(t, dataPath, arrowSchema, 
`[{"id":1},{"id":2},{"id":3},{"id":4},{"id":5}]`)
 
        txn := tbl.NewTransaction()
-       require.NoError(t, txn.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, txn.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = txn.Commit(t.Context())
        require.NoError(t, err)
 
diff --git a/table/compaction/analyze_test.go b/table/compaction/analyze_test.go
index 2b51582c3..7d0b52e10 100644
--- a/table/compaction/analyze_test.go
+++ b/table/compaction/analyze_test.go
@@ -113,7 +113,7 @@ func TestAnalyze_SmallFiles(t *testing.T) {
                        fmt.Sprintf(`[{"id": %d, "data": "row-%d"}]`, i+1, i+1))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -147,7 +147,7 @@ func TestAnalyze_AllOptimal(t *testing.T) {
        writeTestParquetFile(t, dataPath, arrowSc, `[{"id": 1, "data": 
"hello"}]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
diff --git a/table/compaction/cdc_stress_test.go 
b/table/compaction/cdc_stress_test.go
index bec98d901..78012de95 100644
--- a/table/compaction/cdc_stress_test.go
+++ b/table/compaction/cdc_stress_test.go
@@ -83,7 +83,7 @@ func TestCDCStress(t *testing.T) {
        seedPath := tbl.Location() + "/data/seed.parquet"
        writeParquet(t, seedPath, arrowSc, generateRowsJSON(baselineRows))
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{seedPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{seedPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -99,7 +99,7 @@ func TestCDCStress(t *testing.T) {
                        fmt.Sprintf(`[{"id": %d, "data": "cdc-%d"}]`, extraID, 
cycle))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
 
diff --git a/table/compaction/pos_delete_collect_ext_test.go 
b/table/compaction/pos_delete_collect_ext_test.go
index f757e99b4..eb83d9757 100644
--- a/table/compaction/pos_delete_collect_ext_test.go
+++ b/table/compaction/pos_delete_collect_ext_test.go
@@ -49,7 +49,7 @@ func TestCollectDeadPositionDeletes(t *testing.T) {
                p := tbl.Location() + fmt.Sprintf("/data/d-%d.parquet", i)
                writeParquet(t, p, arrowSc, fmt.Sprintf(`[{"id": %d, "data": 
"r%d"}]`, i+1, i+1))
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(ctx, []string{p}, nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(ctx, []string{p}, nil, 
false))
                tbl, err = tx.Commit(ctx)
                require.NoError(t, err)
        }
@@ -160,7 +160,7 @@ func TestDeadPositionDeleteRoundTrip(t *testing.T) {
                writeParquet(t, dataPaths[i], arrowSc, fmt.Sprintf(`[{"id": %d, 
"data": "r%d"}]`, i+1, i+1))
        }
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(ctx, dataPaths, nil, false))
+       require.NoError(t, tx.AddDataFilesByPath(ctx, dataPaths, nil, false))
        tbl, err = tx.Commit(ctx)
        require.NoError(t, err)
 
diff --git a/table/compaction_file_grain_test.go 
b/table/compaction_file_grain_test.go
index 5631297d0..ad8b929a1 100644
--- a/table/compaction_file_grain_test.go
+++ b/table/compaction_file_grain_test.go
@@ -56,7 +56,7 @@ func TestCompactionPreservesSplitFileRows(t *testing.T) {
                                        }
                                        tx := tbl.NewTransaction()
                                        require.NoError(t, 
tx.SetProperties(iceberg.Properties{table.ReadSplitTargetSizeKey: splitSize}))
-                                       require.NoError(t, 
tx.AddFiles(t.Context(), []string{path}, nil, false))
+                                       require.NoError(t, 
tx.AddDataFilesByPath(t.Context(), []string{path}, nil, false))
                                        tbl, err = tx.Commit(t.Context())
                                        require.NoError(t, err)
                                        scan := tbl.Scan()
diff --git a/table/data_file_meta.go b/table/data_file_meta.go
index aabc710f0..b04bca0af 100644
--- a/table/data_file_meta.go
+++ b/table/data_file_meta.go
@@ -293,7 +293,7 @@ func DataFileFromMetadata(args DataFileArgs) 
(iceberg.DataFile, error) {
                        statsPlan,
                        pathMapping,
                        tblutils.VariantFieldIDsFromSchema(args.Schema),
-                       // Metadata-only path: no file is read here, so no 
arrow schema; AddFiles recomputes variant bounds in fileToDataFile.
+                       // Metadata-only path: no file is read here, so no 
arrow schema; AddDataFilesByPath recomputes variant bounds in fileToDataFile.
                        nil,
                )
                if stats == nil {
diff --git a/table/dv_rewrite_test.go b/table/dv_rewrite_test.go
index 028f461b6..f18ae5d02 100644
--- a/table/dv_rewrite_test.go
+++ b/table/dv_rewrite_test.go
@@ -239,7 +239,7 @@ func 
TestRewriteFiles_DataSequenceNumberKeepsDVApplicableToReplacement(t *testin
        oldDataPath := tbl.Location() + "/data/old-data.parquet"
        writeParquetFile(t, oldDataPath, arrowSc, 
`[{"id":1,"data":"a"},{"id":2,"data":"b"}]`)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{oldDataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{oldDataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
diff --git a/table/equality_delete_commit_test.go 
b/table/equality_delete_commit_test.go
index fbedd9338..76e06c52f 100644
--- a/table/equality_delete_commit_test.go
+++ b/table/equality_delete_commit_test.go
@@ -61,7 +61,7 @@ func TestCommitEqualityDeletesUnpartitioned(t *testing.T) {
        ]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
        assertRowCount(t, tbl, 5)
@@ -190,7 +190,7 @@ func TestCommitEqualityDeletesConcurrentAppendConflict(t 
*testing.T) {
                {"id": 3, "data": "c"}
        ]`)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -205,7 +205,7 @@ func TestCommitEqualityDeletesConcurrentAppendConflict(t 
*testing.T) {
        peerPath := tbl.Location() + "/data/peer.parquet"
        writeParquetFile(t, peerPath, arrowSc, `[{"id": 4, "data": "d"}]`)
        peerTxn := tbl.NewTransaction()
-       require.NoError(t, peerTxn.AddFiles(t.Context(), []string{peerPath}, 
nil, false))
+       require.NoError(t, peerTxn.AddDataFilesByPath(t.Context(), 
[]string{peerPath}, nil, false))
        _, err = peerTxn.Commit(t.Context())
        require.NoError(t, err)
 
@@ -241,7 +241,7 @@ func 
TestCommitEqualityDeletesSnapshotIsolationAllowsConcurrentAppend(t *testing
                {"id": 2, "data": "b"}
        ]`)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -253,7 +253,7 @@ func 
TestCommitEqualityDeletesSnapshotIsolationAllowsConcurrentAppend(t *testing
        peerPath := tbl.Location() + "/data/peer.parquet"
        writeParquetFile(t, peerPath, arrowSc, `[{"id": 3, "data": "c"}]`)
        peerTxn := tbl.NewTransaction()
-       require.NoError(t, peerTxn.AddFiles(t.Context(), []string{peerPath}, 
nil, false))
+       require.NoError(t, peerTxn.AddDataFilesByPath(t.Context(), 
[]string{peerPath}, nil, false))
        _, err = peerTxn.Commit(t.Context())
        require.NoError(t, err)
 
diff --git a/table/equality_delete_reader_test.go 
b/table/equality_delete_reader_test.go
index 412dde78d..e2a064e0a 100644
--- a/table/equality_delete_reader_test.go
+++ b/table/equality_delete_reader_test.go
@@ -97,7 +97,7 @@ func TestEqualityDeleteReadRoundTrip(t *testing.T) {
        ]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
        assertRowCount(t, tbl, 5)
@@ -197,7 +197,7 @@ func 
TestEqualityDeleteReadPrunesNonOverlappingDeleteFiles(t *testing.T) {
        ]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(ctx, dataPaths, nil, false))
+       require.NoError(t, tx.AddDataFilesByPath(ctx, dataPaths, nil, false))
        tbl, err = tx.Commit(ctx)
        require.NoError(t, err)
 
@@ -276,7 +276,7 @@ func 
TestEqualityDeleteReadResolvesRenamedDataColumnByFieldID(t *testing.T) {
        ]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -400,7 +400,7 @@ func 
TestEqualityDeleteReadResolvesLiteralDottedColumnName(t *testing.T) {
        ]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err := tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -447,7 +447,7 @@ func TestEqualityDeleteReadRejectsAmbiguousColumns(t 
*testing.T) {
        dataPath := tbl.Location() + "/data/data.parquet"
        writeParquetFile(t, dataPath, arrowSc, `[{"id": 1, "data": "one"}]`)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -709,7 +709,7 @@ func TestEqualityDeleteMultiColumnKey(t *testing.T) {
        ]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -837,7 +837,7 @@ func TestEqualityDeleteNullableFastPathKeys(t *testing.T) {
                                writeParquetFile(t, dataPath, arrowSc, 
tt.dataJSON)
 
                                tx := tbl.NewTransaction()
-                               require.NoError(t, tx.AddFiles(t.Context(), 
[]string{dataPath}, nil, false))
+                               require.NoError(t, 
tx.AddDataFilesByPath(t.Context(), []string{dataPath}, nil, false))
                                tbl, err = tx.Commit(t.Context())
                                require.NoError(t, err)
 
@@ -928,7 +928,7 @@ func TestEqualityDeleteNullableCompositeFastPathKey(t 
*testing.T) {
                        writeParquetFile(t, dataPath, arrowSc, tt.dataJSON)
 
                        tx := tbl.NewTransaction()
-                       require.NoError(t, tx.AddFiles(t.Context(), 
[]string{dataPath}, nil, false))
+                       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                        tbl, err = tx.Commit(t.Context())
                        require.NoError(t, err)
 
diff --git a/table/equality_delete_writer_test.go 
b/table/equality_delete_writer_test.go
index c9a3df6ce..436cfcb1a 100644
--- a/table/equality_delete_writer_test.go
+++ b/table/equality_delete_writer_test.go
@@ -522,7 +522,7 @@ func TestWriteEqualityDeleteFilesCommitViaRowDelta(t 
*testing.T) {
        ]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
        assertRowCount(t, tbl, 3)
diff --git a/table/internal/parquet_files.go b/table/internal/parquet_files.go
index 648874036..9b102b225 100644
--- a/table/internal/parquet_files.go
+++ b/table/internal/parquet_files.go
@@ -537,8 +537,8 @@ type geoColumn struct {
 // Parquet drops the Statistics block (min, max, null count) for GEOMETRY and
 // GEOGRAPHY columns because their sort order is undefined, so these metrics 
are
 // computed from the Arrow data instead. Geo files imported via
-// DataFileStatsFromMeta alone (e.g. AddFiles) get no geo null counts or 
bounds,
-// which costs pruning but never gives a wrong answer.
+// DataFileStatsFromMeta alone (e.g. AddDataFilesByPath) get no geo null counts
+// or bounds, which costs pruning but never gives a wrong answer.
 func collectGeoColumns(sc *arrow.Schema, colMapping map[string]int) 
[]geoColumn {
        var result []geoColumn
        for i, f := range sc.Fields() {
diff --git a/table/maintenance/orphan_cleanup_integration_test.go 
b/table/maintenance/orphan_cleanup_integration_test.go
index 2c097e654..0004f43ac 100644
--- a/table/maintenance/orphan_cleanup_integration_test.go
+++ b/table/maintenance/orphan_cleanup_integration_test.go
@@ -157,7 +157,7 @@ func (s *OrphanCleanupIntegrationSuite) 
createTableWithData() *table.Table {
 
        // Commit the data file to the table
        txn := tbl.NewTransaction()
-       s.Require().NoError(txn.AddFiles(s.ctx, []string{dataFile}, nil, false))
+       s.Require().NoError(txn.AddDataFilesByPath(s.ctx, []string{dataFile}, 
nil, false))
        updatedTable, err := txn.Commit(s.ctx)
        s.Require().NoError(err)
 
diff --git a/table/manifest_list_partitions_regression_test.go 
b/table/manifest_list_partitions_regression_test.go
index 56c3afa4a..90ad2b1fb 100644
--- a/table/manifest_list_partitions_regression_test.go
+++ b/table/manifest_list_partitions_regression_test.go
@@ -17,13 +17,13 @@
 
 package table_test
 
-// End-to-end regression test for issue #1309: AddFiles() after a prior 
Delete()
+// End-to-end regression test for issue #1309: AddDataFilesByPath() after a 
prior Delete()
 // produces a manifest list whose `partitions` field serializes as Avro null,
 // which Redshift Spectrum rejects ("Wrong type in Avro file. Field: 
partitions.
 // Expected: 12 (union). Got: 7 (null)").
 //
 // The trigger is the inheritance path: Delete() uses the mergeOverwrite 
producer
-// and the following AddFiles() uses fastAppend, which inherits the delete
+// and the following AddDataFilesByPath() uses fastAppend, which inherits the 
delete
 // snapshot's manifests unchanged. When the manifest list is rewritten, an
 // inherited manifest whose `partitions` summaries are present-but-empty (an
 // unpartitioned table has zero field summaries) round-trips as a non-nil 
pointer
@@ -149,13 +149,13 @@ func 
TestManifestListPartitionsPresentAfterDeleteThenAddFiles(t *testing.T) {
        tbl, err = tbl.Delete(ctx, iceberg.EqualTo(iceberg.Reference("id"), 
int64(2)), nil)
        require.NoError(t, err)
 
-       // Step 3 — AddFiles (fastAppend) inherits the delete snapshot's 
manifests.
+       // Step 3 — AddDataFilesByPath (fastAppend) inherits the delete 
snapshot's manifests.
        // This is the commit whose manifest list #1309 reports as unreadable.
        extraPath := location + "/data-extra.parquet"
        writeInt64Parquet(t, fs, extraPath, arrowSchema, []int64{4, 5})
 
        txn := tbl.NewTransaction()
-       require.NoError(t, txn.AddFiles(ctx, []string{extraPath}, nil, false))
+       require.NoError(t, txn.AddDataFilesByPath(ctx, []string{extraPath}, 
nil, false))
        tbl, err = txn.Commit(ctx)
        require.NoError(t, err)
 
@@ -187,7 +187,7 @@ func 
TestManifestListPartitionsPresentAfterDeleteThenAddFiles(t *testing.T) {
                "iceberg-go must read the appended rows back with their real 
values")
 }
 
-// writeInt64Parquet writes a single-column ("id") Parquet file so AddFiles 
has a
+// writeInt64Parquet writes a single-column ("id") Parquet file so 
AddDataFilesByPath has a
 // real file to ingest.
 func writeInt64Parquet(t *testing.T, fs iceio.LocalFS, path string, 
arrowSchema *arrow.Schema, ids []int64) {
        t.Helper()
diff --git a/table/mor_delete_conflict_test.go 
b/table/mor_delete_conflict_test.go
index 84778c39b..17adaa519 100644
--- a/table/mor_delete_conflict_test.go
+++ b/table/mor_delete_conflict_test.go
@@ -140,7 +140,7 @@ func 
TestMergeOnReadDeleteOfDataFileAddedInSameTransaction(t *testing.T) {
        writeRowDeltaDataFile(t, tbl, path, 11, 12)
 
        txn := tbl.NewTransaction()
-       require.NoError(t, txn.AddFiles(ctx, []string{path}, nil, false))
+       require.NoError(t, txn.AddDataFilesByPath(ctx, []string{path}, nil, 
false))
        require.NoError(t, txn.Delete(ctx, 
iceberg.EqualTo(iceberg.Reference("id"), int64(11)), nil))
        tbl, err := txn.Commit(ctx)
        require.NoError(t, err)
diff --git a/table/no_replay_removals_test.go b/table/no_replay_removals_test.go
index 34e3b181b..36dbf2fd6 100644
--- a/table/no_replay_removals_test.go
+++ b/table/no_replay_removals_test.go
@@ -153,7 +153,7 @@ func TestReplaceFilesWithRemovalsFailsInsteadOfReplaying(t 
*testing.T) {
        writeParquetFile(t, dataPath, arrowSc,
                `[{"id": 1, "data": "alpha"}, {"id": 2, "data": "beta"}, {"id": 
3, "data": "gamma"}]`)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -250,7 +250,7 @@ func TestReplaceFilesDataOnlyStillReplays(t *testing.T) {
        writeParquetFile(t, dataPath, arrowSc,
                `[{"id": 1, "data": "alpha"}, {"id": 2, "data": "beta"}]`)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        // Overwrites validate added data files under the default
        // serializable isolation; relax to snapshot so the peer's append is
        // not rejected as a semantic conflict and the replay itself is
@@ -285,7 +285,7 @@ func TestReplaceFilesDataOnlyStillReplays(t *testing.T) {
        peerPath := tbl.Location() + "/data/data-peer.parquet"
        writeParquetFile(t, peerPath, arrowSc, `[{"id": 100, "data": "peer"}]`)
        peerTxn := tbl.NewTransaction()
-       require.NoError(t, peerTxn.AddFiles(t.Context(), []string{peerPath}, 
nil, false))
+       require.NoError(t, peerTxn.AddDataFilesByPath(t.Context(), 
[]string{peerPath}, nil, false))
        _, err = peerTxn.Commit(t.Context())
        require.NoError(t, err)
 
diff --git a/table/occ_scenario_test.go b/table/occ_scenario_test.go
index 452924a33..ff3b68a28 100644
--- a/table/occ_scenario_test.go
+++ b/table/occ_scenario_test.go
@@ -497,7 +497,7 @@ func (s *OCCScenarioTestSuite) 
TestReplaceFilesNoResurrectionAfterConflict() {
                `[{"id":1,"val":"a"},{"id":2,"val":"b"},{"id":3,"val":"c"}]`)
 
        tx := baseTbl.NewTransaction()
-       s.Require().NoError(tx.AddFiles(s.ctx, []string{file0Path}, nil, false))
+       s.Require().NoError(tx.AddDataFilesByPath(s.ctx, []string{file0Path}, 
nil, false))
        _, err = tx.Commit(s.ctx)
        s.Require().NoError(err)
        metaBase := cat.current
@@ -511,7 +511,7 @@ func (s *OCCScenarioTestSuite) 
TestReplaceFilesNoResurrectionAfterConflict() {
        writeParquetFile(s.T(), peerPath, arrowSc, `[{"id":4,"val":"d"}]`)
 
        ptx := peerTbl.NewTransaction()
-       s.Require().NoError(ptx.AddFiles(s.ctx, []string{peerPath}, nil, false))
+       s.Require().NoError(ptx.AddDataFilesByPath(s.ctx, []string{peerPath}, 
nil, false))
        _, err = ptx.Commit(s.ctx)
        s.Require().NoError(err)
        metaPeer := peerCat.current
@@ -589,7 +589,7 @@ func (s *OCCScenarioTestSuite) 
TestReplaceFilesNoResurrectionAfterTwoConflicts()
                `[{"id":1,"val":"a"},{"id":2,"val":"b"},{"id":3,"val":"c"}]`)
 
        tx := baseTbl.NewTransaction()
-       s.Require().NoError(tx.AddFiles(s.ctx, []string{file0Path}, nil, false))
+       s.Require().NoError(tx.AddDataFilesByPath(s.ctx, []string{file0Path}, 
nil, false))
        _, err = tx.Commit(s.ctx)
        s.Require().NoError(err)
        metaBase := cat.current
@@ -607,7 +607,7 @@ func (s *OCCScenarioTestSuite) 
TestReplaceFilesNoResurrectionAfterTwoConflicts()
                peer++
 
                ptx := peerTbl.NewTransaction()
-               s.Require().NoError(ptx.AddFiles(s.ctx, []string{peerPath}, 
nil, false))
+               s.Require().NoError(ptx.AddDataFilesByPath(s.ctx, 
[]string{peerPath}, nil, false))
                _, err := ptx.Commit(s.ctx)
                s.Require().NoError(err)
 
diff --git a/table/read_perf_deletes_test.go b/table/read_perf_deletes_test.go
index 350edeed1..f586e8220 100644
--- a/table/read_perf_deletes_test.go
+++ b/table/read_perf_deletes_test.go
@@ -61,7 +61,7 @@ func TestReadPerfUnderDeletePressure(t *testing.T) {
        writeParquetFile(t, dataPath, arrowSc, generateRowsJSON(numRows))
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -210,7 +210,7 @@ func setupTableWithDeletes(tb testing.TB, numRows, 
numDeletes int) *table.Table
 
        ctx := context.Background()
        tx := tbl.NewTransaction()
-       require.NoError(tb, tx.AddFiles(ctx, []string{dataPath}, nil, false))
+       require.NoError(tb, tx.AddDataFilesByPath(ctx, []string{dataPath}, nil, 
false))
        tbl, err = tx.Commit(ctx)
        require.NoError(tb, err)
 
diff --git a/table/replace_files_test.go b/table/replace_files_test.go
index a8e2e62fc..172de05ad 100644
--- a/table/replace_files_test.go
+++ b/table/replace_files_test.go
@@ -123,7 +123,7 @@ func TestReplaceFiles_DataAndDeleteFiles(t *testing.T) {
        ]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
        assertRowCount(t, tbl, 3)
@@ -164,7 +164,7 @@ func TestReplaceFiles_DataAndDeleteFiles(t *testing.T) {
                {"id": 3, "data": "gamma"}
        ]`)
 
-       // Build new DataFile directly (not via AddFiles which would commit it)
+       // Build new DataFile directly (not via AddDataFilesByPath which would 
commit it)
        newDataFileBuilder, err := iceberg.NewDataFileBuilder(
                *iceberg.UnpartitionedSpec, iceberg.EntryContentData,
                newDataPath, iceberg.ParquetFile, nil, nil, nil, 2, 512)
@@ -200,7 +200,7 @@ func 
TestReplaceFilesWithDeleteFilesPreservesDataSequenceNumber(t *testing.T) {
        dataPath := tbl.Location() + "/data/data.parquet"
        writeParquetFile(t, dataPath, arrowSc, 
`[{"id":1,"data":"a"},{"id":2,"data":"b"}]`)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -497,7 +497,7 @@ func 
TestReplaceFilesWithDeleteFilesRejectsPartialPositionDeleteToDVRewrite(t *t
        dataPath := tbl.Location() + "/data/data.parquet"
        writeParquetFile(t, dataPath, arrowSc, 
`[{"id":1,"data":"a"},{"id":2,"data":"b"}]`)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -802,7 +802,7 @@ func 
TestReplaceFiles_DelegatesToReplaceDataFilesWhenNoDeleteFiles(t *testing.T)
        writeParquetFile(t, dataPath, arrowSc, `[{"id": 1, "data": "hello"}]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -842,7 +842,7 @@ func TestReplaceFiles_ValidationErrors(t *testing.T) {
        writeParquetFile(t, dataPath, arrowSc, `[{"id": 1, "data": "hello"}]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -968,7 +968,7 @@ func seedDataFilesWithPositionDeletes(t *testing.T) 
(*table.Table, []table.FileS
        }
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), dataPaths, nil, false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), dataPaths, nil, 
false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
diff --git a/table/rewrite_data_files_test.go b/table/rewrite_data_files_test.go
index 242fe6436..0ba78aa92 100644
--- a/table/rewrite_data_files_test.go
+++ b/table/rewrite_data_files_test.go
@@ -195,7 +195,7 @@ func TestRewriteDataFiles_SmallFiles(t *testing.T) {
                        fmt.Sprintf(`[{"id": %d, "data": "row-%d"}]`, i+1, i+1))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -241,7 +241,7 @@ func TestRewriteDataFiles_WithPositionDeletes(t *testing.T) 
{
                        `[{"id": %d, "data": "a"}, {"id": %d, "data": "b"}]`, 
i*2+1, i*2+2))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -327,7 +327,7 @@ func TestExecuteCompactionGroup_TargetFileSizeForwarded(t 
*testing.T) {
                writeParquetFile(t, dataPath, arrowSc,
                        fmt.Sprintf(`[{"id": %d, "data": "row-%d"}]`, i+1, i+1))
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -388,7 +388,7 @@ func 
TestExecuteCompactionGroup_ParquetRowGroupLimitForwarded(t *testing.T) {
        dataPath := tbl.Location() + "/data/rg-limit.parquet"
        writeParquetFile(t, dataPath, arrowSc, rows.String())
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -443,7 +443,7 @@ func TestExecuteCompactionGroup_ScanConcurrencyForwarded(t 
*testing.T) {
                writeParquetFile(t, dataPath, arrowSc,
                        fmt.Sprintf(`[{"id": %d, "data": "row-%d"}]`, i+1, i+1))
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -484,7 +484,7 @@ func TestRewriteDataFiles_GroupOptionsForwarded(t 
*testing.T) {
                writeParquetFile(t, dataPath, arrowSc,
                        fmt.Sprintf(`[{"id": %d, "data": "row-%d"}]`, i+1, i+1))
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -549,7 +549,7 @@ func TestRewriteDataFiles_PartialProgress(t *testing.T) {
                        fmt.Sprintf(`[{"id": %d, "data": "row"}]`, i+1))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -594,7 +594,7 @@ func 
TestRewriteDataFiles_PartialProgressMaxCommitsProcessesAllGroups(t *testing
                writeParquetFile(t, dataPath, arrowSc,
                        fmt.Sprintf(`[{"id": %d, "data": "row"}]`, i+1))
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -634,7 +634,7 @@ func 
TestRewriteDataFiles_PartialProgressRejectsCommittedParentReuse(t *testing.
        dataPath := tbl.Location() + "/data/reuse.parquet"
        writeParquetFile(t, dataPath, arrowSc, `[{"id": 1, "data": "row"}]`)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -679,7 +679,7 @@ func 
TestRewriteDataFiles_PartialProgressStopsOnUnknownCommitState(t *testing.T)
                writeParquetFile(t, dataPath, arrowSc,
                        fmt.Sprintf(`[{"id": %d, "data": "row"}, {"id": %d, 
"data": "row"}]`, i*2+1, i*2+2))
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -718,7 +718,7 @@ func 
TestRewriteDataFiles_PartialProgressRetainsSharedPositionDeleteAfterFailure
                        `[{"id": %d, "data": "a"}, {"id": %d, "data": "b"}]`, 
i*2+1, i*2+2))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -802,7 +802,7 @@ func 
TestRewriteDataFiles_PartialProgressCleansOutputsBeforeCommit(t *testing.T)
                        `[{"id": %d, "data": "row"}]`, i+1))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -985,7 +985,7 @@ func TestRewriteDataFiles_ContextCancellation(t *testing.T) 
{
                        fmt.Sprintf(`[{"id": %d, "data": "row"}]`, i+1))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -1023,7 +1023,7 @@ func TestRewriteDataFiles_DeadEqualityDeletesDropped(t 
*testing.T) {
                        `[{"id": %d, "data": "a"}, {"id": %d, "data": "b"}]`, 
i*2+1, i*2+2))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -1108,7 +1108,7 @@ func 
TestRewriteDataFiles_PartialRewritePreservesEqDelete(t *testing.T) {
                        `[{"id": %d, "data": "a"}]`, i+1))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -1120,7 +1120,7 @@ func 
TestRewriteDataFiles_PartialRewritePreservesEqDelete(t *testing.T) {
        preserveDataPath := tbl.Location() + "/data/preserve.parquet"
        writeParquetFile(t, preserveDataPath, arrowSc, `[{"id": 50, "data": 
"preserved"}]`)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{preserveDataPath}, 
nil, false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{preserveDataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -1193,7 +1193,7 @@ func 
TestRewriteDataFiles_PreserveDeadEqualityDeletesOptOut(t *testing.T) {
                        `[{"id": %d, "data": "a"}]`, i+1))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -1299,7 +1299,7 @@ func 
TestRewriteDataFiles_PartialProgressPreservesEqDeletes(t *testing.T) {
                        `[{"id": %d, "data": "a"}]`, i+1))
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
diff --git a/table/rewrite_files_test.go b/table/rewrite_files_test.go
index 5b6d21d5d..fb4189f4c 100644
--- a/table/rewrite_files_test.go
+++ b/table/rewrite_files_test.go
@@ -268,7 +268,7 @@ func TestRewriteFiles_Commit_SingleShot(t *testing.T) {
                writeParquetFile(t, dataPath, arrowSc,
                        fmt.Sprintf(`[{"id": %d, "data": "seed"}]`, i+1))
                seedTx := tbl.NewTransaction()
-               require.NoError(t, seedTx.AddFiles(t.Context(), 
[]string{dataPath}, nil, false))
+               require.NoError(t, seedTx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = seedTx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -311,7 +311,7 @@ func 
TestRewriteFiles_PreservesIndependentPositionDeleteSequences(t *testing.T)
        writeParquetFile(t, dataPath, arrowSc,
                `[{"id": 1, "data": "a"}, {"id": 2, "data": "b"}]`)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -427,7 +427,7 @@ func TestRewriteFiles_DeleteFile_RoutesByContentType(t 
*testing.T) {
        dataPath := tbl.Location() + "/data/seed.parquet"
        writeParquetFile(t, dataPath, arrowSc, `[{"id": 1, "data": "seed"}]`)
        seedTx := tbl.NewTransaction()
-       require.NoError(t, seedTx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+       require.NoError(t, seedTx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = seedTx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -462,7 +462,7 @@ func TestRewriteFiles_DeleteFile_RoutesByContentType(t 
*testing.T) {
 // tombstone handling: a rewrite that removes a data file leaves a
 // DELETED manifest entry for its path on the branch head. That entry
 // records a removal — the path is no longer referenced by the table —
-// so a subsequent AddFiles for the same path must not report a false
+// so a subsequent AddDataFilesByPath for the same path must not report a false
 // "already referenced" conflict.
 func TestAddFiles_ReAddsPathDeletedByRewrite(t *testing.T) {
        tbl := newRewriteTestTable(t)
@@ -472,7 +472,7 @@ func TestAddFiles_ReAddsPathDeletedByRewrite(t *testing.T) {
        dataPath := tbl.Location() + "/data/seed.parquet"
        writeParquetFile(t, dataPath, arrowSc, `[{"id": 1, "data": "seed"}]`)
        seedTx := tbl.NewTransaction()
-       require.NoError(t, seedTx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+       require.NoError(t, seedTx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = seedTx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -488,7 +488,7 @@ func TestAddFiles_ReAddsPathDeletedByRewrite(t *testing.T) {
        require.NoError(t, err)
 
        readdTx := tbl.NewTransaction()
-       require.NoError(t, readdTx.AddFiles(t.Context(), []string{dataPath}, 
nil, false),
+       require.NoError(t, readdTx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false),
                "a path whose only head entry is a DELETED tombstone is not 
referenced by the table")
        tbl, err = readdTx.Commit(t.Context())
        require.NoError(t, err)
@@ -557,7 +557,7 @@ func TestRewriteFiles_DistributedEquivalence(t *testing.T) {
                writeParquetFile(t, dataPath, arrowSc,
                        fmt.Sprintf(`[{"id": %d, "data": "row-%d"}]`, i+1, i+1))
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -631,7 +631,7 @@ func TestRewriteFiles_DropsSafePositionDeletes(t 
*testing.T) {
                writeParquetFile(t, dataPath, arrowSc, fmt.Sprintf(
                        `[{"id": %d, "data": "a"}, {"id": %d, "data": "b"}]`, 
i*2+1, i*2+2))
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -735,7 +735,7 @@ func TestRewriteFiles_RejectsConcurrentEqDelete(t 
*testing.T) {
                writeParquetFile(t, dataPath, arrowSc,
                        fmt.Sprintf(`[{"id": %d, "data": "row-%d"}]`, i+1, i+1))
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
@@ -865,7 +865,7 @@ func 
TestRewriteFiles_RejectsConcurrentPartitionScopedPosDelete(t *testing.T) {
                writeParquetFile(t, dataPath, arrowSc,
                        fmt.Sprintf(`[{"id": %d, "data": "row-%d"}]`, i+1, i+1))
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
        }
diff --git a/table/rewrite_manifests_test.go b/table/rewrite_manifests_test.go
index 963830206..398e73c9c 100644
--- a/table/rewrite_manifests_test.go
+++ b/table/rewrite_manifests_test.go
@@ -102,7 +102,7 @@ func appendSeparateManifests(t *testing.T, ctx 
context.Context, tbl *table.Table
                writeOneRowParquet(t, fs, filePath)
 
                txn := tbl.NewTransaction()
-               require.NoError(t, txn.AddFiles(ctx, []string{filePath}, nil, 
false))
+               require.NoError(t, txn.AddDataFilesByPath(ctx, 
[]string{filePath}, nil, false))
                tbl, err = txn.Commit(ctx)
                require.NoError(t, err)
        }
@@ -664,7 +664,7 @@ func TestRewriteManifestsSpecIDFilter(t *testing.T) {
                        specOneFile := dir + "/spec1-0.parquet"
                        writeOneRowParquet(t, fs, specOneFile)
                        txn = tbl.NewTransaction()
-                       require.NoError(t, txn.AddFiles(ctx, 
[]string{specOneFile}, nil, false))
+                       require.NoError(t, txn.AddDataFilesByPath(ctx, 
[]string{specOneFile}, nil, false))
                        tbl, err = txn.Commit(ctx)
                        require.NoError(t, err)
 
@@ -908,7 +908,7 @@ func appendOne(t *testing.T, ctx context.Context, tbl 
*table.Table, fs iceio.Wri
        writeOneRowParquet(t, fs, path)
 
        txn := tbl.NewTransaction()
-       require.NoError(t, txn.AddFiles(ctx, []string{path}, nil, false))
+       require.NoError(t, txn.AddDataFilesByPath(ctx, []string{path}, nil, 
false))
        out, err := txn.Commit(ctx)
        require.NoError(t, err)
 
diff --git a/table/row_delta_test.go b/table/row_delta_test.go
index 86d025758..4ea780580 100644
--- a/table/row_delta_test.go
+++ b/table/row_delta_test.go
@@ -573,7 +573,7 @@ func TestRowDeltaIntegrationPosDeleteRoundTrip(t 
*testing.T) {
        ]`)
 
        tx := tbl.NewTransaction()
-       err = tx.AddFiles(t.Context(), []string{dataPath}, nil, false)
+       err = tx.AddDataFilesByPath(t.Context(), []string{dataPath}, nil, false)
        require.NoError(t, err)
 
        tbl, err = tx.Commit(t.Context())
@@ -747,7 +747,7 @@ func newTableWithLiveDV(t *testing.T) (*table.Table, 
string, string, iceberg.Dat
        ]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -780,7 +780,7 @@ func newTableWithSharedPuffinDVs(t *testing.T) 
(*table.Table, string, string, st
        writeParquetFile(t, pathB, arrowSc, `[{"id": 3, "data": "gamma"}, 
{"id": 4, "data": "delta"}]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{pathA, pathB}, 
nil, false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), []string{pathA, 
pathB}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -859,7 +859,7 @@ func TestRowDeltaDVSupersessionSingleSnapshot(t *testing.T) 
{
        ]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
        assertRowCount(t, tbl, 5)
@@ -1359,7 +1359,7 @@ func TestRowDeltaRemoveDeletesStaleReference(t 
*testing.T) {
                writeParquetFile(t, pathB, arrowSc, `[{"id": 3, "data": 
"gamma"}, {"id": 4, "data": "delta"}]`)
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), []string{pathA, 
pathB}, nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{pathA, pathB}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
 
@@ -1551,7 +1551,7 @@ func TestRowDeltaRemoveDeletesUnknownFile(t *testing.T) {
                writeParquetFile(t, realDataPath, arrowSc, `[{"id": 1, "data": 
"alpha"}]`)
 
                tx := tbl.NewTransaction()
-               require.NoError(t, tx.AddFiles(t.Context(), 
[]string{realDataPath}, nil, false))
+               require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{realDataPath}, nil, false))
                tbl, err = tx.Commit(t.Context())
                require.NoError(t, err)
 
@@ -1771,7 +1771,7 @@ func TestRowDeltaFastAppendRejectsDuplicateAddedDVs(t 
*testing.T) {
        ]`)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -1827,7 +1827,7 @@ func TestRowDeltaRejectsConcurrentFirstDVOnRetry(t 
*testing.T) {
        ]`)
 
        tx := baseTbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        _, err = tx.Commit(t.Context())
        require.NoError(t, err)
        metaBase := baseCat.current
@@ -1903,7 +1903,7 @@ func seedRowDeltaDataFile(t *testing.T, tbl *table.Table, 
path string, ids ...in
 
        writeRowDeltaDataFile(t, tbl, path, ids...)
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{path}, nil, false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), []string{path}, 
nil, false))
 
        tbl, err := tx.Commit(t.Context())
        require.NoError(t, err)
diff --git a/table/snapshots_datafiles_internal_test.go 
b/table/snapshots_datafiles_internal_test.go
index fdd8a8432..1dd7c6103 100644
--- a/table/snapshots_datafiles_internal_test.go
+++ b/table/snapshots_datafiles_internal_test.go
@@ -93,7 +93,7 @@ func writeSnapshotTestManifestList(t *testing.T, fs 
iceio.WriteFileIO, dir strin
 // Why: a manifest entry with status DELETED is a tombstone recording a
 // removal, not a file reachable from the snapshot. Yielding it would make
 // existence and duplicate checks (ReplaceFiles' belong-to-table check,
-// AddFiles' duplicate walk, classifyFilesForDeletions) treat a file
+// AddDataFilesByPath' duplicate walk, classifyFilesForDeletions) treat a file
 // deleted by the snapshot as still live. ADDED and EXISTING entries are
 // both live and must keep flowing through.
 // Condition: a snapshot whose data and delete manifests each carry one
diff --git a/table/table_test.go b/table/table_test.go
index 1467d2d97..be0a8a2ce 100644
--- a/table/table_test.go
+++ b/table/table_test.go
@@ -556,7 +556,7 @@ func (t *TableWritingTestSuite) TestAddFilesUnpartitioned() 
{
        }
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, files, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, files, nil, false))
 
        stagedTbl, err := tx.StagedTable()
        t.Require().NoError(err)
@@ -605,7 +605,7 @@ func (t *TableWritingTestSuite) TestAddFilesFileNotFound() {
 
        files = append(files, 
t.location+"/unpartitioned_file_not_found/unknown.parquet")
        tx := tbl.NewTransaction()
-       err := tx.AddFiles(t.ctx, files, nil, false)
+       err := tx.AddDataFilesByPath(t.ctx, files, nil, false)
        t.Error(err)
        t.ErrorIs(err, fs.ErrNotExist)
 }
@@ -624,7 +624,7 @@ func (t *TableWritingTestSuite) 
TestAddFilesUnpartitionedHasFieldIDs() {
        }
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, files, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, files, nil, false))
 
        stagedTbl, err := tx.StagedTable()
        t.Require().NoError(err)
@@ -679,7 +679,7 @@ func (t *TableWritingTestSuite) 
TestAddFilesFieldIDsWithDifferentNames() {
        }
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, files, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, files, nil, false))
 
        stagedTbl, err := tx.StagedTable()
        t.Require().NoError(err)
@@ -735,7 +735,7 @@ func (t *TableWritingTestSuite) 
TestAddFilesFailsSchemaMismatch() {
        files := []string{filePath}
 
        tx := tbl.NewTransaction()
-       err = tx.AddFiles(t.ctx, files, nil, false)
+       err = tx.AddDataFilesByPath(t.ctx, files, nil, false)
        t.Error(err)
        t.EqualError(err, `error encountered during file conversion: invalid 
schema: mismatch in fields:
    Table Field               Requested Field
@@ -775,7 +775,7 @@ func (t *TableWritingTestSuite) 
TestAddFilesPartitionedTable() {
        }
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, files, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, files, nil, false))
 
        stagedTbl, err := tx.StagedTable()
        t.Require().NoError(err)
@@ -832,7 +832,7 @@ func (t *TableWritingTestSuite) 
TestAddFilesToBucketPartitionedTableFails() {
        }
 
        tx := tbl.NewTransaction()
-       err := tx.AddFiles(t.ctx, files, nil, false)
+       err := tx.AddDataFilesByPath(t.ctx, files, nil, false)
        t.Error(err)
        t.ErrorContains(err, "cannot infer partition value from parquet 
metadata for a non-linear partition field: baz_bucket_3 with transform 
bucket[3]")
 }
@@ -860,7 +860,7 @@ func (t *TableWritingTestSuite) 
TestAddFilesToPartitionedTableFailsLowerAndUpper
        }
 
        tx := tbl.NewTransaction()
-       err := tx.AddFiles(t.ctx, files, nil, false)
+       err := tx.AddDataFilesByPath(t.ctx, files, nil, false)
        t.Error(err)
        t.ErrorContains(err, "cannot infer partition value from parquet 
metadata as there is more than one value for partition field: baz. (low: 123, 
high: 124)")
 }
@@ -898,7 +898,7 @@ func (t *TableWritingTestSuite) 
TestAddFilesWithLargeAndRegular() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), filePathLarge, 
arrTableLarge)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{filePath, 
filePathLarge}, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, []string{filePath, 
filePathLarge}, nil, false))
 
        scan, err := tx.Scan(table.WithOptions(iceberg.Properties{
                table.ScanOptionArrowUseLargeTypes: "true",
@@ -921,7 +921,7 @@ func (t *TableWritingTestSuite) 
TestScanWithOptionsAliasing() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), filePath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{filePath}, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, []string{filePath}, 
nil, false))
 
        opts := iceberg.Properties{
                table.ScanOptionArrowUseLargeTypes: "false",
@@ -946,7 +946,7 @@ func (t *TableWritingTestSuite) TestAddFilesValidUpcast() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), filePath, 
t.arrTablePromotedTypes)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{filePath}, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, []string{filePath}, 
nil, false))
 
        scan, err := tx.Scan()
        t.Require().NoError(err)
@@ -994,7 +994,7 @@ func (t *TableWritingTestSuite) 
TestAddFilesSubsetOfSchema() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), filePath, 
withoutCol)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{filePath}, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, []string{filePath}, 
nil, false))
 
        scan, err := tx.Scan()
        t.Require().NoError(err)
@@ -1029,9 +1029,9 @@ func (t *TableWritingTestSuite) 
TestAddFilesDuplicateFilesInFilePaths() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), filePath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       err := tx.AddFiles(t.ctx, []string{filePath, filePath}, nil, false)
+       err := tx.AddDataFilesByPath(t.ctx, []string{filePath, filePath}, nil, 
false)
        t.Error(err)
-       t.ErrorContains(err, "file paths must be unique for AddFiles")
+       t.ErrorContains(err, "file paths must be unique for AddDataFilesByPath")
 }
 
 func (t *TableWritingTestSuite) TestAddFilesReferencedByCurrentSnapshot() {
@@ -1049,9 +1049,9 @@ func (t *TableWritingTestSuite) 
TestAddFilesReferencedByCurrentSnapshot() {
        }
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, files, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, files, nil, false))
 
-       err := tx.AddFiles(t.ctx, files[len(files)-1:], nil, false)
+       err := tx.AddDataFilesByPath(t.ctx, files[len(files)-1:], nil, false)
        t.Error(err)
        t.ErrorContains(err, "cannot add files that are already referenced by 
table, files:")
 }
@@ -1071,9 +1071,9 @@ func (t *TableWritingTestSuite) 
TestAddFilesReferencedCurrentSnapshotIgnoreDupli
        }
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, files, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, files, nil, false))
 
-       t.Require().NoError(tx.AddFiles(t.ctx, files[len(files)-1:], nil, true))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, files[len(files)-1:], 
nil, true))
        staged, err := tx.StagedTable()
        t.Require().NoError(err)
 
@@ -1139,7 +1139,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesByPath() {
        )
        for i := range 5 {
                tx := tbl.NewTransaction()
-               t.Require().NoError(tx.AddFiles(ctx, files[i:i+1], nil, false))
+               t.Require().NoError(tx.AddDataFilesByPath(ctx, files[i:i+1], 
nil, false))
                tbl, err = tx.Commit(ctx)
                t.Require().NoError(err)
        }
@@ -1438,7 +1438,7 @@ func (t *TableWritingTestSuite) TestReplaceDataFiles() {
        }
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, files, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, files, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1521,7 +1521,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesValidatesPartitionSpecID() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath}, nil, 
false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1551,7 +1551,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesValidatesPartitionData() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath}, nil, 
false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1686,7 +1686,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesDuplicateAddPaths() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath}, nil, 
false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1708,7 +1708,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesDuplicateDeletePaths() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath}, nil, 
false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1732,7 +1732,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesAddAlreadyReferenced() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath2, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath1, 
existingPath2}, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath1, existingPath2}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1753,7 +1753,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesDeleteNotInTable() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath}, nil, 
false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1776,7 +1776,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesNilDeleteFile() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath}, nil, 
false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1797,7 +1797,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesNilAddFile() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath}, nil, 
false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1832,7 +1832,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesInvalidAddContentType() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath}, nil, 
false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1893,7 +1893,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesByPathDuplicateDeletePaths()
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath}, nil, 
false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1914,7 +1914,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesByPathDuplicateAddPaths() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath}, nil, 
false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1937,7 +1937,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesByPathAddAlreadyReferenced()
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath2, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath1, 
existingPath2}, nil, false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath1, existingPath2}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -1955,7 +1955,7 @@ func (t *TableWritingTestSuite) 
TestReplaceDataFilesByPathDeleteNotInTable() {
        t.writeParquet(mustFS(t.T(), tbl).(iceio.WriteFileIO), existingPath, 
t.arrTbl)
 
        tx := tbl.NewTransaction()
-       t.Require().NoError(tx.AddFiles(t.ctx, []string{existingPath}, nil, 
false))
+       t.Require().NoError(tx.AddDataFilesByPath(t.ctx, 
[]string{existingPath}, nil, false))
        tbl, err := tx.Commit(t.ctx)
        t.Require().NoError(err)
 
@@ -2013,7 +2013,7 @@ func (t *TableWritingTestSuite) TestExpireSnapshots() {
 
        for i := range 5 {
                tx := tbl.NewTransaction()
-               t.Require().NoError(tx.AddFiles(ctx, files[i:i+1], nil, false))
+               t.Require().NoError(tx.AddDataFilesByPath(ctx, files[i:i+1], 
nil, false))
                tbl, err = tx.Commit(ctx)
                t.Require().NoError(err)
        }
@@ -2064,7 +2064,7 @@ func (t *TableWritingTestSuite) 
TestExpireSnapshotsNoOpWhenNothingToExpire() {
        // Create 3 snapshots
        for i := range 3 {
                tx := tbl.NewTransaction()
-               t.Require().NoError(tx.AddFiles(ctx, files[i:i+1], nil, false))
+               t.Require().NoError(tx.AddDataFilesByPath(ctx, files[i:i+1], 
nil, false))
                tbl, err = tx.Commit(ctx)
                t.Require().NoError(err)
        }
@@ -2130,7 +2130,7 @@ func (t *TableWritingTestSuite) 
TestExpireSnapshotsUsesTableProperties() {
 
        for i := range 5 {
                tx := tbl.NewTransaction()
-               t.Require().NoError(tx.AddFiles(ctx, files[i:i+1], nil, false))
+               t.Require().NoError(tx.AddDataFilesByPath(ctx, files[i:i+1], 
nil, false))
                tbl, err = tx.Commit(ctx)
                t.Require().NoError(err)
        }
@@ -2182,7 +2182,7 @@ func (t *TableWritingTestSuite) 
TestExpireSnapshotsWithMissingParent() {
        // Create 5 snapshots, each one with a parent pointing to the previous
        for i := range 5 {
                tx := tbl.NewTransaction()
-               t.Require().NoError(tx.AddFiles(ctx, files[i:i+1], nil, false))
+               t.Require().NoError(tx.AddDataFilesByPath(ctx, files[i:i+1], 
nil, false))
                tbl, err = tx.Commit(ctx)
                t.Require().NoError(err)
        }
@@ -2302,7 +2302,7 @@ func (t *TableWritingTestSuite) 
TestExpireSnapshotsRejectsOnRefRollback() {
        // Create 5 snapshots
        for i := range 5 {
                tx := tbl.NewTransaction()
-               t.Require().NoError(tx.AddFiles(ctx, files[i:i+1], nil, false))
+               t.Require().NoError(tx.AddDataFilesByPath(ctx, files[i:i+1], 
nil, false))
                tbl, err = tx.Commit(ctx)
                t.Require().NoError(err)
        }
@@ -2372,7 +2372,7 @@ func (t *TableWritingTestSuite) 
TestExpireSnapshotsRejectsOnRefUpdate() {
        // Create 3 snapshots
        for i := range 3 {
                tx := tbl.NewTransaction()
-               t.Require().NoError(tx.AddFiles(ctx, files[i:i+1], nil, false))
+               t.Require().NoError(tx.AddDataFilesByPath(ctx, files[i:i+1], 
nil, false))
                tbl, err = tx.Commit(ctx)
                t.Require().NoError(err)
        }
@@ -3152,13 +3152,13 @@ func (t *TableWritingTestSuite) 
TestDeleteOldMetadataLogsErrorOnFileNotFound() {
 
        // transaction 1 to create metadata file
        tx := tbl.NewTransaction()
-       tx.AddFiles(ctx, files[0:1], nil, false)
+       tx.AddDataFilesByPath(ctx, files[0:1], nil, false)
        tbl_new, err := tx.Commit(ctx)
        t.Require().NoError(err)
 
        // transaction 2 to add files
        tx_new := tbl_new.NewTransaction()
-       tx_new.AddFiles(ctx, files[1:2], nil, false)
+       tx_new.AddDataFilesByPath(ctx, files[1:2], nil, false)
 
        _, err = tx_new.Commit(ctx)
        t.Require().NoError(err)
@@ -3205,7 +3205,7 @@ func (t *TableWritingTestSuite) 
TestDeleteOldMetadataNoErrorLogsOnFileFound() {
 
        // transaction 1 to create metadata file
        tx := tbl.NewTransaction()
-       tx.AddFiles(ctx, files[0:1], nil, false)
+       tx.AddDataFilesByPath(ctx, files[0:1], nil, false)
        tbl_new, err := tx.Commit(ctx)
        t.Require().NoError(err)
 
@@ -3217,7 +3217,7 @@ func (t *TableWritingTestSuite) 
TestDeleteOldMetadataNoErrorLogsOnFileFound() {
 
        // transaction 2 to add files
        tx_new := tbl_new.NewTransaction()
-       tx_new.AddFiles(ctx, files[1:2], nil, false)
+       tx_new.AddDataFilesByPath(ctx, files[1:2], nil, false)
        _, err = tx_new.Commit(ctx)
        t.Require().NoError(err)
 
@@ -3602,7 +3602,7 @@ func TestWritesToUnknownTransformSpecFail(t *testing.T) {
                        location := 
filepath.ToSlash(strings.ReplaceAll(t.TempDir(), "#", ""))
                        ctx := context.Background()
 
-                       t.Run("AddFiles", func(t *testing.T) {
+                       t.Run("AddDataFilesByPath", func(t *testing.T) {
                                tbl := newTable(t, location, formatVersion, 
unknownSpec)
                                arrTable, err := 
array.TableFromJSON(memory.DefaultAllocator, arrSchema, []string{
                                        `[{"foo": true, "bar": "bar_string", 
"baz": 1, "qux": "2024-03-07"}]`,
@@ -3615,7 +3615,7 @@ func TestWritesToUnknownTransformSpecFail(t *testing.T) {
                                require.NoError(t, err)
                                require.NoError(t, pqarrow.WriteTable(arrTable, 
fo, arrTable.NumRows(), nil, pqarrow.DefaultWriterProps()))
 
-                               err = tbl.NewTransaction().AddFiles(ctx, 
[]string{filePath}, nil, false)
+                               err = 
tbl.NewTransaction().AddDataFilesByPath(ctx, []string{filePath}, nil, false)
                                require.ErrorIs(t, err, 
iceberg.ErrInvalidTransform)
                                assert.ErrorContains(t, err, 
"custom_transform[42]")
                        })
diff --git a/table/transaction.go b/table/transaction.go
index b82477946..ca194e2fd 100644
--- a/table/transaction.go
+++ b/table/transaction.go
@@ -964,7 +964,7 @@ func (t *Transaction) ReplaceDataFilesByPath(ctx 
context.Context, filesToDelete,
        }
        if len(filesToDelete) == 0 {
                if len(filesToAdd) > 0 {
-                       return t.AddFiles(ctx, filesToAdd, snapshotProps, false)
+                       return t.AddDataFilesByPath(ctx, filesToAdd, 
snapshotProps, false)
                }
        }
 
@@ -1575,7 +1575,7 @@ func (t *Transaction) ensureNameMapping() error {
 // This is useful for clients who have already constructed DataFile objects 
with metadata,
 // avoiding the need to read files to extract schema and statistics.
 //
-// Unlike AddFiles, this method does not read files from storage. It validates 
only metadata
+// Unlike AddDataFilesByPath, this method does not read files from storage. It 
validates only metadata
 // that can be checked without opening files (for example spec-id and 
partition field IDs).
 //
 // Each DataFile may target any partition spec registered in the table 
metadata,
@@ -2247,15 +2247,15 @@ func (t *Transaction) replaceFiles(ctx context.Context, 
dataFilesToDelete, dataF
        return nil
 }
 
-type AddFilesOption func(addFilesOp *addFilesOperation)
+type AddDataFilesByPathOption func(addFilesOp *addFilesOperation)
 
 type addFilesOperation struct {
        concurrency int
 }
 
-// WithAddFilesConcurrency overwrites the default concurrency for add files 
operation.
+// WithAddDataFilesByPathConcurrency overrides the concurrency used by 
AddDataFilesByPath.
 // Default: runtime.GOMAXPROCS(0)
-func WithAddFilesConcurrency(concurrency int) AddFilesOption {
+func WithAddDataFilesByPathConcurrency(concurrency int) 
AddDataFilesByPathOption {
        return func(op *addFilesOperation) {
                if concurrency > 0 {
                        op.concurrency = concurrency
@@ -2263,7 +2263,9 @@ func WithAddFilesConcurrency(concurrency int) 
AddFilesOption {
        }
 }
 
-func (t *Transaction) AddFiles(ctx context.Context, filePaths []string, 
snapshotProps iceberg.Properties, ignoreDuplicates bool, opts 
...AddFilesOption) error {
+// AddDataFilesByPath adds data files at the provided paths to the table.
+// Unlike AddDataFiles, it opens each file to read its schema and statistics.
+func (t *Transaction) AddDataFilesByPath(ctx context.Context, filePaths 
[]string, snapshotProps iceberg.Properties, ignoreDuplicates bool, opts 
...AddDataFilesByPathOption) error {
        meta, err := t.txnMeta()
        if err != nil {
                return err
@@ -2278,7 +2280,7 @@ func (t *Transaction) AddFiles(ctx context.Context, 
filePaths []string, snapshot
        set := make(map[string]struct{}, len(filePaths))
        for _, filePath := range filePaths {
                if _, ok := set[filePath]; ok {
-                       return errors.New("file paths must be unique for 
AddFiles")
+                       return errors.New("file paths must be unique for 
AddDataFilesByPath")
                }
                set[filePath] = struct{}{}
        }
diff --git a/table/transaction_empty_append_test.go 
b/table/transaction_empty_append_test.go
index edf5227ec..b0907b2bd 100644
--- a/table/transaction_empty_append_test.go
+++ b/table/transaction_empty_append_test.go
@@ -34,10 +34,10 @@ import (
 // such commits for metadata-only bookkeeping (e.g. recording ingestion
 // progress in snapshot or table properties) that must still serialize
 // through the producer's AssertRefSnapshotID requirement, which only
-// engages when a snapshot moves the head. AddFiles with an empty path
+// engages when a snapshot moves the head. AddDataFilesByPath with an empty 
path
 // list must keep committing an empty append rather than degrading to a
 // silent no-op.
-// Condition: AddFiles with no paths on an empty table, then again on
+// Condition: AddDataFilesByPath with no paths on an empty table, then again on
 // the resulting table after real data was added.
 // Assertion: each commit creates a new "append" snapshot chained to its
 // parent, the branch head moves, and existing data files stay reachable.
@@ -62,7 +62,7 @@ func TestAddFilesEmptyCommitsEmptySnapshot(t *testing.T) {
 
        // Empty append on an empty table creates the branch head.
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), nil, nil, false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), nil, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -80,14 +80,14 @@ func TestAddFilesEmptyCommitsEmptySnapshot(t *testing.T) {
        writeParquetFile(t, dataPath, arrowSc, `[{"id": 1, "data": "alpha"}]`)
 
        txData := tbl.NewTransaction()
-       require.NoError(t, txData.AddFiles(t.Context(), []string{dataPath}, 
nil, false))
+       require.NoError(t, txData.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = txData.Commit(t.Context())
        require.NoError(t, err)
        withData := tbl.CurrentSnapshot()
        require.NotNil(t, withData)
 
        txEmpty := tbl.NewTransaction()
-       require.NoError(t, txEmpty.AddFiles(t.Context(), nil, nil, false))
+       require.NoError(t, txEmpty.AddDataFilesByPath(t.Context(), nil, nil, 
false))
        tbl, err = txEmpty.Commit(t.Context())
        require.NoError(t, err)
 
diff --git a/table/transaction_internal_test.go 
b/table/transaction_internal_test.go
index 2c28305e7..587f3caf4 100644
--- a/table/transaction_internal_test.go
+++ b/table/transaction_internal_test.go
@@ -1169,7 +1169,9 @@ func 
TestTransactionEntryPointsRejectNilAndBrokenTransaction(t *testing.T) {
                {"AppendTable", func(txn *Transaction) error { return 
txn.AppendTable(ctx, nil, 0, nil) }},
                {"Append", func(txn *Transaction) error { return 
txn.Append(ctx, nil, nil) }},
                {"AddDataFiles", func(txn *Transaction) error { return 
txn.AddDataFiles(ctx, []iceberg.DataFile{dataFile}, nil) }},
-               {"AddFiles", func(txn *Transaction) error { return 
txn.AddFiles(ctx, []string{"file://a.parquet"}, nil, false) }},
+               {"AddDataFilesByPath", func(txn *Transaction) error {
+                       return txn.AddDataFilesByPath(ctx, 
[]string{"file://a.parquet"}, nil, false)
+               }},
                {"ReplaceDataFilesByPath", func(txn *Transaction) error {
                        return txn.ReplaceDataFilesByPath(ctx, []string{"a"}, 
[]string{"b"}, nil)
                }},
@@ -2170,7 +2172,7 @@ func TestTableCommitWithSnapshotProducerPinsBaseHead(t 
*testing.T) {
        tbl, _, _ := newProducerAssertRefTable(t)
 
        seed := tbl.NewTransaction()
-       require.NoError(t, seed.AddFiles(t.Context(), nil, nil, false))
+       require.NoError(t, seed.AddDataFilesByPath(t.Context(), nil, nil, 
false))
        tbl, err := seed.Commit(t.Context())
        require.NoError(t, err)
 
@@ -2178,7 +2180,7 @@ func TestTableCommitWithSnapshotProducerPinsBaseHead(t 
*testing.T) {
        require.NotNil(t, baseHead)
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), nil, nil, false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), nil, nil, false))
 
        tc, err := tx.TableCommit()
        require.NoError(t, err)
diff --git a/table/transaction_test.go b/table/transaction_test.go
index b3c02361f..cf323caa1 100644
--- a/table/transaction_test.go
+++ b/table/transaction_test.go
@@ -155,7 +155,7 @@ func (s *SparkIntegrationTestSuite) TestAddFile() {
        }
 
        tx := tbl.NewTransaction()
-       err = tx.AddFiles(s.ctx, []string{filename}, nil, false)
+       err = tx.AddDataFilesByPath(s.ctx, []string{filename}, nil, false)
        s.Require().NoError(err)
 
        tbl, err = tx.Commit(s.ctx)
diff --git a/table/variant_shredded_test.go b/table/variant_shredded_test.go
index babc68060..d1bc9c231 100644
--- a/table/variant_shredded_test.go
+++ b/table/variant_shredded_test.go
@@ -72,7 +72,7 @@ func TestShreddedVariantTableScan(t *testing.T) {
        )
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -185,7 +185,7 @@ func TestShreddedVariantScanNulls(t *testing.T) {
                &rowDeltaCatalog{metadata: meta})
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -427,7 +427,7 @@ func scanShreddedFixture(t *testing.T, fixture string) 
arrow.Table {
        return scanned
 }
 
-// scanShreddedFixtureErr returns the error from AddFiles or the scan instead 
of
+// scanShreddedFixtureErr returns the error from AddDataFilesByPath or the 
scan instead of
 // failing, for the rejection cases.
 func scanShreddedFixtureErr(t *testing.T, fixture string) error {
        t.Helper()
@@ -467,7 +467,7 @@ func scanShreddedFixtureRaw(t *testing.T, fixture string) 
(arrow.Table, error) {
                &rowDeltaCatalog{metadata: meta})
 
        tx := tbl.NewTransaction()
-       if err := tx.AddFiles(t.Context(), []string{dataPath}, nil, false); err 
!= nil {
+       if err := tx.AddDataFilesByPath(t.Context(), []string{dataPath}, nil, 
false); err != nil {
                return nil, err
        }
        tbl, err = tx.Commit(t.Context())
@@ -573,7 +573,7 @@ func writeFullyShreddedVariantFile(t *testing.T, path 
string, fieldID, nRows int
        writeVariantColumnParquet(t, path, fieldID, shreddedType, bldr)
 }
 
-// TestShreddedVariantAddFilesBounds pins that AddFiles (which opens the file 
and
+// TestShreddedVariantAddFilesBounds pins that AddDataFilesByPath (which opens 
the file and
 // recomputes) emits correct shredded variant child bounds under the parent 
field id.
 func TestShreddedVariantAddFilesBounds(t *testing.T) {
        location := filepath.ToSlash(t.TempDir())
@@ -591,7 +591,7 @@ func TestShreddedVariantAddFilesBounds(t *testing.T) {
                func(ctx context.Context) (iceio.IO, error) { return 
iceio.LocalFS{}, nil }, &rowDeltaCatalog{metadata: meta})
 
        tx := tbl.NewTransaction()
-       require.NoError(t, tx.AddFiles(t.Context(), []string{dataPath}, nil, 
false))
+       require.NoError(t, tx.AddDataFilesByPath(t.Context(), 
[]string{dataPath}, nil, false))
        tbl, err = tx.Commit(t.Context())
        require.NoError(t, err)
 
@@ -614,8 +614,8 @@ func TestShreddedVariantAddFilesBounds(t *testing.T) {
                return append(append([]byte{}, v.Metadata().Bytes()...), 
v.Bytes()...)
        }
 
-       assert.Equal(t, buildObj(0, "row-A"), 
tasks[0].File.LowerBoundValues()[1], "AddFiles lower bound")
-       assert.Equal(t, buildObj(nData-1, "row-E"), 
tasks[0].File.UpperBoundValues()[1], "AddFiles upper bound")
+       assert.Equal(t, buildObj(0, "row-A"), 
tasks[0].File.LowerBoundValues()[1], "AddDataFilesByPath lower bound")
+       assert.Equal(t, buildObj(nData-1, "row-E"), 
tasks[0].File.UpperBoundValues()[1], "AddDataFilesByPath upper bound")
 }
 
 // setupVariantScanTable writes a shredded variant table from rows and returns 
a closure reading the "id" column of a filtered scan.
diff --git a/table/write_file_io_test.go b/table/write_file_io_test.go
index 13e3af85b..76dc39ff9 100644
--- a/table/write_file_io_test.go
+++ b/table/write_file_io_test.go
@@ -158,7 +158,7 @@ func TestWritePathsReturnErrorForReadOnlyIO(t *testing.T) {
                {
                        name: "add files",
                        run: func(ctx context.Context, tbl *Table) error {
-                               return tbl.NewTransaction().AddFiles(ctx, 
[]string{
+                               return 
tbl.NewTransaction().AddDataFilesByPath(ctx, []string{
                                        
"file:///tmp/read-only-write/add-files.parquet",
                                }, nil, false)
                        },
diff --git a/website/src/api.md b/website/src/api.md
index 82ccc145a..b52509255 100644
--- a/website/src/api.md
+++ b/website/src/api.md
@@ -354,7 +354,7 @@ When you already have data files (e.g. produced by another 
writer), register the
 
 ```go
 txn := tbl.NewTransaction()
-err := txn.AddFiles(ctx, []string{
+err := txn.AddDataFilesByPath(ctx, []string{
     "s3://my-bucket/sales/orders/data/file-1.parquet",
     "s3://my-bucket/sales/orders/data/file-2.parquet",
 }, nil /* snapshot props */, false /* ignoreDuplicates */)

Reply via email to