This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/iceberg-go.git
The following commit(s) were added to refs/heads/gh-pages by this push:
new 94803c1f2 deploy: c1dad7f57e427b8a1ce52c9ac85b3f3edd38366a
94803c1f2 is described below
commit 94803c1f287733ec6b6bf5e633ff62773df1ca3d
Author: laskoviymishka <[email protected]>
AuthorDate: Mon Oct 5 21:14:11 2026 +0000
deploy: c1dad7f57e427b8a1ce52c9ac85b3f3edd38366a
---
api.html | 12 ++++++------
print.html | 26 +++++++++++++++++++-------
releases.html | 14 +++++++++++++-
searchindex.js | 2 +-
searchindex.json | 2 +-
5 files changed, 40 insertions(+), 16 deletions(-)
diff --git a/api.html b/api.html
index 231fe0c6a..961e044d9 100644
--- a/api.html
+++ b/api.html
@@ -580,18 +580,18 @@ err = txn.RollbackToSnapshot(targetSnapshotID)
<pre><code class="language-go">import (
"time"
- "github.com/apache/iceberg-go/table"
+ "github.com/apache/iceberg-go/table/maintenance"
)
-result, err := tbl.DeleteOrphanFiles(ctx,
- table.WithFilesOlderThan(72*time.Hour),
- table.WithDryRun(false),
- table.WithCleanupMaxConcurrency(8),
+result, err := maintenance.DeleteOrphanFiles(ctx, tbl,
+ maintenance.WithCleanupFilesOlderThan(72*time.Hour),
+ maintenance.WithCleanupDryRun(false),
+ maintenance.WithCleanupMaxConcurrency(8),
)
if err != nil { /* ... */ }
fmt.Printf("removed %d files\n", len(result.DeletedFiles))
</code></pre>
-<p>Also see <code>table.WithLocation</code>,
<code>table.WithDeleteFunc</code>, <code>table.WithPrefixMismatchMode</code>,
<code>table.WithEqualSchemes</code>, and
<code>table.WithEqualAuthorities</code> in
<code>table/orphan_cleanup.go</code>.</p>
+<p>Also see <code>maintenance.WithCleanupLocation</code>,
<code>maintenance.WithCleanupDeleteFunc</code>,
<code>maintenance.WithPrefixMismatchMode</code>,
<code>maintenance.WithEqualSchemes</code>, and
<code>maintenance.WithEqualAuthorities</code> in
<code>table/maintenance/orphan_cleanup.go</code>.</p>
<h3 id="compaction-rewrite-data-files"><a class="header"
href="#compaction-rewrite-data-files">Compaction (rewrite data files)</a></h3>
<pre><code class="language-go">import
"github.com/apache/iceberg-go/table"
diff --git a/print.html b/print.html
index 975499edb..13362ecd6 100644
--- a/print.html
+++ b/print.html
@@ -1497,18 +1497,18 @@ err = txn.RollbackToSnapshot(targetSnapshotID)
<pre><code class="language-go">import (
"time"
- "github.com/apache/iceberg-go/table"
+ "github.com/apache/iceberg-go/table/maintenance"
)
-result, err := tbl.DeleteOrphanFiles(ctx,
- table.WithFilesOlderThan(72*time.Hour),
- table.WithDryRun(false),
- table.WithCleanupMaxConcurrency(8),
+result, err := maintenance.DeleteOrphanFiles(ctx, tbl,
+ maintenance.WithCleanupFilesOlderThan(72*time.Hour),
+ maintenance.WithCleanupDryRun(false),
+ maintenance.WithCleanupMaxConcurrency(8),
)
if err != nil { /* ... */ }
fmt.Printf("removed %d files\n", len(result.DeletedFiles))
</code></pre>
-<p>Also see <code>table.WithLocation</code>,
<code>table.WithDeleteFunc</code>, <code>table.WithPrefixMismatchMode</code>,
<code>table.WithEqualSchemes</code>, and
<code>table.WithEqualAuthorities</code> in
<code>table/orphan_cleanup.go</code>.</p>
+<p>Also see <code>maintenance.WithCleanupLocation</code>,
<code>maintenance.WithCleanupDeleteFunc</code>,
<code>maintenance.WithPrefixMismatchMode</code>,
<code>maintenance.WithEqualSchemes</code>, and
<code>maintenance.WithEqualAuthorities</code> in
<code>table/maintenance/orphan_cleanup.go</code>.</p>
<h3 id="compaction-rewrite-data-files"><a class="header"
href="#compaction-rewrite-data-files">Compaction (rewrite data files)</a></h3>
<pre><code class="language-go">import
"github.com/apache/iceberg-go/table"
@@ -2540,7 +2540,19 @@ go test -tags integration ./...
<p>Per-release notes (highlights, breaking changes, contributors) are
published on the <a href="https://github.com/apache/iceberg-go/releases">GitHub
Releases page</a>. Iceberg Go does not maintain a curated
<code>CHANGELOG.md</code> in the repository; the GitHub Releases page is the
canonical source.</p>
<h3 id="unreleased-compatibility-notes"><a class="header"
href="#unreleased-compatibility-notes">Unreleased compatibility notes</a></h3>
<ul>
-<li><code>Table.PurgeFiles</code> now calls <code>IO.Remove</code>
concurrently, with up to 32 calls in flight, when the filesystem does not
implement <code>BulkRemovableIO</code>. Custom IO implementations, including
those registered with <code>io.Register</code>, must make <code>Remove</code>
safe for concurrent use and synchronize any shared mutable state. The bulk
deletion path is unchanged.</li>
+<li>
+<p><strong>Orphan file cleanup moved to
<code>table/maintenance</code>.</strong> The orphan-cleanup and file-purge API
is no longer on <code>table.Table</code>; it now lives in the
<code>table/maintenance</code> package as free functions that take the table as
their first argument (matching <code>table/compaction</code>). For example,
<code>tbl.DeleteOrphanFiles(ctx, ...)</code> becomes
<code>maintenance.DeleteOrphanFiles(ctx, tbl, ...)</code>. Because
<code>table/maintenance</code> impo [...]
+<ul>
+<li>Functions (now free functions taking <code>*table.Table</code>):
<code>DeleteOrphanFiles</code>, <code>PlanOrphanFiles</code>,
<code>ExecuteOrphanCleanup</code>, <code>PurgeFiles</code>.</li>
+<li>Types: <code>OrphanCleanupOption</code>, <code>OrphanCleanupResult</code>,
<code>OrphanFile</code>, <code>OrphanCleanupPlan</code>,
<code>PrefixMismatchMode</code>.</li>
+<li>Constants: <code>PrefixMismatchError</code>,
<code>PrefixMismatchIgnore</code>, <code>PrefixMismatchDelete</code>.</li>
+<li>Option constructors: <code>WithCleanupLocation</code>,
<code>WithCleanupFilesOlderThan</code>, <code>WithCleanupDryRun</code>,
<code>WithCleanupDeleteFunc</code>, <code>WithCleanupMaxConcurrency</code>,
<code>WithPrefixMismatchMode</code>, <code>WithEqualSchemes</code>,
<code>WithEqualAuthorities</code>. The four generic names
(<code>WithLocation</code>, <code>WithFilesOlderThan</code>,
<code>WithDryRun</code>, <code>WithDeleteFunc</code>) gained the
<code>WithCleanup</code> prefix f [...]
+</ul>
+<p>Relatedly, the previously unexported <code>isGCEnabled</code> is now
<code>table.IsGCEnabled</code>, so the new package can gate destructive
operations on the <code>gc.enabled</code> table property.</p>
+</li>
+<li>
+<p><code>maintenance.PurgeFiles</code> (previously
<code>Table.PurgeFiles</code>) now calls <code>IO.Remove</code> concurrently,
with up to 32 calls in flight, when the filesystem does not implement
<code>BulkRemovableIO</code>. Custom IO implementations, including those
registered with <code>io.Register</code>, must make <code>Remove</code> safe
for concurrent use and synchronize any shared mutable state. The bulk deletion
path is unchanged.</p>
+</li>
</ul>
<h2 id="verifying-and-producing-releases"><a class="header"
href="#verifying-and-producing-releases">Verifying and producing
releases</a></h2>
<p>If you are validating an RC or cutting a new release, see:</p>
diff --git a/releases.html b/releases.html
index 139e645a0..bb915dd9d 100644
--- a/releases.html
+++ b/releases.html
@@ -248,7 +248,19 @@
<p>Per-release notes (highlights, breaking changes, contributors) are
published on the <a href="https://github.com/apache/iceberg-go/releases">GitHub
Releases page</a>. Iceberg Go does not maintain a curated
<code>CHANGELOG.md</code> in the repository; the GitHub Releases page is the
canonical source.</p>
<h3 id="unreleased-compatibility-notes"><a class="header"
href="#unreleased-compatibility-notes">Unreleased compatibility notes</a></h3>
<ul>
-<li><code>Table.PurgeFiles</code> now calls <code>IO.Remove</code>
concurrently, with up to 32 calls in flight, when the filesystem does not
implement <code>BulkRemovableIO</code>. Custom IO implementations, including
those registered with <code>io.Register</code>, must make <code>Remove</code>
safe for concurrent use and synchronize any shared mutable state. The bulk
deletion path is unchanged.</li>
+<li>
+<p><strong>Orphan file cleanup moved to
<code>table/maintenance</code>.</strong> The orphan-cleanup and file-purge API
is no longer on <code>table.Table</code>; it now lives in the
<code>table/maintenance</code> package as free functions that take the table as
their first argument (matching <code>table/compaction</code>). For example,
<code>tbl.DeleteOrphanFiles(ctx, ...)</code> becomes
<code>maintenance.DeleteOrphanFiles(ctx, tbl, ...)</code>. Because
<code>table/maintenance</code> impo [...]
+<ul>
+<li>Functions (now free functions taking <code>*table.Table</code>):
<code>DeleteOrphanFiles</code>, <code>PlanOrphanFiles</code>,
<code>ExecuteOrphanCleanup</code>, <code>PurgeFiles</code>.</li>
+<li>Types: <code>OrphanCleanupOption</code>, <code>OrphanCleanupResult</code>,
<code>OrphanFile</code>, <code>OrphanCleanupPlan</code>,
<code>PrefixMismatchMode</code>.</li>
+<li>Constants: <code>PrefixMismatchError</code>,
<code>PrefixMismatchIgnore</code>, <code>PrefixMismatchDelete</code>.</li>
+<li>Option constructors: <code>WithCleanupLocation</code>,
<code>WithCleanupFilesOlderThan</code>, <code>WithCleanupDryRun</code>,
<code>WithCleanupDeleteFunc</code>, <code>WithCleanupMaxConcurrency</code>,
<code>WithPrefixMismatchMode</code>, <code>WithEqualSchemes</code>,
<code>WithEqualAuthorities</code>. The four generic names
(<code>WithLocation</code>, <code>WithFilesOlderThan</code>,
<code>WithDryRun</code>, <code>WithDeleteFunc</code>) gained the
<code>WithCleanup</code> prefix f [...]
+</ul>
+<p>Relatedly, the previously unexported <code>isGCEnabled</code> is now
<code>table.IsGCEnabled</code>, so the new package can gate destructive
operations on the <code>gc.enabled</code> table property.</p>
+</li>
+<li>
+<p><code>maintenance.PurgeFiles</code> (previously
<code>Table.PurgeFiles</code>) now calls <code>IO.Remove</code> concurrently,
with up to 32 calls in flight, when the filesystem does not implement
<code>BulkRemovableIO</code>. Custom IO implementations, including those
registered with <code>io.Register</code>, must make <code>Remove</code> safe
for concurrent use and synchronize any shared mutable state. The bulk deletion
path is unchanged.</p>
+</li>
</ul>
<h2 id="verifying-and-producing-releases"><a class="header"
href="#verifying-and-producing-releases">Verifying and producing
releases</a></h2>
<p>If you are validating an RC or cutting a new release, see:</p>
diff --git a/searchindex.js b/searchindex.js
index 746d9661c..4f7458ac3 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Object.assign(window.search,
{"doc_urls":["introduction.html#iceberg-go","introduction.html#where-to-start","introduction.html#what-works-today","introduction.html#beyond-go","introduction.html#help-and-contribution","install.html#install","install.html#requirements","install.html#installation","getting-started.html#getting-started","getting-started.html#1-install","getting-started.html#2-open-a-local-catalog","getting-started.html#3-create-a-namespace-and-a-table","getting-started.html#
[...]
\ No newline at end of file
+Object.assign(window.search,
{"doc_urls":["introduction.html#iceberg-go","introduction.html#where-to-start","introduction.html#what-works-today","introduction.html#beyond-go","introduction.html#help-and-contribution","install.html#install","install.html#requirements","install.html#installation","getting-started.html#getting-started","getting-started.html#1-install","getting-started.html#2-open-a-local-catalog","getting-started.html#3-create-a-namespace-and-a-table","getting-started.html#
[...]
\ No newline at end of file
diff --git a/searchindex.json b/searchindex.json
index 75a97ff98..e2e218092 100644
--- a/searchindex.json
+++ b/searchindex.json
@@ -1 +1 @@
-{"doc_urls":["introduction.html#iceberg-go","introduction.html#where-to-start","introduction.html#what-works-today","introduction.html#beyond-go","introduction.html#help-and-contribution","install.html#install","install.html#requirements","install.html#installation","getting-started.html#getting-started","getting-started.html#1-install","getting-started.html#2-open-a-local-catalog","getting-started.html#3-create-a-namespace-and-a-table","getting-started.html#4-write-some-arrow-data","get
[...]
\ No newline at end of file
+{"doc_urls":["introduction.html#iceberg-go","introduction.html#where-to-start","introduction.html#what-works-today","introduction.html#beyond-go","introduction.html#help-and-contribution","install.html#install","install.html#requirements","install.html#installation","getting-started.html#getting-started","getting-started.html#1-install","getting-started.html#2-open-a-local-catalog","getting-started.html#3-create-a-namespace-and-a-table","getting-started.html#4-write-some-arrow-data","get
[...]
\ No newline at end of file