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 (
     &quot;time&quot;
 
-    &quot;github.com/apache/iceberg-go/table&quot;
+    &quot;github.com/apache/iceberg-go/table/maintenance&quot;
 )
 
-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(&quot;removed %d files\n&quot;, 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 
&quot;github.com/apache/iceberg-go/table&quot;
 
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 (
     &quot;time&quot;
 
-    &quot;github.com/apache/iceberg-go/table&quot;
+    &quot;github.com/apache/iceberg-go/table/maintenance&quot;
 )
 
-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(&quot;removed %d files\n&quot;, 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 
&quot;github.com/apache/iceberg-go/table&quot;
 
@@ -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

Reply via email to