You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by gi...@apache.org on 2022/03/08 02:53:03 UTC

[iceberg-docs] branch asf-site updated: deploy: 0fde2fb0aae94b6086c98b2c904756f9423f6929

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/iceberg-docs.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new f97dff1  deploy: 0fde2fb0aae94b6086c98b2c904756f9423f6929
f97dff1 is described below

commit f97dff136a1026e943755d3910f0bbf42575e2a9
Author: rdblue <rd...@users.noreply.github.com>
AuthorDate: Tue Mar 8 02:45:50 2022 +0000

    deploy: 0fde2fb0aae94b6086c98b2c904756f9423f6929
---
 docs/latest/404.html                               |   19 +-
 docs/latest/api/index.html                         |  515 +++-----
 docs/latest/aws/index.html                         | 1009 +++++-----------
 docs/latest/categories/index.html                  |  242 ++--
 docs/latest/configuration/index.html               |  697 +++--------
 docs/latest/custom-catalog/index.html              |  657 ++++-------
 docs/latest/docs/api/index.html                    |  229 ++--
 docs/latest/docs/api/javadoc/index.html            |  229 ++--
 docs/latest/docs/asf/donate/index.html             |  238 ++--
 docs/latest/docs/asf/events/index.html             |  238 ++--
 docs/latest/docs/asf/index.html                    |  229 ++--
 docs/latest/docs/asf/license/index.html            |  238 ++--
 docs/latest/docs/asf/security/index.html           |  238 ++--
 docs/latest/docs/asf/sponsors/index.html           |  238 ++--
 docs/latest/docs/athena/index.html                 |  238 ++--
 docs/latest/docs/community/blogs/index.html        |  240 ++--
 docs/latest/docs/community/contribute/index.html   |  240 ++--
 docs/latest/docs/community/index.html              |  229 ++--
 docs/latest/docs/community/join/index.html         |  240 ++--
 docs/latest/docs/community/talks/index.html        |  240 ++--
 docs/latest/docs/dremio/index.html                 |  238 ++--
 docs/latest/docs/emr/index.html                    |  238 ++--
 docs/latest/docs/flink/index.html                  |  229 ++--
 docs/latest/docs/format/index.html                 |  229 ++--
 docs/latest/docs/format/spec/index.html            |  240 ++--
 docs/latest/docs/format/terms/index.html           |  240 ++--
 docs/latest/docs/index.html                        |  227 ++--
 docs/latest/docs/integrations/index.html           |  229 ++--
 docs/latest/docs/prestodb/index.html               |  238 ++--
 docs/latest/docs/project/benchmarks/index.html     |  240 ++--
 docs/latest/docs/project/how-to-release/index.html |  240 ++--
 docs/latest/docs/project/index.html                |  229 ++--
 .../docs/project/multi-engine-support/index.html   |  240 ++--
 docs/latest/docs/project/roadmap/index.html        |  240 ++--
 docs/latest/docs/project/security/index.html       |  240 ++--
 docs/latest/docs/project/trademarks/index.html     |  240 ++--
 docs/latest/docs/releases/0.12.1/index.html        |  229 ++--
 docs/latest/docs/releases/0.13.0/index.html        |  229 ++--
 docs/latest/docs/releases/0.13.1/index.html        |  229 ++--
 docs/latest/docs/releases/index.html               |  229 ++--
 docs/latest/docs/releases/latest/index.html        |  229 ++--
 docs/latest/docs/releases/release-notes/index.html |  240 ++--
 docs/latest/docs/spark/index.html                  |  229 ++--
 docs/latest/docs/tables/index.html                 |  229 ++--
 docs/latest/docs/trino/index.html                  |  238 ++--
 ...0503e5c7bb1d1868096a36a2dbb73457229f394323.json |    1 -
 ...667ce88977fd7e8b4f0001a7c64ccd5e95cb7ddd0c.json |    1 +
 ...71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js |    1 -
 ...0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js |    1 +
 docs/latest/evolution/index.html                   |  324 ++----
 docs/latest/flink-connector/index.html             |  415 +++----
 docs/latest/flink/index.html                       | 1051 ++++++-----------
 docs/latest/getting-started/index.html             |  351 ++----
 docs/latest/hive/index.html                        |  837 ++++---------
 docs/latest/index.html                             |  283 ++---
 docs/latest/java-api-quickstart/index.html         |  471 +++-----
 docs/latest/jdbc/index.html                        |  324 ++----
 docs/latest/maintenance/index.html                 |  392 ++-----
 docs/latest/nessie/index.html                      |  404 ++-----
 docs/latest/partitioning/index.html                |  321 ++---
 docs/latest/performance/index.html                 |  278 ++---
 docs/latest/python-api-intro/index.html            |  422 ++-----
 docs/latest/python-feature-support/index.html      |  427 ++-----
 docs/latest/python-quickstart/index.html           |  303 ++---
 docs/latest/reliability/index.html                 |  286 ++---
 docs/latest/schemas/index.html                     |  342 ++----
 docs/latest/spark-configuration/index.html         |  546 +++------
 docs/latest/spark-ddl/index.html                   |  638 ++++------
 docs/latest/spark-procedures/index.html            | 1228 +++++---------------
 docs/latest/spark-queries/index.html               |  755 +++---------
 docs/latest/spark-structured-streaming/index.html  |  393 ++-----
 docs/latest/spark-writes/index.html                |  929 ++++-----------
 docs/latest/tags/index.html                        |  242 ++--
 73 files changed, 6879 insertions(+), 17388 deletions(-)

diff --git a/docs/latest/404.html b/docs/latest/404.html
index c40cf9c..7605ca4 100644
--- a/docs/latest/404.html
+++ b/docs/latest/404.html
@@ -8,23 +8,14 @@
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/404.html">
-<title>404 Page not found | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>404 Page not found | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
-<style>.not-found{text-align:center}.not-found h1{margin:.25em 0 0;opacity:.25;font-size:40vmin}</style>
-</head>
-<body>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
+<style>.not-found{text-align:center}.not-found h1{margin:.25em 0 0;opacity:.25;font-size:40vmin}</style></head><body>
 <main class="flex justify-center not-found">
 <div>
-<h1>404</h1>
-<h2>Page Not Found</h2>
-<h3>
+<h1>404</h1><h2>Page Not Found</h2><h3>
 <a href=/docs/latest/>Apache Iceberg</a>
-</h3>
-</div>
-</main>
-</body>
-</html>
\ No newline at end of file
+</h3></div></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/api/index.html b/docs/latest/api/index.html
index 002a68b..9949423 100644
--- a/docs/latest/api/index.html
+++ b/docs/latest/api/index.html
@@ -14,14 +14,12 @@ Table metadata #  The Table interface provides access to the table metadata:
  schema returns the current table schema spec returns the current table partition spec properties returns a map of key-value properties currentSnapshot returns the current table snapshot snapshots returns all valid snapshots for the table snapshot(id) returns a specific snapshot by ID location returns the table&rsquo;s base location  Tables also provide refresh to update the table to the latest version, and expose helpers:">
 <meta property="og:type" content="article">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/api/"><meta property="article:section" content="docs">
-<title>Java API | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Java API | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
-</head>
-<body dir=ltr>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -34,19 +32,15 @@ Table metadata #  The Table interface provides access to the table metadata:
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -55,34 +49,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -90,84 +75,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -178,18 +143,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle checked>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -200,35 +160,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/ class=active>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -240,25 +191,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -270,15 +215,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -290,30 +231,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -325,30 +259,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -360,39 +287,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -403,282 +319,125 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
+</div><aside class="hidden clearfix">
 <nav id=TableOfContents>
 <ul>
 <li><a href=#tables>Tables</a>
 <ul>
-<li><a href=#table-metadata>Table metadata</a></li>
-<li><a href=#scanning>Scanning</a></li>
-<li><a href=#update-operations>Update operations</a></li>
-<li><a href=#transactions>Transactions</a></li>
-</ul>
-</li>
-<li><a href=#types>Types</a>
+<li><a href=#table-metadata>Table metadata</a></li><li><a href=#scanning>Scanning</a></li><li><a href=#update-operations>Update operations</a></li><li><a href=#transactions>Transactions</a></li></ul></li><li><a href=#types>Types</a>
 <ul>
-<li><a href=#primitives>Primitives</a></li>
-<li><a href=#nested-types>Nested types</a></li>
-</ul>
-</li>
-<li><a href=#expressions>Expressions</a>
+<li><a href=#primitives>Primitives</a></li><li><a href=#nested-types>Nested types</a></li></ul></li><li><a href=#expressions>Expressions</a>
 <ul>
-<li><a href=#expression-binding>Expression binding</a></li>
-<li><a href=#expression-example>Expression example</a></li>
-</ul>
-</li>
-<li><a href=#modules>Modules</a></li>
-</ul>
-</nav>
-</aside>
-</header>
-<article class=markdown>
+<li><a href=#expression-binding>Expression binding</a></li><li><a href=#expression-example>Expression example</a></li></ul></li><li><a href=#modules>Modules</a></li></ul></nav></aside></header><article class=markdown>
 <h1 id=iceberg-java-api>
 Iceberg Java API
 <a class=anchor href=#iceberg-java-api>#</a>
-</h1>
-<h2 id=tables>
+</h1><h2 id=tables>
 Tables
 <a class=anchor href=#tables>#</a>
-</h2>
-<p>The main purpose of the Iceberg API is to manage table metadata, like schema, partition spec, metadata, and data files that store table data.</p>
-<p>Table metadata and operations are accessed through the <code>Table</code> interface. This interface will return table information.</p>
-<h3 id=table-metadata>
+</h2><p>The main purpose of the Iceberg API is to manage table metadata, like schema, partition spec, metadata, and data files that store table data.</p><p>Table metadata and operations are accessed through the <code>Table</code> interface. This interface will return table information.</p><h3 id=table-metadata>
 Table metadata
 <a class=anchor href=#table-metadata>#</a>
-</h3>
-<p>The <a href=../../../javadoc/0.13.1/index.html?org/apache/iceberg/Table.html><code>Table</code> interface</a> provides access to the table metadata:</p>
-<ul>
-<li><code>schema</code> returns the current table <a href=../schemas>schema</a></li>
-<li><code>spec</code> returns the current table partition spec</li>
-<li><code>properties</code> returns a map of key-value <a href=../configuration>properties</a></li>
-<li><code>currentSnapshot</code> returns the current table snapshot</li>
-<li><code>snapshots</code> returns all valid snapshots for the table</li>
-<li><code>snapshot(id)</code> returns a specific snapshot by ID</li>
-<li><code>location</code> returns the table&rsquo;s base location</li>
-</ul>
-<p>Tables also provide <code>refresh</code> to update the table to the latest version, and expose helpers:</p>
-<ul>
-<li><code>io</code> returns the <code>FileIO</code> used to read and write table files</li>
-<li><code>locationProvider</code> returns a <code>LocationProvider</code> used to create paths for data and metadata files</li>
-</ul>
-<h3 id=scanning>
+</h3><p>The <a href=../../../javadoc/0.13.1/index.html?org/apache/iceberg/Table.html><code>Table</code> interface</a> provides access to the table metadata:</p><ul>
+<li><code>schema</code> returns the current table <a href=../schemas>schema</a></li><li><code>spec</code> returns the current table partition spec</li><li><code>properties</code> returns a map of key-value <a href=../configuration>properties</a></li><li><code>currentSnapshot</code> returns the current table snapshot</li><li><code>snapshots</code> returns all valid snapshots for the table</li><li><code>snapshot(id)</code> returns a specific snapshot by ID</li><li><code>location</code> ret [...]
+<li><code>io</code> returns the <code>FileIO</code> used to read and write table files</li><li><code>locationProvider</code> returns a <code>LocationProvider</code> used to create paths for data and metadata files</li></ul><h3 id=scanning>
 Scanning
 <a class=anchor href=#scanning>#</a>
-</h3>
-<h4 id=file-level>
+</h3><h4 id=file-level>
 File level
 <a class=anchor href=#file-level>#</a>
-</h4>
-<p>Iceberg table scans start by creating a <code>TableScan</code> object with <code>newScan</code>.</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java>TableScan scan <span style=color:#f92672>=</span> table<span style=color:#f92672>.</span><span style=color:#a6e22e>newScan</span><span style=color:#f92672>();</span>
-</code></pre></div><p>To configure a scan, call <code>filter</code> and <code>select</code> on the <code>TableScan</code> to get a new <code>TableScan</code> with those changes.</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java>TableScan filteredScan <span style=color:#f92672>=</span> scan<span style=color:#f92672>.</span><span style=color:#a6e22e>filter</span><span style=color:#f92672>(</span>Expressions<span style=color:#f92672>.</span><span style=color:#a6e22e>equal</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;id&#34;</sp [...]
-</code></pre></div><p>Calls to configuration methods create a new <code>TableScan</code> so that each <code>TableScan</code> is immutable and won&rsquo;t change unexpectedly if shared across threads.</p>
-<p>When a scan is configured, <code>planFiles</code>, <code>planTasks</code>, and <code>schema</code> are used to return files, tasks, and the read projection.</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java>TableScan scan <span style=color:#f92672>=</span> table<span style=color:#f92672>.</span><span style=color:#a6e22e>newScan</span><span style=color:#f92672>()</span>
-    <span style=color:#f92672>.</span><span style=color:#a6e22e>filter</span><span style=color:#f92672>(</span>Expressions<span style=color:#f92672>.</span><span style=color:#a6e22e>equal</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;id&#34;</span><span style=color:#f92672>,</span> 5<span style=color:#f92672>))</span>
-    <span style=color:#f92672>.</span><span style=color:#a6e22e>select</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;id&#34;</span><span style=color:#f92672>,</span> <span style=color:#e6db74>&#34;data&#34;</span><span style=color:#f92672>);</span>
-
-Schema projection <span style=color:#f92672>=</span> scan<span style=color:#f92672>.</span><span style=color:#a6e22e>schema</span><span style=color:#f92672>();</span>
-Iterable<span style=color:#f92672>&lt;</span>CombinedScanTask<span style=color:#f92672>&gt;</span> tasks <span style=color:#f92672>=</span> scan<span style=color:#f92672>.</span><span style=color:#a6e22e>planTasks</span><span style=color:#f92672>();</span>
-</code></pre></div><p>Use <code>asOfTime</code> or <code>useSnapshot</code> to configure the table snapshot for time travel queries.</p>
-<h4 id=row-level>
+</h4><p>Iceberg table scans start by creating a <code>TableScan</code> object with <code>newScan</code>.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span>TableScan scan <span style=color:#f92672>=</span> table<span style=color:#f92672>.</span><span style=color:#a6e22e>newScan</span><span style=color:#f92672>();</span>
+</span></span></code></pre></div><p>To configure a scan, call <code>filter</code> and <code>select</code> on the <code>TableScan</code> to get a new <code>TableScan</code> with those changes.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span>TableScan filteredScan <span style=color:#f92672>=</span> scan<span style=color:#f92672>.</span><span  [...]
+</span></span></code></pre></div><p>Calls to configuration methods create a new <code>TableScan</code> so that each <code>TableScan</code> is immutable and won&rsquo;t change unexpectedly if shared across threads.</p><p>When a scan is configured, <code>planFiles</code>, <code>planTasks</code>, and <code>schema</code> are used to return files, tasks, and the read projection.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4; [...]
+</span></span><span style=display:flex><span>    <span style=color:#f92672>.</span><span style=color:#a6e22e>filter</span><span style=color:#f92672>(</span>Expressions<span style=color:#f92672>.</span><span style=color:#a6e22e>equal</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;id&#34;</span><span style=color:#f92672>,</span> 5<span style=color:#f92672>))</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>.</span><span style=color:#a6e22e>select</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;id&#34;</span><span style=color:#f92672>,</span> <span style=color:#e6db74>&#34;data&#34;</span><span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>Schema projection <span style=color:#f92672>=</span> scan<span style=color:#f92672>.</span><span style=color:#a6e22e>schema</span><span style=color:#f92672>();</span>
+</span></span><span style=display:flex><span>Iterable<span style=color:#f92672>&lt;</span>CombinedScanTask<span style=color:#f92672>&gt;</span> tasks <span style=color:#f92672>=</span> scan<span style=color:#f92672>.</span><span style=color:#a6e22e>planTasks</span><span style=color:#f92672>();</span>
+</span></span></code></pre></div><p>Use <code>asOfTime</code> or <code>useSnapshot</code> to configure the table snapshot for time travel queries.</p><h4 id=row-level>
 Row level
 <a class=anchor href=#row-level>#</a>
-</h4>
-<p>Iceberg table scans start by creating a <code>ScanBuilder</code> object with <code>IcebergGenerics.read</code>.</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java>ScanBuilder scanBuilder <span style=color:#f92672>=</span> IcebergGenerics<span style=color:#f92672>.</span><span style=color:#a6e22e>read</span><span style=color:#f92672>(</span>table<span style=color:#f92672>)</span>
-</code></pre></div><p>To configure a scan, call <code>where</code> and <code>select</code> on the <code>ScanBuilder</code> to get a new <code>ScanBuilder</code> with those changes.</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java>scanBuilder<span style=color:#f92672>.</span><span style=color:#a6e22e>where</span><span style=color:#f92672>(</span>Expressions<span style=color:#f92672>.</span><span style=color:#a6e22e>equal</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;id&#34;</span><span style=color:#f92672>,</span> 5<span style=c [...]
-</code></pre></div><p>When a scan is configured, call method <code>build</code> to execute scan. <code>build</code> return <code>CloseableIterable&lt;Record></code></p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java>CloseableIterable<span style=color:#f92672>&lt;</span>Record<span style=color:#f92672>&gt;</span> result <span style=color:#f92672>=</span> IcebergGenerics<span style=color:#f92672>.</span><span style=color:#a6e22e>read</span><span style=color:#f92672>(</span>table<span style=color:#f92672>)</span>
-        <span style=color:#f92672>.</span><span style=color:#a6e22e>where</span><span style=color:#f92672>(</span>Expressions<span style=color:#f92672>.</span><span style=color:#a6e22e>lessThan</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;id&#34;</span><span style=color:#f92672>,</span> 5<span style=color:#f92672>))</span>
-        <span style=color:#f92672>.</span><span style=color:#a6e22e>build</span><span style=color:#f92672>();</span>
-</code></pre></div><p>where <code>Record</code> is Iceberg record for iceberg-data module <code>org.apache.iceberg.data.Record</code>.</p>
-<h3 id=update-operations>
+</h4><p>Iceberg table scans start by creating a <code>ScanBuilder</code> object with <code>IcebergGenerics.read</code>.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span>ScanBuilder scanBuilder <span style=color:#f92672>=</span> IcebergGenerics<span style=color:#f92672>.</span><span style=color:#a6e22e>read</span><span style=color:#f92672>(</ [...]
+</span></span></code></pre></div><p>To configure a scan, call <code>where</code> and <code>select</code> on the <code>ScanBuilder</code> to get a new <code>ScanBuilder</code> with those changes.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span>scanBuilder<span style=color:#f92672>.</span><span style=color:#a6e22e>where</span><span style=colo [...]
+</span></span></code></pre></div><p>When a scan is configured, call method <code>build</code> to execute scan. <code>build</code> return <code>CloseableIterable&lt;Record></code></p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span>CloseableIterable<span style=color:#f92672>&lt;</span>Record<span style=color:#f92672>&gt;</span> result <span styl [...]
+</span></span><span style=display:flex><span>        <span style=color:#f92672>.</span><span style=color:#a6e22e>where</span><span style=color:#f92672>(</span>Expressions<span style=color:#f92672>.</span><span style=color:#a6e22e>lessThan</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;id&#34;</span><span style=color:#f92672>,</span> 5<span style=color:#f92672>))</span>
+</span></span><span style=display:flex><span>        <span style=color:#f92672>.</span><span style=color:#a6e22e>build</span><span style=color:#f92672>();</span>
+</span></span></code></pre></div><p>where <code>Record</code> is Iceberg record for iceberg-data module <code>org.apache.iceberg.data.Record</code>.</p><h3 id=update-operations>
 Update operations
 <a class=anchor href=#update-operations>#</a>
-</h3>
-<p><code>Table</code> also exposes operations that update the table. These operations use a builder pattern, <a href=../../../javadoc/0.13.1/index.html?org/apache/iceberg/PendingUpdate.html><code>PendingUpdate</code></a>, that commits when <code>PendingUpdate#commit</code> is called.</p>
-<p>For example, updating the table schema is done by calling <code>updateSchema</code>, adding updates to the builder, and finally calling <code>commit</code> to commit the pending changes to the table:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java>table<span style=color:#f92672>.</span><span style=color:#a6e22e>updateSchema</span><span style=color:#f92672>()</span>
-    <span style=color:#f92672>.</span><span style=color:#a6e22e>addColumn</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;count&#34;</span><span style=color:#f92672>,</span> Types<span style=color:#f92672>.</span><span style=color:#a6e22e>LongType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>())</span>
-    <span style=color:#f92672>.</span><span style=color:#a6e22e>commit</span><span style=color:#f92672>();</span>
-</code></pre></div><p>Available operations to update a table are:</p>
-<ul>
-<li><code>updateSchema</code> &ndash; update the table schema</li>
-<li><code>updateProperties</code> &ndash; update table properties</li>
-<li><code>updateLocation</code> &ndash; update the table&rsquo;s base location</li>
-<li><code>newAppend</code> &ndash; used to append data files</li>
-<li><code>newFastAppend</code> &ndash; used to append data files, will not compact metadata</li>
-<li><code>newOverwrite</code> &ndash; used to append data files and remove files that are overwritten</li>
-<li><code>newDelete</code> &ndash; used to delete data files</li>
-<li><code>newRewrite</code> &ndash; used to rewrite data files; will replace existing files with new versions</li>
-<li><code>newTransaction</code> &ndash; create a new table-level transaction</li>
-<li><code>rewriteManifests</code> &ndash; rewrite manifest data by clustering files, for faster scan planning</li>
-<li><code>rollback</code> &ndash; rollback the table state to a specific snapshot</li>
-</ul>
-<h3 id=transactions>
+</h3><p><code>Table</code> also exposes operations that update the table. These operations use a builder pattern, <a href=../../../javadoc/0.13.1/index.html?org/apache/iceberg/PendingUpdate.html><code>PendingUpdate</code></a>, that commits when <code>PendingUpdate#commit</code> is called.</p><p>For example, updating the table schema is done by calling <code>updateSchema</code>, adding updates to the builder, and finally calling <code>commit</code> to commit the pending changes to the tab [...]
+</span></span><span style=display:flex><span>    <span style=color:#f92672>.</span><span style=color:#a6e22e>addColumn</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;count&#34;</span><span style=color:#f92672>,</span> Types<span style=color:#f92672>.</span><span style=color:#a6e22e>LongType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>())</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>.</span><span style=color:#a6e22e>commit</span><span style=color:#f92672>();</span>
+</span></span></code></pre></div><p>Available operations to update a table are:</p><ul>
+<li><code>updateSchema</code> &ndash; update the table schema</li><li><code>updateProperties</code> &ndash; update table properties</li><li><code>updateLocation</code> &ndash; update the table&rsquo;s base location</li><li><code>newAppend</code> &ndash; used to append data files</li><li><code>newFastAppend</code> &ndash; used to append data files, will not compact metadata</li><li><code>newOverwrite</code> &ndash; used to append data files and remove files that are overwritten</li><li><c [...]
 Transactions
 <a class=anchor href=#transactions>#</a>
-</h3>
-<p>Transactions are used to commit multiple table changes in a single atomic operation. A transaction is used to create individual operations using factory methods, like <code>newAppend</code>, just like working with a <code>Table</code>. Operations created by a transaction are committed as a group when <code>commitTransaction</code> is called.</p>
-<p>For example, deleting and appending a file in the same transaction:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java>Transaction t <span style=color:#f92672>=</span> table<span style=color:#f92672>.</span><span style=color:#a6e22e>newTransaction</span><span style=color:#f92672>();</span>
-
-<span style=color:#75715e>// commit operations to the transaction
-</span><span style=color:#75715e></span>t<span style=color:#f92672>.</span><span style=color:#a6e22e>newDelete</span><span style=color:#f92672>().</span><span style=color:#a6e22e>deleteFromRowFilter</span><span style=color:#f92672>(</span>filter<span style=color:#f92672>).</span><span style=color:#a6e22e>commit</span><span style=color:#f92672>();</span>
-t<span style=color:#f92672>.</span><span style=color:#a6e22e>newAppend</span><span style=color:#f92672>().</span><span style=color:#a6e22e>appendFile</span><span style=color:#f92672>(</span>data<span style=color:#f92672>).</span><span style=color:#a6e22e>commit</span><span style=color:#f92672>();</span>
-
-<span style=color:#75715e>// commit all the changes to the table
-</span><span style=color:#75715e></span>t<span style=color:#f92672>.</span><span style=color:#a6e22e>commitTransaction</span><span style=color:#f92672>();</span>
-</code></pre></div><h2 id=types>
+</h3><p>Transactions are used to commit multiple table changes in a single atomic operation. A transaction is used to create individual operations using factory methods, like <code>newAppend</code>, just like working with a <code>Table</code>. Operations created by a transaction are committed as a group when <code>commitTransaction</code> is called.</p><p>For example, deleting and appending a file in the same transaction:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;backgr [...]
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#75715e>// commit operations to the transaction
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>t<span style=color:#f92672>.</span><span style=color:#a6e22e>newDelete</span><span style=color:#f92672>().</span><span style=color:#a6e22e>deleteFromRowFilter</span><span style=color:#f92672>(</span>filter<span style=color:#f92672>).</span><span style=color:#a6e22e>commit</span><span style=color:#f92672>();</span>
+</span></span><span style=display:flex><span>t<span style=color:#f92672>.</span><span style=color:#a6e22e>newAppend</span><span style=color:#f92672>().</span><span style=color:#a6e22e>appendFile</span><span style=color:#f92672>(</span>data<span style=color:#f92672>).</span><span style=color:#a6e22e>commit</span><span style=color:#f92672>();</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#75715e>// commit all the changes to the table
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>t<span style=color:#f92672>.</span><span style=color:#a6e22e>commitTransaction</span><span style=color:#f92672>();</span>
+</span></span></code></pre></div><h2 id=types>
 Types
 <a class=anchor href=#types>#</a>
-</h2>
-<p>Iceberg data types are located in the <a href=../../../javadoc/0.13.1/index.html?org/apache/iceberg/types/package-summary.html><code>org.apache.iceberg.types</code> package</a>.</p>
-<h3 id=primitives>
+</h2><p>Iceberg data types are located in the <a href=../../../javadoc/0.13.1/index.html?org/apache/iceberg/types/package-summary.html><code>org.apache.iceberg.types</code> package</a>.</p><h3 id=primitives>
 Primitives
 <a class=anchor href=#primitives>#</a>
-</h3>
-<p>Primitive type instances are available from static methods in each type class. Types without parameters use <code>get</code>, and types like <code>decimal</code> use factory methods:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java>Types<span style=color:#f92672>.</span><span style=color:#a6e22e>IntegerType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>()</span>    <span style=color:#75715e>// int
-</span><span style=color:#75715e></span>Types<span style=color:#f92672>.</span><span style=color:#a6e22e>DoubleType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>()</span>     <span style=color:#75715e>// double
-</span><span style=color:#75715e></span>Types<span style=color:#f92672>.</span><span style=color:#a6e22e>DecimalType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>of</span><span style=color:#f92672>(</span>9<span style=color:#f92672>,</span> 2<span style=color:#f92672>)</span> <span style=color:#75715e>// decimal(9, 2)
-</span></code></pre></div><h3 id=nested-types>
+</h3><p>Primitive type instances are available from static methods in each type class. Types without parameters use <code>get</code>, and types like <code>decimal</code> use factory methods:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span>Types<span style=color:#f92672>.</span><span style=color:#a6e22e>IntegerType</span><span style=color:#f [...]
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>Types<span style=color:#f92672>.</span><span style=color:#a6e22e>DoubleType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>()</span>     <span style=color:#75715e>// double
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>Types<span style=color:#f92672>.</span><span style=color:#a6e22e>DecimalType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>of</span><span style=color:#f92672>(</span>9<span style=color:#f92672>,</span> 2<span style=color:#f92672>)</span> <span style=color:#75715e>// decimal(9, 2)
+</span></span></span></code></pre></div><h3 id=nested-types>
 Nested types
 <a class=anchor href=#nested-types>#</a>
-</h3>
-<p>Structs, maps, and lists are created using factory methods in type classes.</p>
-<p>Like struct fields, map keys or values and list elements are tracked as nested fields. Nested fields track <a href=../evolution#correctness>field IDs</a> and nullability.</p>
-<p>Struct fields are created using <code>NestedField.optional</code> or <code>NestedField.required</code>. Map value and list element nullability is set in the map and list factory methods.</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=color:#75715e>// struct&lt;1 id: int, 2 data: optional string&gt;
-</span><span style=color:#75715e></span>StructType struct <span style=color:#f92672>=</span> Struct<span style=color:#f92672>.</span><span style=color:#a6e22e>of</span><span style=color:#f92672>(</span>
-    Types<span style=color:#f92672>.</span><span style=color:#a6e22e>NestedField</span><span style=color:#f92672>.</span><span style=color:#a6e22e>required</span><span style=color:#f92672>(</span>1<span style=color:#f92672>,</span> <span style=color:#e6db74>&#34;id&#34;</span><span style=color:#f92672>,</span> Types<span style=color:#f92672>.</span><span style=color:#a6e22e>IntegerType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>( [...]
-    Types<span style=color:#f92672>.</span><span style=color:#a6e22e>NestedField</span><span style=color:#f92672>.</span><span style=color:#a6e22e>optional</span><span style=color:#f92672>(</span>2<span style=color:#f92672>,</span> <span style=color:#e6db74>&#34;data&#34;</span><span style=color:#f92672>,</span> Types<span style=color:#f92672>.</span><span style=color:#a6e22e>StringType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672> [...]
-  <span style=color:#f92672>)</span>
-</code></pre></div><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=color:#75715e>// map&lt;1 key: int, 2 value: optional string&gt;
-</span><span style=color:#75715e></span>MapType map <span style=color:#f92672>=</span> MapType<span style=color:#f92672>.</span><span style=color:#a6e22e>ofOptional</span><span style=color:#f92672>(</span>
-    1<span style=color:#f92672>,</span> 2<span style=color:#f92672>,</span>
-    Types<span style=color:#f92672>.</span><span style=color:#a6e22e>IntegerType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>(),</span>
-    Types<span style=color:#f92672>.</span><span style=color:#a6e22e>StringType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>()</span>
-  <span style=color:#f92672>)</span>
-</code></pre></div><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=color:#75715e>// array&lt;1 element: int&gt;
-</span><span style=color:#75715e></span>ListType list <span style=color:#f92672>=</span> ListType<span style=color:#f92672>.</span><span style=color:#a6e22e>ofRequired</span><span style=color:#f92672>(</span>1<span style=color:#f92672>,</span> IntegerType<span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>());</span>
-</code></pre></div><h2 id=expressions>
+</h3><p>Structs, maps, and lists are created using factory methods in type classes.</p><p>Like struct fields, map keys or values and list elements are tracked as nested fields. Nested fields track <a href=../evolution#correctness>field IDs</a> and nullability.</p><p>Struct fields are created using <code>NestedField.optional</code> or <code>NestedField.required</code>. Map value and list element nullability is set in the map and list factory methods.</p><div class=highlight><pre tabindex= [...]
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>StructType struct <span style=color:#f92672>=</span> Struct<span style=color:#f92672>.</span><span style=color:#a6e22e>of</span><span style=color:#f92672>(</span>
+</span></span><span style=display:flex><span>    Types<span style=color:#f92672>.</span><span style=color:#a6e22e>NestedField</span><span style=color:#f92672>.</span><span style=color:#a6e22e>required</span><span style=color:#f92672>(</span>1<span style=color:#f92672>,</span> <span style=color:#e6db74>&#34;id&#34;</span><span style=color:#f92672>,</span> Types<span style=color:#f92672>.</span><span style=color:#a6e22e>IntegerType</span><span style=color:#f92672>.</span><span style=color: [...]
+</span></span><span style=display:flex><span>    Types<span style=color:#f92672>.</span><span style=color:#a6e22e>NestedField</span><span style=color:#f92672>.</span><span style=color:#a6e22e>optional</span><span style=color:#f92672>(</span>2<span style=color:#f92672>,</span> <span style=color:#e6db74>&#34;data&#34;</span><span style=color:#f92672>,</span> Types<span style=color:#f92672>.</span><span style=color:#a6e22e>StringType</span><span style=color:#f92672>.</span><span style=color [...]
+</span></span><span style=display:flex><span>  <span style=color:#f92672>)</span>
+</span></span></code></pre></div><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#75715e>// map&lt;1 key: int, 2 value: optional string&gt;
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>MapType map <span style=color:#f92672>=</span> MapType<span style=color:#f92672>.</span><span style=color:#a6e22e>ofOptional</span><span style=color:#f92672>(</span>
+</span></span><span style=display:flex><span>    1<span style=color:#f92672>,</span> 2<span style=color:#f92672>,</span>
+</span></span><span style=display:flex><span>    Types<span style=color:#f92672>.</span><span style=color:#a6e22e>IntegerType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>(),</span>
+</span></span><span style=display:flex><span>    Types<span style=color:#f92672>.</span><span style=color:#a6e22e>StringType</span><span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>()</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>)</span>
+</span></span></code></pre></div><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#75715e>// array&lt;1 element: int&gt;
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>ListType list <span style=color:#f92672>=</span> ListType<span style=color:#f92672>.</span><span style=color:#a6e22e>ofRequired</span><span style=color:#f92672>(</span>1<span style=color:#f92672>,</span> IntegerType<span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>());</span>
+</span></span></code></pre></div><h2 id=expressions>
 Expressions
 <a class=anchor href=#expressions>#</a>
-</h2>
-<p>Iceberg&rsquo;s expressions are used to configure table scans. To create expressions, use the factory methods in <a href=../../../javadoc/0.13.1/index.html?org/apache/iceberg/expressions/Expressions.html><code>Expressions</code></a>.</p>
-<p>Supported predicate expressions are:</p>
-<ul>
-<li><code>isNull</code></li>
-<li><code>notNull</code></li>
-<li><code>equal</code></li>
-<li><code>notEqual</code></li>
-<li><code>lessThan</code></li>
-<li><code>lessThanOrEqual</code></li>
-<li><code>greaterThan</code></li>
-<li><code>greaterThanOrEqual</code></li>
-<li><code>in</code></li>
-<li><code>notIn</code></li>
-<li><code>startsWith</code></li>
-<li><code>notStartsWith</code></li>
-</ul>
-<p>Supported expression operations are:</p>
-<ul>
-<li><code>and</code></li>
-<li><code>or</code></li>
-<li><code>not</code></li>
-</ul>
-<p>Constant expressions are:</p>
-<ul>
-<li><code>alwaysTrue</code></li>
-<li><code>alwaysFalse</code></li>
-</ul>
-<h3 id=expression-binding>
+</h2><p>Iceberg&rsquo;s expressions are used to configure table scans. To create expressions, use the factory methods in <a href=../../../javadoc/0.13.1/index.html?org/apache/iceberg/expressions/Expressions.html><code>Expressions</code></a>.</p><p>Supported predicate expressions are:</p><ul>
+<li><code>isNull</code></li><li><code>notNull</code></li><li><code>equal</code></li><li><code>notEqual</code></li><li><code>lessThan</code></li><li><code>lessThanOrEqual</code></li><li><code>greaterThan</code></li><li><code>greaterThanOrEqual</code></li><li><code>in</code></li><li><code>notIn</code></li><li><code>startsWith</code></li><li><code>notStartsWith</code></li></ul><p>Supported expression operations are:</p><ul>
+<li><code>and</code></li><li><code>or</code></li><li><code>not</code></li></ul><p>Constant expressions are:</p><ul>
+<li><code>alwaysTrue</code></li><li><code>alwaysFalse</code></li></ul><h3 id=expression-binding>
 Expression binding
 <a class=anchor href=#expression-binding>#</a>
-</h3>
-<p>When created, expressions are unbound. Before an expression is used, it will be bound to a data type to find the field ID the expression name represents, and to convert predicate literals.</p>
-<p>For example, before using the expression <code>lessThan("x", 10)</code>, Iceberg needs to determine which column <code>"x"</code> refers to and convert <code>10</code> to that column&rsquo;s data type.</p>
-<p>If the expression could be bound to the type <code>struct&lt;1 x: long, 2 y: long></code> or to <code>struct&lt;11 x: int, 12 y: int></code>.</p>
-<h3 id=expression-example>
+</h3><p>When created, expressions are unbound. Before an expression is used, it will be bound to a data type to find the field ID the expression name represents, and to convert predicate literals.</p><p>For example, before using the expression <code>lessThan("x", 10)</code>, Iceberg needs to determine which column <code>"x"</code> refers to and convert <code>10</code> to that column&rsquo;s data type.</p><p>If the expression could be bound to the type <code>struct&lt;1 x: long, 2 y: long [...]
 Expression example
 <a class=anchor href=#expression-example>#</a>
-</h3>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java>table<span style=color:#f92672>.</span><span style=color:#a6e22e>newScan</span><span style=color:#f92672>()</span>
-    <span style=color:#f92672>.</span><span style=color:#a6e22e>filter</span><span style=color:#f92672>(</span>Expressions<span style=color:#f92672>.</span><span style=color:#a6e22e>greaterThanOrEqual</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;x&#34;</span><span style=color:#f92672>,</span> 5<span style=color:#f92672>))</span>
-    <span style=color:#f92672>.</span><span style=color:#a6e22e>filter</span><span style=color:#f92672>(</span>Expressions<span style=color:#f92672>.</span><span style=color:#a6e22e>lessThan</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;x&#34;</span><span style=color:#f92672>,</span> 10<span style=color:#f92672>))</span>
-</code></pre></div><h2 id=modules>
+</h3><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span>table<span style=color:#f92672>.</span><span style=color:#a6e22e>newScan</span><span style=color:#f92672>()</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>.</span><span style=color:#a6e22e>filter</span><span style=color:#f92672>(</span>Expressions<span style=color:#f92672>.</span><span style=color:#a6e22e>greaterThanOrEqual</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;x&#34;</span><span style=color:#f92672>,</span> 5<span style=color:#f92672>))</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>.</span><span style=color:#a6e22e>filter</span><span style=color:#f92672>(</span>Expressions<span style=color:#f92672>.</span><span style=color:#a6e22e>lessThan</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;x&#34;</span><span style=color:#f92672>,</span> 10<span style=color:#f92672>))</span>
+</span></span></code></pre></div><h2 id=modules>
 Modules
 <a class=anchor href=#modules>#</a>
-</h2>
-<p>Iceberg table support is organized in library modules:</p>
-<ul>
-<li><code>iceberg-common</code> contains utility classes used in other modules</li>
-<li><code>iceberg-api</code> contains the public Iceberg API, including expressions, types, tables, and operations</li>
-<li><code>iceberg-arrow</code> is an implementation of the Iceberg type system for reading and writing data stored in Iceberg tables using Apache Arrow as the in-memory data format</li>
-<li><code>iceberg-aws</code> contains implementations of the Iceberg API to be used with tables stored on AWS S3 and/or for tables defined using the AWS Glue data catalog</li>
-<li><code>iceberg-core</code> contains implementations of the Iceberg API and support for Avro data files, <strong>this is what processing engines should depend on</strong></li>
-<li><code>iceberg-parquet</code> is an optional module for working with tables backed by Parquet files</li>
-<li><code>iceberg-orc</code> is an optional module for working with tables backed by ORC files (<em>experimental</em>)</li>
-<li><code>iceberg-hive-metastore</code> is an implementation of Iceberg tables backed by the Hive metastore Thrift client</li>
-</ul>
-<p>This project Iceberg also has modules for adding Iceberg support to processing engines and associated tooling:</p>
-<ul>
-<li><code>iceberg-spark2</code> is an implementation of Spark&rsquo;s Datasource V2 API in 2.4 for Iceberg (use iceberg-spark-runtime for a shaded version)</li>
-<li><code>iceberg-spark3</code> is an implementation of Spark&rsquo;s Datasource V2 API in 3.0 for Iceberg (use iceberg-spark3-runtime for a shaded version)</li>
-<li><code>iceberg-spark-3.1</code> is an implementation of Spark&rsquo;s Datasource V2 API in 3.1 for Iceberg (use iceberg-spark-runtime-3.1 for a shaded version)</li>
-<li><code>iceberg-spark-3.2</code> is an implementation of Spark&rsquo;s Datasource V2 API in 3.2 for Iceberg (use iceberg-spark-runtime-3.2 for a shaded version)</li>
-<li><code>iceberg-flink</code> is an implementation of Flink&rsquo;s Table and DataStream API for Iceberg (use iceberg-flink-runtime for a shaded version)</li>
-<li><code>iceberg-hive3</code> is an implementation of Hive 3 specific SerDe&rsquo;s for Timestamp, TimestampWithZone, and Date object inspectors (use iceberg-hive-runtime for a shaded version).</li>
-<li><code>iceberg-mr</code> is an implementation of MapReduce and Hive InputFormats and SerDes for Iceberg (use iceberg-hive-runtime for a shaded version for use with Hive)</li>
-<li><code>iceberg-nessie</code> is a module used to integrate Iceberg table metadata history and operations with <a href=https://projectnessie.org/>Project Nessie</a></li>
-<li><code>iceberg-data</code> is a client library used to read Iceberg tables from JVM applications</li>
-<li><code>iceberg-pig</code> is an implementation of Pig&rsquo;s LoadFunc API for Iceberg</li>
-<li><code>iceberg-runtime</code> generates a shaded runtime jar for Spark to integrate with iceberg tables</li>
-</ul>
-</article>
-<footer class=book-footer>
+</h2><p>Iceberg table support is organized in library modules:</p><ul>
+<li><code>iceberg-common</code> contains utility classes used in other modules</li><li><code>iceberg-api</code> contains the public Iceberg API, including expressions, types, tables, and operations</li><li><code>iceberg-arrow</code> is an implementation of the Iceberg type system for reading and writing data stored in Iceberg tables using Apache Arrow as the in-memory data format</li><li><code>iceberg-aws</code> contains implementations of the Iceberg API to be used with tables stored on [...]
+<li><code>iceberg-spark2</code> is an implementation of Spark&rsquo;s Datasource V2 API in 2.4 for Iceberg (use iceberg-spark-runtime for a shaded version)</li><li><code>iceberg-spark3</code> is an implementation of Spark&rsquo;s Datasource V2 API in 3.0 for Iceberg (use iceberg-spark3-runtime for a shaded version)</li><li><code>iceberg-spark-3.1</code> is an implementation of Spark&rsquo;s Datasource V2 API in 3.1 for Iceberg (use iceberg-spark-runtime-3.1 for a shaded version)</li><li> [...]
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
 <nav id=TableOfContents>
 <ul>
 <li><a href=#tables>Tables</a>
 <ul>
-<li><a href=#table-metadata>Table metadata</a></li>
-<li><a href=#scanning>Scanning</a></li>
-<li><a href=#update-operations>Update operations</a></li>
-<li><a href=#transactions>Transactions</a></li>
-</ul>
-</li>
-<li><a href=#types>Types</a>
+<li><a href=#table-metadata>Table metadata</a></li><li><a href=#scanning>Scanning</a></li><li><a href=#update-operations>Update operations</a></li><li><a href=#transactions>Transactions</a></li></ul></li><li><a href=#types>Types</a>
 <ul>
-<li><a href=#primitives>Primitives</a></li>
-<li><a href=#nested-types>Nested types</a></li>
-</ul>
-</li>
-<li><a href=#expressions>Expressions</a>
+<li><a href=#primitives>Primitives</a></li><li><a href=#nested-types>Nested types</a></li></ul></li><li><a href=#expressions>Expressions</a>
 <ul>
-<li><a href=#expression-binding>Expression binding</a></li>
-<li><a href=#expression-example>Expression example</a></li>
-</ul>
-</li>
-<li><a href=#modules>Modules</a></li>
-</ul>
-</nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<li><a href=#expression-binding>Expression binding</a></li><li><a href=#expression-example>Expression example</a></li></ul></li><li><a href=#modules>Modules</a></li></ul></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/aws/index.html b/docs/latest/aws/index.html
index 4c0d72c..a369183 100644
--- a/docs/latest/aws/index.html
+++ b/docs/latest/aws/index.html
@@ -10,14 +10,12 @@ Enabling AWS Integration #  The iceberg-aws module is bundled with Spark and Fli
 Enabling AWS Integration #  The iceberg-aws module is bundled with Spark and Flink engine runtimes for all versions from 0.11.0 onwards. However, the AWS clients are not bundled so that you can use the same client version as your application. You will need to provide the AWS v2 SDK because that is what Iceberg depends on.">
 <meta property="og:type" content="article">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/aws/"><meta property="article:section" content="docs">
-<title>AWS | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>AWS | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
-</head>
-<body dir=ltr>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -30,19 +28,15 @@ Enabling AWS Integration #  The iceberg-aws module is bundled with Spark and Fli
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -51,34 +45,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -86,84 +71,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle checked>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -174,18 +139,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/ class=active>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -196,35 +156,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -236,25 +187,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -266,15 +211,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -286,30 +227,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -321,30 +255,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -356,39 +283,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -399,698 +315,391 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
+</div><aside class="hidden clearfix">
 <nav id=TableOfContents>
 <ul>
 <li><a href=#enabling-aws-integration>Enabling AWS Integration</a>
 <ul>
-<li><a href=#spark>Spark</a></li>
-<li><a href=#flink>Flink</a></li>
-<li><a href=#hive>Hive</a></li>
-</ul>
-</li>
-<li><a href=#catalogs>Catalogs</a>
+<li><a href=#spark>Spark</a></li><li><a href=#flink>Flink</a></li><li><a href=#hive>Hive</a></li></ul></li><li><a href=#catalogs>Catalogs</a>
 <ul>
-<li><a href=#glue-catalog>Glue Catalog</a></li>
-<li><a href=#dynamodb-catalog>DynamoDB Catalog</a></li>
-<li><a href=#rds-jdbc-catalog>RDS JDBC Catalog</a></li>
-<li><a href=#which-catalog-to-choose>Which catalog to choose?</a></li>
-</ul>
-</li>
-<li><a href=#s3-fileio>S3 FileIO</a>
+<li><a href=#glue-catalog>Glue Catalog</a></li><li><a href=#dynamodb-catalog>DynamoDB Catalog</a></li><li><a href=#rds-jdbc-catalog>RDS JDBC Catalog</a></li><li><a href=#which-catalog-to-choose>Which catalog to choose?</a></li></ul></li><li><a href=#s3-fileio>S3 FileIO</a>
 <ul>
-<li><a href=#progressive-multipart-upload>Progressive Multipart Upload</a></li>
-<li><a href=#s3-server-side-encryption>S3 Server Side Encryption</a></li>
-<li><a href=#s3-access-control-list>S3 Access Control List</a></li>
-<li><a href=#object-store-file-layout>Object Store File Layout</a></li>
-<li><a href=#s3-strong-consistency>S3 Strong Consistency</a></li>
-<li><a href=#hadoop-s3a-filesystem>Hadoop S3A FileSystem</a></li>
-<li><a href=#s3-write-checksum-verification>S3 Write Checksum Verification</a></li>
-</ul>
-</li>
-<li><a href=#aws-client-customization>AWS Client Customization</a>
+<li><a href=#progressive-multipart-upload>Progressive Multipart Upload</a></li><li><a href=#s3-server-side-encryption>S3 Server Side Encryption</a></li><li><a href=#s3-access-control-list>S3 Access Control List</a></li><li><a href=#object-store-file-layout>Object Store File Layout</a></li><li><a href=#s3-strong-consistency>S3 Strong Consistency</a></li><li><a href=#hadoop-s3a-filesystem>Hadoop S3A FileSystem</a></li><li><a href=#s3-write-checksum-verification>S3 Write Checksum Verificati [...]
 <ul>
-<li><a href=#cross-account-and-cross-region-access>Cross-Account and Cross-Region Access</a></li>
-</ul>
-</li>
-<li><a href=#run-iceberg-on-aws>Run Iceberg on AWS</a>
+<li><a href=#cross-account-and-cross-region-access>Cross-Account and Cross-Region Access</a></li></ul></li><li><a href=#run-iceberg-on-aws>Run Iceberg on AWS</a>
 <ul>
-<li><a href=#amazon-athena>Amazon Athena</a></li>
-<li><a href=#amazon-emr>Amazon EMR</a></li>
-<li><a href=#aws-eks>AWS EKS</a></li>
-<li><a href=#amazon-kinesis>Amazon Kinesis</a></li>
-</ul>
-</li>
-</ul>
-</nav>
-</aside>
-</header>
-<article class=markdown>
+<li><a href=#amazon-athena>Amazon Athena</a></li><li><a href=#amazon-emr>Amazon EMR</a></li><li><a href=#aws-eks>AWS EKS</a></li><li><a href=#amazon-kinesis>Amazon Kinesis</a></li></ul></li></ul></nav></aside></header><article class=markdown>
 <h1 id=iceberg-aws-integrations>
 Iceberg AWS Integrations
 <a class=anchor href=#iceberg-aws-integrations>#</a>
-</h1>
-<p>Iceberg provides integration with different AWS services through the <code>iceberg-aws</code> module.
-This section describes how to use Iceberg with AWS.</p>
-<h2 id=enabling-aws-integration>
+</h1><p>Iceberg provides integration with different AWS services through the <code>iceberg-aws</code> module.
+This section describes how to use Iceberg with AWS.</p><h2 id=enabling-aws-integration>
 Enabling AWS Integration
 <a class=anchor href=#enabling-aws-integration>#</a>
-</h2>
-<p>The <code>iceberg-aws</code> module is bundled with Spark and Flink engine runtimes for all versions from <code>0.11.0</code> onwards.
+</h2><p>The <code>iceberg-aws</code> module is bundled with Spark and Flink engine runtimes for all versions from <code>0.11.0</code> onwards.
 However, the AWS clients are not bundled so that you can use the same client version as your application.
 You will need to provide the AWS v2 SDK because that is what Iceberg depends on.
 You can choose to use the <a href=https://mvnrepository.com/artifact/software.amazon.awssdk/bundle>AWS SDK bundle</a>,
-or individual AWS client packages (Glue, S3, DynamoDB, KMS, STS) if you would like to have a minimal dependency footprint.</p>
-<p>All the default AWS clients use the <a href=https://mvnrepository.com/artifact/software.amazon.awssdk/url-connection-client>URL Connection HTTP Client</a>
+or individual AWS client packages (Glue, S3, DynamoDB, KMS, STS) if you would like to have a minimal dependency footprint.</p><p>All the default AWS clients use the <a href=https://mvnrepository.com/artifact/software.amazon.awssdk/url-connection-client>URL Connection HTTP Client</a>
 for HTTP connection management.
 This dependency is not part of the AWS SDK bundle and needs to be added separately.
 To choose a different HTTP client library such as <a href=https://mvnrepository.com/artifact/software.amazon.awssdk/apache-client>Apache HTTP Client</a>,
-see the section <a href=#aws-client-customization>client customization</a> for more details.</p>
-<p>All the AWS module features can be loaded through custom catalog properties,
+see the section <a href=#aws-client-customization>client customization</a> for more details.</p><p>All the AWS module features can be loaded through custom catalog properties,
 you can go to the documentations of each engine to see how to load a custom catalog.
-Here are some examples.</p>
-<h3 id=spark>
+Here are some examples.</p><h3 id=spark>
 Spark
 <a class=anchor href=#spark>#</a>
-</h3>
-<p>For example, to use AWS features with Spark 3.0 and AWS clients version 2.15.40, you can start the Spark SQL shell with:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sh data-lang=sh><span style=color:#75715e># add Iceberg dependency</span>
-ICEBERG_VERSION<span style=color:#f92672>=</span>0.13.1
-DEPENDENCIES<span style=color:#f92672>=</span><span style=color:#e6db74>&#34;org.apache.iceberg:iceberg-spark3-runtime:</span>$ICEBERG_VERSION<span style=color:#e6db74>&#34;</span>
-
-<span style=color:#75715e># add AWS dependnecy</span>
-AWS_SDK_VERSION<span style=color:#f92672>=</span>2.15.40
-AWS_MAVEN_GROUP<span style=color:#f92672>=</span>software.amazon.awssdk
-AWS_PACKAGES<span style=color:#f92672>=(</span>
-    <span style=color:#e6db74>&#34;bundle&#34;</span>
-    <span style=color:#e6db74>&#34;url-connection-client&#34;</span>
-<span style=color:#f92672>)</span>
-<span style=color:#66d9ef>for</span> pkg in <span style=color:#e6db74>&#34;</span><span style=color:#e6db74>${</span>AWS_PACKAGES[@]<span style=color:#e6db74>}</span><span style=color:#e6db74>&#34;</span>; <span style=color:#66d9ef>do</span>
-    DEPENDENCIES<span style=color:#f92672>+=</span><span style=color:#e6db74>&#34;,</span>$AWS_MAVEN_GROUP<span style=color:#e6db74>:</span>$pkg<span style=color:#e6db74>:</span>$AWS_SDK_VERSION<span style=color:#e6db74>&#34;</span>
-<span style=color:#66d9ef>done</span>
-
-<span style=color:#75715e># start Spark SQL client shell</span>
-spark-sql --packages $DEPENDENCIES <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog<span style=color:#f92672>=</span>org.apache.iceberg.spark.SparkCatalog <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.warehouse<span style=color:#f92672>=</span>s3://my-bucket/my/key/prefix <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.catalog-impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.glue.GlueCatalog <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.io-impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.s3.S3FileIO <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.lock-impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.glue.DynamoLockManager <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.lock.table<span style=color:#f92672>=</span>myGlueLockTable
-</code></pre></div><p>As you can see, In the shell command, we use <code>--packages</code> to specify the additional AWS bundle and HTTP client dependencies with their version as <code>2.15.40</code>.</p>
-<h3 id=flink>
+</h3><p>For example, to use AWS features with Spark 3.0 and AWS clients version 2.15.40, you can start the Spark SQL shell with:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sh data-lang=sh><span style=display:flex><span><span style=color:#75715e># add Iceberg dependency</span>
+</span></span><span style=display:flex><span>ICEBERG_VERSION<span style=color:#f92672>=</span>0.13.1
+</span></span><span style=display:flex><span>DEPENDENCIES<span style=color:#f92672>=</span><span style=color:#e6db74>&#34;org.apache.iceberg:iceberg-spark3-runtime:</span>$ICEBERG_VERSION<span style=color:#e6db74>&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#75715e># add AWS dependnecy</span>
+</span></span><span style=display:flex><span>AWS_SDK_VERSION<span style=color:#f92672>=</span>2.15.40
+</span></span><span style=display:flex><span>AWS_MAVEN_GROUP<span style=color:#f92672>=</span>software.amazon.awssdk
+</span></span><span style=display:flex><span>AWS_PACKAGES<span style=color:#f92672>=(</span>
+</span></span><span style=display:flex><span>    <span style=color:#e6db74>&#34;bundle&#34;</span>
+</span></span><span style=display:flex><span>    <span style=color:#e6db74>&#34;url-connection-client&#34;</span>
+</span></span><span style=display:flex><span><span style=color:#f92672>)</span>
+</span></span><span style=display:flex><span><span style=color:#66d9ef>for</span> pkg in <span style=color:#e6db74>&#34;</span><span style=color:#e6db74>${</span>AWS_PACKAGES[@]<span style=color:#e6db74>}</span><span style=color:#e6db74>&#34;</span>; <span style=color:#66d9ef>do</span>
+</span></span><span style=display:flex><span>    DEPENDENCIES<span style=color:#f92672>+=</span><span style=color:#e6db74>&#34;,</span>$AWS_MAVEN_GROUP<span style=color:#e6db74>:</span>$pkg<span style=color:#e6db74>:</span>$AWS_SDK_VERSION<span style=color:#e6db74>&#34;</span>
+</span></span><span style=display:flex><span><span style=color:#66d9ef>done</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#75715e># start Spark SQL client shell</span>
+</span></span><span style=display:flex><span>spark-sql --packages $DEPENDENCIES <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog<span style=color:#f92672>=</span>org.apache.iceberg.spark.SparkCatalog <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.warehouse<span style=color:#f92672>=</span>s3://my-bucket/my/key/prefix <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.catalog-impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.glue.GlueCatalog <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.io-impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.s3.S3FileIO <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.lock-impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.glue.DynamoLockManager <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.lock.table<span style=color:#f92672>=</span>myGlueLockTable
+</span></span></code></pre></div><p>As you can see, In the shell command, we use <code>--packages</code> to specify the additional AWS bundle and HTTP client dependencies with their version as <code>2.15.40</code>.</p><h3 id=flink>
 Flink
 <a class=anchor href=#flink>#</a>
-</h3>
-<p>To use AWS module with Flink, you can download the necessary dependencies and specify them when starting the Flink SQL client:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sh data-lang=sh><span style=color:#75715e># download Iceberg dependency</span>
-ICEBERG_VERSION<span style=color:#f92672>=</span>0.13.1
-MAVEN_URL<span style=color:#f92672>=</span>https://repo1.maven.org/maven2
-ICEBERG_MAVEN_URL<span style=color:#f92672>=</span>$MAVEN_URL/org/apache/iceberg
-wget $ICEBERG_MAVEN_URL/iceberg-flink-runtime/$ICEBERG_VERSION/iceberg-flink-runtime-$ICEBERG_VERSION.jar
-
-<span style=color:#75715e># download AWS dependnecy</span>
-AWS_SDK_VERSION<span style=color:#f92672>=</span>2.15.40
-AWS_MAVEN_URL<span style=color:#f92672>=</span>$MAVEN_URL/software/amazon/awssdk
-AWS_PACKAGES<span style=color:#f92672>=(</span>
-    <span style=color:#e6db74>&#34;bundle&#34;</span>
-    <span style=color:#e6db74>&#34;url-connection-client&#34;</span>
-<span style=color:#f92672>)</span>
-<span style=color:#66d9ef>for</span> pkg in <span style=color:#e6db74>&#34;</span><span style=color:#e6db74>${</span>AWS_PACKAGES[@]<span style=color:#e6db74>}</span><span style=color:#e6db74>&#34;</span>; <span style=color:#66d9ef>do</span>
-    wget $AWS_MAVEN_URL/$pkg/$AWS_SDK_VERSION/$pkg-$AWS_SDK_VERSION.jar
-<span style=color:#66d9ef>done</span>
-
-<span style=color:#75715e># start Flink SQL client shell</span>
-/path/to/bin/sql-client.sh embedded <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    -j iceberg-flink-runtime-$ICEBERG_VERSION.jar <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    -j bundle-$AWS_SDK_VERSION.jar <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    -j url-connection-client-$AWS_SDK_VERSION.jar <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    shell
-</code></pre></div><p>With those dependencies, you can create a Flink catalog like the following:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>CATALOG</span> my_catalog <span style=color:#66d9ef>WITH</span> (
-  <span style=color:#e6db74>&#39;type&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;iceberg&#39;</span>,
-  <span style=color:#e6db74>&#39;warehouse&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;s3://my-bucket/my/key/prefix&#39;</span>,
-  <span style=color:#e6db74>&#39;catalog-impl&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;org.apache.iceberg.aws.glue.GlueCatalog&#39;</span>,
-  <span style=color:#e6db74>&#39;io-impl&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;org.apache.iceberg.aws.s3.S3FileIO&#39;</span>,
-  <span style=color:#e6db74>&#39;lock-impl&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;org.apache.iceberg.aws.glue.DynamoLockManager&#39;</span>,
-  <span style=color:#e6db74>&#39;lock.table&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;myGlueLockTable&#39;</span>
-);
-</code></pre></div><p>You can also specify the catalog configurations in <code>sql-client-defaults.yaml</code> to preload it:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-yaml data-lang=yaml><span style=color:#f92672>catalogs</span>: 
-  - <span style=color:#f92672>name</span>: <span style=color:#ae81ff>my_catalog</span>
-    <span style=color:#f92672>type</span>: <span style=color:#ae81ff>iceberg</span>
-    <span style=color:#f92672>warehouse</span>: <span style=color:#ae81ff>s3://my-bucket/my/key/prefix</span>
-    <span style=color:#f92672>catalog-impl</span>: <span style=color:#ae81ff>org.apache.iceberg.aws.glue.GlueCatalog</span>
-    <span style=color:#f92672>io-impl</span>: <span style=color:#ae81ff>org.apache.iceberg.aws.s3.S3FileIO</span>
-    <span style=color:#f92672>lock-impl</span>: <span style=color:#ae81ff>org.apache.iceberg.aws.glue.DynamoLockManager</span>
-    <span style=color:#f92672>lock.table</span>: <span style=color:#ae81ff>myGlueLockTable</span>
-</code></pre></div><h3 id=hive>
+</h3><p>To use AWS module with Flink, you can download the necessary dependencies and specify them when starting the Flink SQL client:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sh data-lang=sh><span style=display:flex><span><span style=color:#75715e># download Iceberg dependency</span>
+</span></span><span style=display:flex><span>ICEBERG_VERSION<span style=color:#f92672>=</span>0.13.1
+</span></span><span style=display:flex><span>MAVEN_URL<span style=color:#f92672>=</span>https://repo1.maven.org/maven2
+</span></span><span style=display:flex><span>ICEBERG_MAVEN_URL<span style=color:#f92672>=</span>$MAVEN_URL/org/apache/iceberg
+</span></span><span style=display:flex><span>wget $ICEBERG_MAVEN_URL/iceberg-flink-runtime/$ICEBERG_VERSION/iceberg-flink-runtime-$ICEBERG_VERSION.jar
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#75715e># download AWS dependnecy</span>
+</span></span><span style=display:flex><span>AWS_SDK_VERSION<span style=color:#f92672>=</span>2.15.40
+</span></span><span style=display:flex><span>AWS_MAVEN_URL<span style=color:#f92672>=</span>$MAVEN_URL/software/amazon/awssdk
+</span></span><span style=display:flex><span>AWS_PACKAGES<span style=color:#f92672>=(</span>
+</span></span><span style=display:flex><span>    <span style=color:#e6db74>&#34;bundle&#34;</span>
+</span></span><span style=display:flex><span>    <span style=color:#e6db74>&#34;url-connection-client&#34;</span>
+</span></span><span style=display:flex><span><span style=color:#f92672>)</span>
+</span></span><span style=display:flex><span><span style=color:#66d9ef>for</span> pkg in <span style=color:#e6db74>&#34;</span><span style=color:#e6db74>${</span>AWS_PACKAGES[@]<span style=color:#e6db74>}</span><span style=color:#e6db74>&#34;</span>; <span style=color:#66d9ef>do</span>
+</span></span><span style=display:flex><span>    wget $AWS_MAVEN_URL/$pkg/$AWS_SDK_VERSION/$pkg-$AWS_SDK_VERSION.jar
+</span></span><span style=display:flex><span><span style=color:#66d9ef>done</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#75715e># start Flink SQL client shell</span>
+</span></span><span style=display:flex><span>/path/to/bin/sql-client.sh embedded <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    -j iceberg-flink-runtime-$ICEBERG_VERSION.jar <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    -j bundle-$AWS_SDK_VERSION.jar <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    -j url-connection-client-$AWS_SDK_VERSION.jar <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    shell
+</span></span></code></pre></div><p>With those dependencies, you can create a Flink catalog like the following:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=display:flex><span><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>CATALOG</span> my_catalog <span style=color:#66d9ef>WITH</span> (
+</span></span><span style=display:flex><span>  <span style=color:#e6db74>&#39;type&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;iceberg&#39;</span>,
+</span></span><span style=display:flex><span>  <span style=color:#e6db74>&#39;warehouse&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;s3://my-bucket/my/key/prefix&#39;</span>,
+</span></span><span style=display:flex><span>  <span style=color:#e6db74>&#39;catalog-impl&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;org.apache.iceberg.aws.glue.GlueCatalog&#39;</span>,
+</span></span><span style=display:flex><span>  <span style=color:#e6db74>&#39;io-impl&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;org.apache.iceberg.aws.s3.S3FileIO&#39;</span>,
+</span></span><span style=display:flex><span>  <span style=color:#e6db74>&#39;lock-impl&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;org.apache.iceberg.aws.glue.DynamoLockManager&#39;</span>,
+</span></span><span style=display:flex><span>  <span style=color:#e6db74>&#39;lock.table&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;myGlueLockTable&#39;</span>
+</span></span><span style=display:flex><span>);
+</span></span></code></pre></div><p>You can also specify the catalog configurations in <code>sql-client-defaults.yaml</code> to preload it:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-yaml data-lang=yaml><span style=display:flex><span><span style=color:#f92672>catalogs</span>: 
+</span></span><span style=display:flex><span>  - <span style=color:#f92672>name</span>: <span style=color:#ae81ff>my_catalog</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>type</span>: <span style=color:#ae81ff>iceberg</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>warehouse</span>: <span style=color:#ae81ff>s3://my-bucket/my/key/prefix</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>catalog-impl</span>: <span style=color:#ae81ff>org.apache.iceberg.aws.glue.GlueCatalog</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>io-impl</span>: <span style=color:#ae81ff>org.apache.iceberg.aws.s3.S3FileIO</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>lock-impl</span>: <span style=color:#ae81ff>org.apache.iceberg.aws.glue.DynamoLockManager</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>lock.table</span>: <span style=color:#ae81ff>myGlueLockTable</span>
+</span></span></code></pre></div><h3 id=hive>
 Hive
 <a class=anchor href=#hive>#</a>
-</h3>
-<p>To use AWS module with Hive, you can download the necessary dependencies similar to the Flink example,
-and then add them to the Hive classpath or add the jars at runtime in CLI:</p>
-<pre tabindex=0><code>add jar /my/path/to/iceberg-hive-runtime.jar;
+</h3><p>To use AWS module with Hive, you can download the necessary dependencies similar to the Flink example,
+and then add them to the Hive classpath or add the jars at runtime in CLI:</p><pre tabindex=0><code>add jar /my/path/to/iceberg-hive-runtime.jar;
 add jar /my/path/to/aws/bundle.jar;
 add jar /my/path/to/aws/url-connection-client.jar;
-</code></pre><p>With those dependencies, you can register a Glue catalog and create external tables in Hive at runtime in CLI by:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=color:#66d9ef>SET</span> iceberg.engine.hive.enabled<span style=color:#f92672>=</span><span style=color:#66d9ef>true</span>;
-<span style=color:#66d9ef>SET</span> hive.vectorized.execution.enabled<span style=color:#f92672>=</span><span style=color:#66d9ef>false</span>;
-<span style=color:#66d9ef>SET</span> iceberg.<span style=color:#66d9ef>catalog</span>.glue.<span style=color:#66d9ef>catalog</span><span style=color:#f92672>-</span>impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.glue.GlueCatalog;
-<span style=color:#66d9ef>SET</span> iceberg.<span style=color:#66d9ef>catalog</span>.glue.warehouse<span style=color:#f92672>=</span>s3:<span style=color:#f92672>//</span>my<span style=color:#f92672>-</span>bucket<span style=color:#f92672>/</span>my<span style=color:#f92672>/</span><span style=color:#66d9ef>key</span><span style=color:#f92672>/</span><span style=color:#66d9ef>prefix</span>;
-<span style=color:#66d9ef>SET</span> iceberg.<span style=color:#66d9ef>catalog</span>.glue.<span style=color:#66d9ef>lock</span><span style=color:#f92672>-</span>impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.glue.DynamoLockManager;
-<span style=color:#66d9ef>SET</span> iceberg.<span style=color:#66d9ef>catalog</span>.glue.<span style=color:#66d9ef>lock</span>.<span style=color:#66d9ef>table</span><span style=color:#f92672>=</span>myGlueLockTable;
-
-<span style=color:#75715e>-- suppose you have an Iceberg table database_a.table_a created by GlueCatalog
-</span><span style=color:#75715e></span><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>EXTERNAL</span> <span style=color:#66d9ef>TABLE</span> database_a.table_a
-STORED <span style=color:#66d9ef>BY</span> <span style=color:#e6db74>&#39;org.apache.iceberg.mr.hive.HiveIcebergStorageHandler&#39;</span>
-TBLPROPERTIES (<span style=color:#e6db74>&#39;iceberg.catalog&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;glue&#39;</span>);
-</code></pre></div><p>You can also preload the catalog by setting the configurations above in <code>hive-site.xml</code>.</p>
-<h2 id=catalogs>
+</code></pre><p>With those dependencies, you can register a Glue catalog and create external tables in Hive at runtime in CLI by:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=display:flex><span><span style=color:#66d9ef>SET</span> iceberg.engine.hive.enabled<span style=color:#f92672>=</span><span style=color:#66d9ef>true</span>;
+</span></span><span style=display:flex><span><span style=color:#66d9ef>SET</span> hive.vectorized.execution.enabled<span style=color:#f92672>=</span><span style=color:#66d9ef>false</span>;
+</span></span><span style=display:flex><span><span style=color:#66d9ef>SET</span> iceberg.<span style=color:#66d9ef>catalog</span>.glue.<span style=color:#66d9ef>catalog</span><span style=color:#f92672>-</span>impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.glue.GlueCatalog;
+</span></span><span style=display:flex><span><span style=color:#66d9ef>SET</span> iceberg.<span style=color:#66d9ef>catalog</span>.glue.warehouse<span style=color:#f92672>=</span>s3:<span style=color:#f92672>//</span>my<span style=color:#f92672>-</span>bucket<span style=color:#f92672>/</span>my<span style=color:#f92672>/</span><span style=color:#66d9ef>key</span><span style=color:#f92672>/</span><span style=color:#66d9ef>prefix</span>;
+</span></span><span style=display:flex><span><span style=color:#66d9ef>SET</span> iceberg.<span style=color:#66d9ef>catalog</span>.glue.<span style=color:#66d9ef>lock</span><span style=color:#f92672>-</span>impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.glue.DynamoLockManager;
+</span></span><span style=display:flex><span><span style=color:#66d9ef>SET</span> iceberg.<span style=color:#66d9ef>catalog</span>.glue.<span style=color:#66d9ef>lock</span>.<span style=color:#66d9ef>table</span><span style=color:#f92672>=</span>myGlueLockTable;
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#75715e>-- suppose you have an Iceberg table database_a.table_a created by GlueCatalog
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>EXTERNAL</span> <span style=color:#66d9ef>TABLE</span> database_a.table_a
+</span></span><span style=display:flex><span>STORED <span style=color:#66d9ef>BY</span> <span style=color:#e6db74>&#39;org.apache.iceberg.mr.hive.HiveIcebergStorageHandler&#39;</span>
+</span></span><span style=display:flex><span>TBLPROPERTIES (<span style=color:#e6db74>&#39;iceberg.catalog&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;glue&#39;</span>);
+</span></span></code></pre></div><p>You can also preload the catalog by setting the configurations above in <code>hive-site.xml</code>.</p><h2 id=catalogs>
 Catalogs
 <a class=anchor href=#catalogs>#</a>
-</h2>
-<p>There are multiple different options that users can choose to build an Iceberg catalog with AWS.</p>
-<h3 id=glue-catalog>
+</h2><p>There are multiple different options that users can choose to build an Iceberg catalog with AWS.</p><h3 id=glue-catalog>
 Glue Catalog
 <a class=anchor href=#glue-catalog>#</a>
-</h3>
-<p>Iceberg enables the use of <a href=https://aws.amazon.com/glue>AWS Glue</a> as the <code>Catalog</code> implementation.
+</h3><p>Iceberg enables the use of <a href=https://aws.amazon.com/glue>AWS Glue</a> as the <code>Catalog</code> implementation.
 When used, an Iceberg namespace is stored as a <a href=https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-databases.html>Glue Database</a>,
 an Iceberg table is stored as a <a href=https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html>Glue Table</a>,
 and every Iceberg table version is stored as a <a href=https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-TableVersion>Glue TableVersion</a>.
 You can start using Glue catalog by specifying the <code>catalog-impl</code> as <code>org.apache.iceberg.aws.glue.GlueCatalog</code>,
 just like what is shown in the <a href=#enabling-aws-integration>enabling AWS integration</a> section above.
-More details about loading the catalog can be found in individual engine pages, such as <a href=../spark-configuration/#loading-a-custom-catalog>Spark</a> and <a href=../flink/#creating-catalogs-and-using-catalogs>Flink</a>.</p>
-<h4 id=glue-catalog-id>
+More details about loading the catalog can be found in individual engine pages, such as <a href=../spark-configuration/#loading-a-custom-catalog>Spark</a> and <a href=../flink/#creating-catalogs-and-using-catalogs>Flink</a>.</p><h4 id=glue-catalog-id>
 Glue Catalog ID
 <a class=anchor href=#glue-catalog-id>#</a>
-</h4>
-<p>There is a unique Glue metastore in each AWS account and each AWS region.
+</h4><p>There is a unique Glue metastore in each AWS account and each AWS region.
 By default, <code>GlueCatalog</code> chooses the Glue metastore to use based on the user&rsquo;s default AWS client credential and region setup.
 You can specify the Glue catalog ID through <code>glue.id</code> catalog property to point to a Glue catalog in a different AWS account.
 The Glue catalog ID is your numeric AWS account ID.
 If the Glue catalog is in a different region, you should configure you AWS client to point to the correct region,
-see more details in <a href=#aws-client-customization>AWS client customization</a>.</p>
-<h4 id=skip-archive>
+see more details in <a href=#aws-client-customization>AWS client customization</a>.</p><h4 id=skip-archive>
 Skip Archive
 <a class=anchor href=#skip-archive>#</a>
-</h4>
-<p>By default, Glue stores all the table versions created and user can rollback a table to any historical version if needed.
+</h4><p>By default, Glue stores all the table versions created and user can rollback a table to any historical version if needed.
 However, if you are streaming data to Iceberg, this will easily create a lot of Glue table versions.
 Therefore, it is recommended to turn off the archive feature in Glue by setting <code>glue.skip-archive</code> to <code>true</code>.
-For more details, please read <a href=https://docs.aws.amazon.com/general/latest/gr/glue.html>Glue Quotas</a> and the <a href=https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateTable.html>UpdateTable API</a>.</p>
-<h4 id=dynamodb-for-commit-locking>
+For more details, please read <a href=https://docs.aws.amazon.com/general/latest/gr/glue.html>Glue Quotas</a> and the <a href=https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateTable.html>UpdateTable API</a>.</p><h4 id=dynamodb-for-commit-locking>
 DynamoDB for Commit Locking
 <a class=anchor href=#dynamodb-for-commit-locking>#</a>
-</h4>
-<p>Glue does not have a strong guarantee over concurrent updates to a table.
+</h4><p>Glue does not have a strong guarantee over concurrent updates to a table.
 Although it throws <code>ConcurrentModificationException</code> when detecting two processes updating a table at the same time,
 there is no guarantee that one update would not clobber the other update.
 Therefore, <a href=https://aws.amazon.com/dynamodb>DynamoDB</a> can be used for Glue, so that for every commit,
-<code>GlueCatalog</code> first obtains a lock using a helper DynamoDB table and then try to safely modify the Glue table.</p>
-<p>This feature requires the following lock related catalog properties:</p>
-<ol>
-<li>Set <code>lock-impl</code> as <code>org.apache.iceberg.aws.glue.DynamoLockManager</code>.</li>
-<li>Set <code>lock.table</code> as the DynamoDB table name you would like to use. If the lock table with the given name does not exist in DynamoDB, a new table is created with billing mode set as <a href=https://aws.amazon.com/blogs/aws/amazon-dynamodb-on-demand-no-capacity-planning-and-pay-per-request-pricing>pay-per-request</a>.</li>
-</ol>
-<p>Other lock related catalog properties can also be used to adjust locking behaviors such as heartbeat interval.
-For more details, please refer to <a href=../configuration/#lock-catalog-properties>Lock catalog properties</a>.</p>
-<h4 id=warehouse-location>
+<code>GlueCatalog</code> first obtains a lock using a helper DynamoDB table and then try to safely modify the Glue table.</p><p>This feature requires the following lock related catalog properties:</p><ol>
+<li>Set <code>lock-impl</code> as <code>org.apache.iceberg.aws.glue.DynamoLockManager</code>.</li><li>Set <code>lock.table</code> as the DynamoDB table name you would like to use. If the lock table with the given name does not exist in DynamoDB, a new table is created with billing mode set as <a href=https://aws.amazon.com/blogs/aws/amazon-dynamodb-on-demand-no-capacity-planning-and-pay-per-request-pricing>pay-per-request</a>.</li></ol><p>Other lock related catalog properties can also be [...]
+For more details, please refer to <a href=../configuration/#lock-catalog-properties>Lock catalog properties</a>.</p><h4 id=warehouse-location>
 Warehouse Location
 <a class=anchor href=#warehouse-location>#</a>
-</h4>
-<p>Similar to all other catalog implementations, <code>warehouse</code> is a required catalog property to determine the root path of the data warehouse in storage.
+</h4><p>Similar to all other catalog implementations, <code>warehouse</code> is a required catalog property to determine the root path of the data warehouse in storage.
 By default, Glue only allows a warehouse location in S3 because of the use of <code>S3FileIO</code>.
 To store data in a different local or cloud store, Glue catalog can switch to use <code>HadoopFileIO</code> or any custom FileIO by setting the <code>io-impl</code> catalog property.
-Details about this feature can be found in the <a href=../custom-catalog/#custom-file-io-implementation>custom FileIO</a> section.</p>
-<h4 id=table-location>
+Details about this feature can be found in the <a href=../custom-catalog/#custom-file-io-implementation>custom FileIO</a> section.</p><h4 id=table-location>
 Table Location
 <a class=anchor href=#table-location>#</a>
-</h4>
-<p>By default, the root location for a table <code>my_table</code> of namespace <code>my_ns</code> is at <code>my-warehouse-location/my-ns.db/my-table</code>.
-This default root location can be changed at both namespace and table level.</p>
-<p>To use a different path prefix for all tables under a namespace, use AWS console or any AWS Glue client SDK you like to update the <code>locationUri</code> attribute of the corresponding Glue database.
+</h4><p>By default, the root location for a table <code>my_table</code> of namespace <code>my_ns</code> is at <code>my-warehouse-location/my-ns.db/my-table</code>.
+This default root location can be changed at both namespace and table level.</p><p>To use a different path prefix for all tables under a namespace, use AWS console or any AWS Glue client SDK you like to update the <code>locationUri</code> attribute of the corresponding Glue database.
 For example, you can update the <code>locationUri</code> of <code>my_ns</code> to <code>s3://my-ns-bucket</code>,
 then any newly created table will have a default root location under the new prefix.
-For instance, a new table <code>my_table_2</code> will have its root location at <code>s3://my-ns-bucket/my_table_2</code>.</p>
-<p>To use a completely different root path for a specific table, set the <code>location</code> table property to the desired root path value you want.
-For example, in Spark SQL you can do:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>TABLE</span> my_catalog.my_ns.my_table (
-    id bigint,
-    <span style=color:#66d9ef>data</span> string,
-    category string)
-<span style=color:#66d9ef>USING</span> iceberg
-<span style=color:#66d9ef>OPTIONS</span> (<span style=color:#e6db74>&#39;location&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;s3://my-special-table-bucket&#39;</span>)
-PARTITIONED <span style=color:#66d9ef>BY</span> (category);
-</code></pre></div><p>For engines like Spark that supports the <code>LOCATION</code> keyword, the above SQL statement is equivalent to:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>TABLE</span> my_catalog.my_ns.my_table (
-    id bigint,
-    <span style=color:#66d9ef>data</span> string,
-    category string)
-<span style=color:#66d9ef>USING</span> iceberg
-<span style=color:#66d9ef>LOCATION</span> <span style=color:#e6db74>&#39;s3://my-special-table-bucket&#39;</span>
-PARTITIONED <span style=color:#66d9ef>BY</span> (category);
-</code></pre></div><h3 id=dynamodb-catalog>
+For instance, a new table <code>my_table_2</code> will have its root location at <code>s3://my-ns-bucket/my_table_2</code>.</p><p>To use a completely different root path for a specific table, set the <code>location</code> table property to the desired root path value you want.
+For example, in Spark SQL you can do:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=display:flex><span><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>TABLE</span> my_catalog.my_ns.my_table (
+</span></span><span style=display:flex><span>    id bigint,
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>data</span> string,
+</span></span><span style=display:flex><span>    category string)
+</span></span><span style=display:flex><span><span style=color:#66d9ef>USING</span> iceberg
+</span></span><span style=display:flex><span><span style=color:#66d9ef>OPTIONS</span> (<span style=color:#e6db74>&#39;location&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;s3://my-special-table-bucket&#39;</span>)
+</span></span><span style=display:flex><span>PARTITIONED <span style=color:#66d9ef>BY</span> (category);
+</span></span></code></pre></div><p>For engines like Spark that supports the <code>LOCATION</code> keyword, the above SQL statement is equivalent to:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=display:flex><span><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>TABLE</span> my_catalog.my_ns.my_table (
+</span></span><span style=display:flex><span>    id bigint,
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>data</span> string,
+</span></span><span style=display:flex><span>    category string)
+</span></span><span style=display:flex><span><span style=color:#66d9ef>USING</span> iceberg
+</span></span><span style=display:flex><span><span style=color:#66d9ef>LOCATION</span> <span style=color:#e6db74>&#39;s3://my-special-table-bucket&#39;</span>
+</span></span><span style=display:flex><span>PARTITIONED <span style=color:#66d9ef>BY</span> (category);
+</span></span></code></pre></div><h3 id=dynamodb-catalog>
 DynamoDB Catalog
 <a class=anchor href=#dynamodb-catalog>#</a>
-</h3>
-<p>Iceberg supports using a <a href=https://aws.amazon.com/dynamodb>DynamoDB</a> table to record and manage database and table information.</p>
-<h4 id=configurations>
+</h3><p>Iceberg supports using a <a href=https://aws.amazon.com/dynamodb>DynamoDB</a> table to record and manage database and table information.</p><h4 id=configurations>
 Configurations
 <a class=anchor href=#configurations>#</a>
-</h4>
-<p>The DynamoDB catalog supports the following configurations:</p>
-<table>
+</h4><p>The DynamoDB catalog supports the following configurations:</p><table>
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
 <tr>
-<td>dynamodb.table-name</td>
-<td>iceberg</td>
-<td>name of the DynamoDB table used by DynamoDbCatalog</td>
-</tr>
-</tbody>
-</table>
-<h4 id=internal-table-design>
+<td>dynamodb.table-name</td><td>iceberg</td><td>name of the DynamoDB table used by DynamoDbCatalog</td></tr></tbody></table><h4 id=internal-table-design>
 Internal Table Design
 <a class=anchor href=#internal-table-design>#</a>
-</h4>
-<p>The DynamoDB table is designed with the following columns:</p>
-<table>
+</h4><p>The DynamoDB table is designed with the following columns:</p><table>
 <thead>
 <tr>
-<th>Column</th>
-<th>Key</th>
-<th>Type</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>identifier</td>
-<td>partition key</td>
-<td>string</td>
-<td>table identifier such as <code>db1.table1</code>, or string <code>NAMESPACE</code> for namespaces</td>
-</tr>
+<th>Column</th><th>Key</th><th>Type</th><th>Description</th></tr></thead><tbody>
 <tr>
-<td>namespace</td>
-<td>sort key</td>
-<td>string</td>
-<td>namespace name. A <a href=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html>global secondary index (GSI)</a> is created with namespace as partition key, identifier as sort key, no other projected columns</td>
-</tr>
-<tr>
-<td>v</td>
-<td></td>
-<td>string</td>
-<td>row version, used for optimistic locking</td>
-</tr>
-<tr>
-<td>updated_at</td>
-<td></td>
-<td>number</td>
-<td>timestamp (millis) of the last update</td>
-</tr>
-<tr>
-<td>created_at</td>
-<td></td>
-<td>number</td>
-<td>timestamp (millis) of the table creation</td>
-</tr>
-<tr>
-<td>p.&lt;property_key></td>
-<td></td>
-<td>string</td>
-<td>Iceberg-defined table properties including <code>table_type</code>, <code>metadata_location</code> and <code>previous_metadata_location</code> or namespace properties</td>
-</tr>
-</tbody>
-</table>
-<p>This design has the following benefits:</p>
-<ol>
-<li>it avoids potential <a href=https://aws.amazon.com/premiumsupport/knowledge-center/dynamodb-table-throttled/>hot partition issue</a> if there are heavy write traffic to the tables within the same namespace, because the partition key is at the table level</li>
-<li>namespace operations are clustered in a single partition to avoid affecting table commit operations</li>
-<li>a sort key to partition key reverse GSI is used for list table operation, and all other operations are single row ops or single partition query. No full table scan is needed for any operation in the catalog.</li>
-<li>a string UUID version field <code>v</code> is used instead of <code>updated_at</code> to avoid 2 processes committing at the same millisecond</li>
-<li>multi-row transaction is used for <code>catalog.renameTable</code> to ensure idempotency</li>
-<li>properties are flattened as top level columns so that user can add custom GSI on any property field to customize the catalog. For example, users can store owner information as table property <code>owner</code>, and search tables by owner by adding a GSI on the <code>p.owner</code> column.</li>
-</ol>
-<h3 id=rds-jdbc-catalog>
+<td>identifier</td><td>partition key</td><td>string</td><td>table identifier such as <code>db1.table1</code>, or string <code>NAMESPACE</code> for namespaces</td></tr><tr>
+<td>namespace</td><td>sort key</td><td>string</td><td>namespace name. A <a href=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html>global secondary index (GSI)</a> is created with namespace as partition key, identifier as sort key, no other projected columns</td></tr><tr>
+<td>v</td><td></td><td>string</td><td>row version, used for optimistic locking</td></tr><tr>
+<td>updated_at</td><td></td><td>number</td><td>timestamp (millis) of the last update</td></tr><tr>
+<td>created_at</td><td></td><td>number</td><td>timestamp (millis) of the table creation</td></tr><tr>
+<td>p.&lt;property_key></td><td></td><td>string</td><td>Iceberg-defined table properties including <code>table_type</code>, <code>metadata_location</code> and <code>previous_metadata_location</code> or namespace properties</td></tr></tbody></table><p>This design has the following benefits:</p><ol>
+<li>it avoids potential <a href=https://aws.amazon.com/premiumsupport/knowledge-center/dynamodb-table-throttled/>hot partition issue</a> if there are heavy write traffic to the tables within the same namespace, because the partition key is at the table level</li><li>namespace operations are clustered in a single partition to avoid affecting table commit operations</li><li>a sort key to partition key reverse GSI is used for list table operation, and all other operations are single row ops [...]
 RDS JDBC Catalog
 <a class=anchor href=#rds-jdbc-catalog>#</a>
-</h3>
-<p>Iceberg also supports JDBC catalog which uses a table in a relational database to manage Iceberg tables.
+</h3><p>Iceberg also supports JDBC catalog which uses a table in a relational database to manage Iceberg tables.
 You can configure to use JDBC catalog with relational database services like <a href=https://aws.amazon.com/rds>AWS RDS</a>.
 Read <a href=../jdbc/#jdbc-catalog>the JDBC integration page</a> for guides and examples about using the JDBC catalog.
-Read <a href=https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Connecting.Java.html>this AWS documentation</a> for more details about configuring JDBC catalog with IAM authentication.</p>
-<h3 id=which-catalog-to-choose>
+Read <a href=https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Connecting.Java.html>this AWS documentation</a> for more details about configuring JDBC catalog with IAM authentication.</p><h3 id=which-catalog-to-choose>
 Which catalog to choose?
 <a class=anchor href=#which-catalog-to-choose>#</a>
-</h3>
-<p>With all the available options, we offer the following guidance when choosing the right catalog to use for your application:</p>
-<ol>
-<li>if your organization has an existing Glue metastore or plans to use the AWS analytics ecosystem including Glue, <a href=https://aws.amazon.com/athena>Athena</a>, <a href=https://aws.amazon.com/emr>EMR</a>, <a href=https://aws.amazon.com/redshift>Redshift</a> and <a href=https://aws.amazon.com/lake-formation>LakeFormation</a>, Glue catalog provides the easiest integration.</li>
-<li>if your application requires frequent updates to table or high read and write throughput (e.g. streaming write), DynamoDB catalog provides the best performance through optimistic locking.</li>
-<li>if you would like to enforce access control for tables in a catalog, Glue tables can be managed as an <a href=https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html>IAM resource</a>, whereas DynamoDB catalog tables can only be managed through <a href=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html>item-level permission</a> which is much more complicated.</li>
-<li>if you would like to query tables based on table property information without the need to scan the entire catalog, DynamoDB catalog allows you to build secondary indexes for any arbitrary property field and provide efficient query performance.</li>
-<li>if you would like to have the benefit of DynamoDB catalog while also connect to Glue, you can enable <a href=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.Lambda.Tutorial.html>DynamoDB stream with Lambda trigger</a> to asynchronously update your Glue metastore with table information in the DynamoDB catalog.</li>
-<li>if your organization already maintains an existing relational database in RDS or uses <a href=https://aws.amazon.com/rds/aurora/serverless/>serverless Aurora</a> to manage tables, JDBC catalog provides the easiest integration.</li>
-</ol>
-<h2 id=s3-fileio>
+</h3><p>With all the available options, we offer the following guidance when choosing the right catalog to use for your application:</p><ol>
+<li>if your organization has an existing Glue metastore or plans to use the AWS analytics ecosystem including Glue, <a href=https://aws.amazon.com/athena>Athena</a>, <a href=https://aws.amazon.com/emr>EMR</a>, <a href=https://aws.amazon.com/redshift>Redshift</a> and <a href=https://aws.amazon.com/lake-formation>LakeFormation</a>, Glue catalog provides the easiest integration.</li><li>if your application requires frequent updates to table or high read and write throughput (e.g. streaming  [...]
 S3 FileIO
 <a class=anchor href=#s3-fileio>#</a>
-</h2>
-<p>Iceberg allows users to write data to S3 through <code>S3FileIO</code>.
-<code>GlueCatalog</code> by default uses this <code>FileIO</code>, and other catalogs can load this <code>FileIO</code> using the <code>io-impl</code> catalog property.</p>
-<h3 id=progressive-multipart-upload>
+</h2><p>Iceberg allows users to write data to S3 through <code>S3FileIO</code>.
+<code>GlueCatalog</code> by default uses this <code>FileIO</code>, and other catalogs can load this <code>FileIO</code> using the <code>io-impl</code> catalog property.</p><h3 id=progressive-multipart-upload>
 Progressive Multipart Upload
 <a class=anchor href=#progressive-multipart-upload>#</a>
-</h3>
-<p><code>S3FileIO</code> implements a customized progressive multipart upload algorithm to upload data.
+</h3><p><code>S3FileIO</code> implements a customized progressive multipart upload algorithm to upload data.
 Data files are uploaded by parts in parallel as soon as each part is ready,
 and each file part is deleted as soon as its upload process completes.
 This provides maximized upload speed and minimized local disk usage during uploads.
-Here are the configurations that users can tune related to this feature:</p>
-<table>
+Here are the configurations that users can tune related to this feature:</p><table>
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>s3.multipart.num-threads</td>
-<td>the available number of processors in the system</td>
-<td>number of threads to use for uploading parts to S3 (shared across all output streams)</td>
-</tr>
-<tr>
-<td>s3.multipart.part-size-bytes</td>
-<td>32MB</td>
-<td>the size of a single part for multipart upload requests</td>
-</tr>
-<tr>
-<td>s3.multipart.threshold</td>
-<td>1.5</td>
-<td>the threshold expressed as a factor times the multipart size at which to switch from uploading using a single put object request to uploading using multipart upload</td>
-</tr>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
 <tr>
-<td>s3.staging-dir</td>
-<td><code>java.io.tmpdir</code> property value</td>
-<td>the directory to hold temporary files</td>
-</tr>
-</tbody>
-</table>
-<h3 id=s3-server-side-encryption>
+<td>s3.multipart.num-threads</td><td>the available number of processors in the system</td><td>number of threads to use for uploading parts to S3 (shared across all output streams)</td></tr><tr>
+<td>s3.multipart.part-size-bytes</td><td>32MB</td><td>the size of a single part for multipart upload requests</td></tr><tr>
+<td>s3.multipart.threshold</td><td>1.5</td><td>the threshold expressed as a factor times the multipart size at which to switch from uploading using a single put object request to uploading using multipart upload</td></tr><tr>
+<td>s3.staging-dir</td><td><code>java.io.tmpdir</code> property value</td><td>the directory to hold temporary files</td></tr></tbody></table><h3 id=s3-server-side-encryption>
 S3 Server Side Encryption
 <a class=anchor href=#s3-server-side-encryption>#</a>
-</h3>
-<p><code>S3FileIO</code> supports all 3 S3 server side encryption modes:</p>
-<ul>
-<li><a href=https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html>SSE-S3</a>: When you use Server-Side Encryption with Amazon S3-Managed Keys (SSE-S3), each object is encrypted with a unique key. As an additional safeguard, it encrypts the key itself with a master key that it regularly rotates. Amazon S3 server-side encryption uses one of the strongest block ciphers available, 256-bit Advanced Encryption Standard (AES-256), to encrypt your data.</li>
-<li><a href=https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html>SSE-KMS</a>: Server-Side Encryption with Customer Master Keys (CMKs) Stored in AWS Key Management Service (SSE-KMS) is similar to SSE-S3, but with some additional benefits and charges for using this service. There are separate permissions for the use of a CMK that provides added protection against unauthorized access of your objects in Amazon S3. SSE-KMS also provides you with an audit trail that shows wh [...]
-<li><a href=https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html>SSE-C</a>: With Server-Side Encryption with Customer-Provided Keys (SSE-C), you manage the encryption keys and Amazon S3 manages the encryption, as it writes to disks, and decryption, when you access your objects.</li>
-</ul>
-<p>To enable server side encryption, use the following configuration properties:</p>
-<table>
+</h3><p><code>S3FileIO</code> supports all 3 S3 server side encryption modes:</p><ul>
+<li><a href=https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html>SSE-S3</a>: When you use Server-Side Encryption with Amazon S3-Managed Keys (SSE-S3), each object is encrypted with a unique key. As an additional safeguard, it encrypts the key itself with a master key that it regularly rotates. Amazon S3 server-side encryption uses one of the strongest block ciphers available, 256-bit Advanced Encryption Standard (AES-256), to encrypt your data.</li><li><a href=h [...]
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>s3.sse.type</td>
-<td><code>none</code></td>
-<td><code>none</code>, <code>s3</code>, <code>kms</code> or <code>custom</code></td>
-</tr>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
 <tr>
-<td>s3.sse.key</td>
-<td><code>aws/s3</code> for <code>kms</code> type, null otherwise</td>
-<td>A KMS Key ID or ARN for <code>kms</code> type, or a custom base-64 AES256 symmetric key for <code>custom</code> type.</td>
-</tr>
-<tr>
-<td>s3.sse.md5</td>
-<td>null</td>
-<td>If SSE type is <code>custom</code>, this value must be set as the base-64 MD5 digest of the symmetric key to ensure integrity.</td>
-</tr>
-</tbody>
-</table>
-<h3 id=s3-access-control-list>
+<td>s3.sse.type</td><td><code>none</code></td><td><code>none</code>, <code>s3</code>, <code>kms</code> or <code>custom</code></td></tr><tr>
+<td>s3.sse.key</td><td><code>aws/s3</code> for <code>kms</code> type, null otherwise</td><td>A KMS Key ID or ARN for <code>kms</code> type, or a custom base-64 AES256 symmetric key for <code>custom</code> type.</td></tr><tr>
+<td>s3.sse.md5</td><td>null</td><td>If SSE type is <code>custom</code>, this value must be set as the base-64 MD5 digest of the symmetric key to ensure integrity.</td></tr></tbody></table><h3 id=s3-access-control-list>
 S3 Access Control List
 <a class=anchor href=#s3-access-control-list>#</a>
-</h3>
-<p><code>S3FileIO</code> supports S3 access control list (ACL) for detailed access control.
+</h3><p><code>S3FileIO</code> supports S3 access control list (ACL) for detailed access control.
 User can choose the ACL level by setting the <code>s3.acl</code> property.
-For more details, please read <a href=https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html>S3 ACL Documentation</a>.</p>
-<h3 id=object-store-file-layout>
+For more details, please read <a href=https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html>S3 ACL Documentation</a>.</p><h3 id=object-store-file-layout>
 Object Store File Layout
 <a class=anchor href=#object-store-file-layout>#</a>
-</h3>
-<p>S3 and many other cloud storage services <a href=https://aws.amazon.com/premiumsupport/knowledge-center/s3-request-limit-avoid-throttling/>throttle requests based on object prefix</a>.
-Data stored in S3 with a traditional Hive storage layout can face S3 request throttling as objects are stored under the same filepath prefix.</p>
-<p>Iceberg by default uses the Hive storage layout, but can be switched to use the <code>ObjectStoreLocationProvider</code>.
+</h3><p>S3 and many other cloud storage services <a href=https://aws.amazon.com/premiumsupport/knowledge-center/s3-request-limit-avoid-throttling/>throttle requests based on object prefix</a>.
+Data stored in S3 with a traditional Hive storage layout can face S3 request throttling as objects are stored under the same filepath prefix.</p><p>Iceberg by default uses the Hive storage layout, but can be switched to use the <code>ObjectStoreLocationProvider</code>.
 With <code>ObjectStoreLocationProvider</code>, a determenistic hash is generated for each stored file, with the hash appended
-directly after the <code>write.data.path</code>. This ensures files written to s3 are equally distributed across multiple <a href=https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-key-naming-pattern/>prefixes</a> in the S3 bucket. Resulting in minimized throttling and maximized throughput for S3-related IO operations. When using <code>ObjectStoreLocationProvider</code> having a shared and short <code>write.data.path</code> across your Iceberg tables will improve performance.</p>
-<p>For more information on how S3 scales API QPS, checkout the 2018 re:Invent session on <a href="https://youtu.be/rHeTn9pHNKo?t=3219">Best Practices for Amazon S3 and Amazon S3 Glacier</a>. At <a href="https://youtu.be/rHeTn9pHNKo?t=3219">53:39</a> it covers how S3 scales/partitions & at <a href="https://youtu.be/rHeTn9pHNKo?t=3290">54:50</a> it discusses the 30-60 minute wait time before new partitions are created.</p>
-<p>To use the <code>ObjectStorageLocationProvider</code> add <code>'write.object-storage.enabled'=true</code> in the table&rsquo;s properties.
-Below is an example Spark SQL command to create a table using the <code>ObjectStorageLocationProvider</code>:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>TABLE</span> my_catalog.my_ns.my_table (
-    id bigint,
-    <span style=color:#66d9ef>data</span> string,
-    category string)
-<span style=color:#66d9ef>USING</span> iceberg
-<span style=color:#66d9ef>OPTIONS</span> (
-    <span style=color:#e6db74>&#39;write.object-storage.enabled&#39;</span><span style=color:#f92672>=</span><span style=color:#66d9ef>true</span>, 
-    <span style=color:#e6db74>&#39;write.data.path&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;s3://my-table-data-bucket&#39;</span>)
-PARTITIONED <span style=color:#66d9ef>BY</span> (category);
-</code></pre></div><p>We can then insert a single row into this new table</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-SQL data-lang=SQL><span style=color:#66d9ef>INSERT</span> <span style=color:#66d9ef>INTO</span> my_catalog.my_ns.my_table <span style=color:#66d9ef>VALUES</span> (<span style=color:#ae81ff>1</span>, <span style=color:#e6db74>&#34;Pizza&#34;</span>, <span style=color:#e6db74>&#34;orders&#34;</span>);
-</code></pre></div><p>Which will write the data to S3 with a hash (<code>2d3905f8</code>) appended directly after the <code>write.object-storage.path</code>, ensuring reads to the table are spread evenly across <a href=https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance.html>S3 bucket prefixes</a>, and improving performance.</p>
-<pre tabindex=0><code>s3://my-table-data-bucket/2d3905f8/my_ns.db/my_table/category=orders/00000-0-5affc076-96a4-48f2-9cd2-d5efbc9f0c94-00001.parquet
+directly after the <code>write.data.path</code>. This ensures files written to s3 are equally distributed across multiple <a href=https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-key-naming-pattern/>prefixes</a> in the S3 bucket. Resulting in minimized throttling and maximized throughput for S3-related IO operations. When using <code>ObjectStoreLocationProvider</code> having a shared and short <code>write.data.path</code> across your Iceberg tables will improve performanc [...]
+Below is an example Spark SQL command to create a table using the <code>ObjectStorageLocationProvider</code>:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=display:flex><span><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>TABLE</span> my_catalog.my_ns.my_table (
+</span></span><span style=display:flex><span>    id bigint,
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>data</span> string,
+</span></span><span style=display:flex><span>    category string)
+</span></span><span style=display:flex><span><span style=color:#66d9ef>USING</span> iceberg
+</span></span><span style=display:flex><span><span style=color:#66d9ef>OPTIONS</span> (
+</span></span><span style=display:flex><span>    <span style=color:#e6db74>&#39;write.object-storage.enabled&#39;</span><span style=color:#f92672>=</span><span style=color:#66d9ef>true</span>, 
+</span></span><span style=display:flex><span>    <span style=color:#e6db74>&#39;write.data.path&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;s3://my-table-data-bucket&#39;</span>)
+</span></span><span style=display:flex><span>PARTITIONED <span style=color:#66d9ef>BY</span> (category);
+</span></span></code></pre></div><p>We can then insert a single row into this new table</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-SQL data-lang=SQL><span style=display:flex><span><span style=color:#66d9ef>INSERT</span> <span style=color:#66d9ef>INTO</span> my_catalog.my_ns.my_table <span style=color:#66d9ef>VALUES</span> (<span style=color:#ae81ff>1</span>, <span style=color:#e6db74>& [...]
+</span></span></code></pre></div><p>Which will write the data to S3 with a hash (<code>2d3905f8</code>) appended directly after the <code>write.object-storage.path</code>, ensuring reads to the table are spread evenly across <a href=https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance.html>S3 bucket prefixes</a>, and improving performance.</p><pre tabindex=0><code>s3://my-table-data-bucket/2d3905f8/my_ns.db/my_table/category=orders/00000-0-5affc076-96a4-48f2-9cd2- [...]
 </code></pre><p>Note, the path resolution logic for <code>ObjectStoreLocationProvider</code> is <code>write.data.path</code> then <code>&lt;tableLocation>/data</code>.
-However, for the older versions up to 0.12.0, the logic is as follows:</p>
-<ul>
-<li>before 0.12.0, <code>write.object-storage.path</code> must be set.</li>
-<li>at 0.12.0, <code>write.object-storage.path</code> then <code>write.folder-storage.path</code> then <code>&lt;tableLocation>/data</code>.</li>
-</ul>
-<p>For more details, please refer to the <a href=../custom-catalog/#custom-location-provider-implementation>LocationProvider Configuration</a> section.</p>
-<h3 id=s3-strong-consistency>
+However, for the older versions up to 0.12.0, the logic is as follows:</p><ul>
+<li>before 0.12.0, <code>write.object-storage.path</code> must be set.</li><li>at 0.12.0, <code>write.object-storage.path</code> then <code>write.folder-storage.path</code> then <code>&lt;tableLocation>/data</code>.</li></ul><p>For more details, please refer to the <a href=../custom-catalog/#custom-location-provider-implementation>LocationProvider Configuration</a> section.</p><h3 id=s3-strong-consistency>
 S3 Strong Consistency
 <a class=anchor href=#s3-strong-consistency>#</a>
-</h3>
-<p>In November 2020, S3 announced <a href=https://aws.amazon.com/s3/consistency/>strong consistency</a> for all read operations, and Iceberg is updated to fully leverage this feature.
-There is no redundant consistency wait and check which might negatively impact performance during IO operations.</p>
-<h3 id=hadoop-s3a-filesystem>
+</h3><p>In November 2020, S3 announced <a href=https://aws.amazon.com/s3/consistency/>strong consistency</a> for all read operations, and Iceberg is updated to fully leverage this feature.
+There is no redundant consistency wait and check which might negatively impact performance during IO operations.</p><h3 id=hadoop-s3a-filesystem>
 Hadoop S3A FileSystem
 <a class=anchor href=#hadoop-s3a-filesystem>#</a>
-</h3>
-<p>Before <code>S3FileIO</code> was introduced, many Iceberg users choose to use <code>HadoopFileIO</code> to write data to S3 through the <a href=https://github.com/apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java>S3A FileSystem</a>.
+</h3><p>Before <code>S3FileIO</code> was introduced, many Iceberg users choose to use <code>HadoopFileIO</code> to write data to S3 through the <a href=https://github.com/apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java>S3A FileSystem</a>.
 As introduced in the previous sections, <code>S3FileIO</code> adopts latest AWS clients and S3 features for optimized security and performance,
-and is thus recommend for S3 use cases rather than the S3A FileSystem.</p>
-<p><code>S3FileIO</code> writes data with <code>s3://</code> URI scheme, but it is also compatible with schemes written by the S3A FileSystem.
+and is thus recommend for S3 use cases rather than the S3A FileSystem.</p><p><code>S3FileIO</code> writes data with <code>s3://</code> URI scheme, but it is also compatible with schemes written by the S3A FileSystem.
 This means for any table manifests containing <code>s3a://</code> or <code>s3n://</code> file paths, <code>S3FileIO</code> is still able to read them.
-This feature allows people to easily switch from S3A to <code>S3FileIO</code>.</p>
-<p>If for any reason you have to use S3A, here are the instructions:</p>
-<ol>
-<li>To store data using S3A, specify the <code>warehouse</code> catalog property to be an S3A path, e.g. <code>s3a://my-bucket/my-warehouse</code></li>
-<li>For <code>HiveCatalog</code>, to also store metadata using S3A, specify the Hadoop config property <code>hive.metastore.warehouse.dir</code> to be an S3A path.</li>
-<li>Add <a href=https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-aws>hadoop-aws</a> as a runtime dependency of your compute engine.</li>
-<li>Configure AWS settings based on <a href=https://hadoop.apache.org/docs/current/hadoop-aws/tools/hadoop-aws/index.html>hadoop-aws documentation</a> (make sure you check the version, S3A configuration varies a lot based on the version you use).</li>
-</ol>
-<h3 id=s3-write-checksum-verification>
+This feature allows people to easily switch from S3A to <code>S3FileIO</code>.</p><p>If for any reason you have to use S3A, here are the instructions:</p><ol>
+<li>To store data using S3A, specify the <code>warehouse</code> catalog property to be an S3A path, e.g. <code>s3a://my-bucket/my-warehouse</code></li><li>For <code>HiveCatalog</code>, to also store metadata using S3A, specify the Hadoop config property <code>hive.metastore.warehouse.dir</code> to be an S3A path.</li><li>Add <a href=https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-aws>hadoop-aws</a> as a runtime dependency of your compute engine.</li><li>Configure AWS settings [...]
 S3 Write Checksum Verification
 <a class=anchor href=#s3-write-checksum-verification>#</a>
-</h3>
-<p>To ensure integrity of uploaded objects, checksum validations for S3 writes can be turned on by setting catalog property <code>s3.checksum-enabled</code> to <code>true</code>.
-This is turned off by default.</p>
-<h2 id=aws-client-customization>
+</h3><p>To ensure integrity of uploaded objects, checksum validations for S3 writes can be turned on by setting catalog property <code>s3.checksum-enabled</code> to <code>true</code>.
+This is turned off by default.</p><h2 id=aws-client-customization>
 AWS Client Customization
 <a class=anchor href=#aws-client-customization>#</a>
-</h2>
-<p>Many organizations have customized their way of configuring AWS clients with their own credential provider, access proxy, retry strategy, etc.
-Iceberg allows users to plug in their own implementation of <code>org.apache.iceberg.aws.AwsClientFactory</code> by setting the <code>client.factory</code> catalog property.</p>
-<h3 id=cross-account-and-cross-region-access>
+</h2><p>Many organizations have customized their way of configuring AWS clients with their own credential provider, access proxy, retry strategy, etc.
+Iceberg allows users to plug in their own implementation of <code>org.apache.iceberg.aws.AwsClientFactory</code> by setting the <code>client.factory</code> catalog property.</p><h3 id=cross-account-and-cross-region-access>
 Cross-Account and Cross-Region Access
 <a class=anchor href=#cross-account-and-cross-region-access>#</a>
-</h3>
-<p>It is a common use case for organizations to have a centralized AWS account for Glue metastore and S3 buckets, and use different AWS accounts and regions for different teams to access those resources.
+</h3><p>It is a common use case for organizations to have a centralized AWS account for Glue metastore and S3 buckets, and use different AWS accounts and regions for different teams to access those resources.
 In this case, a <a href=https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html>cross-account IAM role</a> is needed to access those centralized resources.
 Iceberg provides an AWS client factory <code>AssumeRoleAwsClientFactory</code> to support this common use case.
-This also serves as an example for users who would like to implement their own AWS client factory.</p>
-<p>This client factory has the following configurable catalog properties:</p>
-<table>
+This also serves as an example for users who would like to implement their own AWS client factory.</p><p>This client factory has the following configurable catalog properties:</p><table>
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>client.assume-role.arn</td>
-<td>null, requires user input</td>
-<td>ARN of the role to assume, e.g. arn:aws:iam::123456789:role/myRoleToAssume</td>
-</tr>
-<tr>
-<td>client.assume-role.region</td>
-<td>null, requires user input</td>
-<td>All AWS clients except the STS client will use the given region instead of the default region chain</td>
-</tr>
-<tr>
-<td>client.assume-role.external-id</td>
-<td>null</td>
-<td>An optional <a href=https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html>external ID</a></td>
-</tr>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
 <tr>
-<td>client.assume-role.timeout-sec</td>
-<td>1 hour</td>
-<td>Timeout of each assume role session. At the end of the timeout, a new set of role session credentials will be fetched through a STS client.</td>
-</tr>
-</tbody>
-</table>
-<p>By using this client factory, an STS client is initialized with the default credential and region to assume the specified role.
+<td>client.assume-role.arn</td><td>null, requires user input</td><td>ARN of the role to assume, e.g. arn:aws:iam::123456789:role/myRoleToAssume</td></tr><tr>
+<td>client.assume-role.region</td><td>null, requires user input</td><td>All AWS clients except the STS client will use the given region instead of the default region chain</td></tr><tr>
+<td>client.assume-role.external-id</td><td>null</td><td>An optional <a href=https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html>external ID</a></td></tr><tr>
+<td>client.assume-role.timeout-sec</td><td>1 hour</td><td>Timeout of each assume role session. At the end of the timeout, a new set of role session credentials will be fetched through a STS client.</td></tr></tbody></table><p>By using this client factory, an STS client is initialized with the default credential and region to assume the specified role.
 The Glue, S3 and DynamoDB clients are then initialized with the assume-role credential and region to access resources.
-Here is an example to start Spark shell with this client factory:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell>spark-sql --packages org.apache.iceberg:iceberg-spark-runtime-3.2_2.12:0.13.1,software.amazon.awssdk:bundle:2.15.40 <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog<span style=color:#f92672>=</span>org.apache.iceberg.spark.SparkCatalog <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.warehouse<span style=color:#f92672>=</span>s3://my-bucket/my/key/prefix <span style=color:#ae81ff>\ </span>   
-    --conf spark.sql.catalog.my_catalog.catalog-impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.glue.GlueCatalog <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.client.factory<span style=color:#f92672>=</span>org.apache.iceberg.aws.AssumeRoleAwsClientFactory <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.client.assume-role.arn<span style=color:#f92672>=</span>arn:aws:iam::123456789:role/myRoleToAssume <span style=color:#ae81ff>\
-</span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.client.assume-role.region<span style=color:#f92672>=</span>ap-northeast-1
-</code></pre></div><h2 id=run-iceberg-on-aws>
+Here is an example to start Spark shell with this client factory:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>spark-sql --packages org.apache.iceberg:iceberg-spark-runtime-3.2_2.12:0.13.1,software.amazon.awssdk:bundle:2.15.40 <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog<span style=color:#f92672>=</span>org.apache.iceberg.spark.SparkCatalog <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.warehouse<span style=color:#f92672>=</span>s3://my-bucket/my/key/prefix <span style=color:#ae81ff>\ </span>   
+</span></span><span style=display:flex><span>    --conf spark.sql.catalog.my_catalog.catalog-impl<span style=color:#f92672>=</span>org.apache.iceberg.aws.glue.GlueCatalog <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.client.factory<span style=color:#f92672>=</span>org.apache.iceberg.aws.AssumeRoleAwsClientFactory <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.client.assume-role.arn<span style=color:#f92672>=</span>arn:aws:iam::123456789:role/myRoleToAssume <span style=color:#ae81ff>\
+</span></span></span><span style=display:flex><span><span style=color:#ae81ff></span>    --conf spark.sql.catalog.my_catalog.client.assume-role.region<span style=color:#f92672>=</span>ap-northeast-1
+</span></span></code></pre></div><h2 id=run-iceberg-on-aws>
 Run Iceberg on AWS
 <a class=anchor href=#run-iceberg-on-aws>#</a>
-</h2>
-<h3 id=amazon-athena>
+</h2><h3 id=amazon-athena>
 Amazon Athena
 <a class=anchor href=#amazon-athena>#</a>
-</h3>
-<p><a href=https://aws.amazon.com/athena/>Amazon Athena</a> provides a serverless query engine that could be used to perform read, write, update and optimization tasks against Iceberg tables.
-More details could be found <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html>here</a>.</p>
-<h3 id=amazon-emr>
+</h3><p><a href=https://aws.amazon.com/athena/>Amazon Athena</a> provides a serverless query engine that could be used to perform read, write, update and optimization tasks against Iceberg tables.
+More details could be found <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html>here</a>.</p><h3 id=amazon-emr>
 Amazon EMR
 <a class=anchor href=#amazon-emr>#</a>
-</h3>
-<p><a href=https://aws.amazon.com/emr/>Amazon EMR</a> can provision clusters with <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark.html>Spark</a> (EMR 6 for Spark 3, EMR 5 for Spark 2),
+</h3><p><a href=https://aws.amazon.com/emr/>Amazon EMR</a> can provision clusters with <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark.html>Spark</a> (EMR 6 for Spark 3, EMR 5 for Spark 2),
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hive.html>Hive</a>, <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-flink.html>Flink</a>,
-<a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-presto.html>Trino</a> that can run Iceberg.</p>
-<p>Starting with EMR version 6.5.0, EMR clusters can be configured to have the necessary Apache Iceberg dependencies installed without requiring bootstrap actions.
-Please refer to the <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html>official documentation</a> on how to create a cluster with Iceberg installed.</p>
-<p>For versions before 6.5.0, you can use a <a href=https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-bootstrap.html>bootstrap action</a> similar to the following to pre-install all necessary dependencies:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sh data-lang=sh><span style=color:#75715e>#!/bin/bash
-</span><span style=color:#75715e></span>
-AWS_SDK_VERSION<span style=color:#f92672>=</span>2.15.40
-ICEBERG_VERSION<span style=color:#f92672>=</span>0.13.1
-MAVEN_URL<span style=color:#f92672>=</span>https://repo1.maven.org/maven2
-ICEBERG_MAVEN_URL<span style=color:#f92672>=</span>$MAVEN_URL/org/apache/iceberg
-AWS_MAVEN_URL<span style=color:#f92672>=</span>$MAVEN_URL/software/amazon/awssdk
-<span style=color:#75715e># NOTE: this is just an example shared class path between Spark and Flink,</span>
-<span style=color:#75715e>#  please choose a proper class path for production.</span>
-LIB_PATH<span style=color:#f92672>=</span>/usr/share/aws/aws-java-sdk/
-
-AWS_PACKAGES<span style=color:#f92672>=(</span>
-  <span style=color:#e6db74>&#34;bundle&#34;</span>
-  <span style=color:#e6db74>&#34;url-connection-client&#34;</span>
-<span style=color:#f92672>)</span>
-
-ICEBERG_PACKAGES<span style=color:#f92672>=(</span>
-  <span style=color:#e6db74>&#34;iceberg-spark-runtime-3.2_2.12&#34;</span>
-  <span style=color:#e6db74>&#34;iceberg-flink-runtime&#34;</span>
-<span style=color:#f92672>)</span>
-
-install_dependencies <span style=color:#f92672>()</span> <span style=color:#f92672>{</span>
-  install_path<span style=color:#f92672>=</span>$1
-  download_url<span style=color:#f92672>=</span>$2
-  version<span style=color:#f92672>=</span>$3
-  shift
-  pkgs<span style=color:#f92672>=(</span><span style=color:#e6db74>&#34;</span>$@<span style=color:#e6db74>&#34;</span><span style=color:#f92672>)</span>
-  <span style=color:#66d9ef>for</span> pkg in <span style=color:#e6db74>&#34;</span><span style=color:#e6db74>${</span>pkgs[@]<span style=color:#e6db74>}</span><span style=color:#e6db74>&#34;</span>; <span style=color:#66d9ef>do</span>
-    sudo wget -P $install_path $download_url/$pkg/$version/$pkg-$version.jar
-  <span style=color:#66d9ef>done</span>
-<span style=color:#f92672>}</span>
-
-install_dependencies $LIB_PATH $ICEBERG_MAVEN_URL $ICEBERG_VERSION <span style=color:#e6db74>&#34;</span><span style=color:#e6db74>${</span>ICEBERG_PACKAGES[@]<span style=color:#e6db74>}</span><span style=color:#e6db74>&#34;</span>
-install_dependencies $LIB_PATH $AWS_MAVEN_URL $AWS_SDK_VERSION <span style=color:#e6db74>&#34;</span><span style=color:#e6db74>${</span>AWS_PACKAGES[@]<span style=color:#e6db74>}</span><span style=color:#e6db74>&#34;</span>
-</code></pre></div><h3 id=aws-eks>
+<a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-presto.html>Trino</a> that can run Iceberg.</p><p>Starting with EMR version 6.5.0, EMR clusters can be configured to have the necessary Apache Iceberg dependencies installed without requiring bootstrap actions.
+Please refer to the <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html>official documentation</a> on how to create a cluster with Iceberg installed.</p><p>For versions before 6.5.0, you can use a <a href=https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-bootstrap.html>bootstrap action</a> similar to the following to pre-install all necessary dependencies:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#2 [...]
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
+</span></span><span style=display:flex><span>AWS_SDK_VERSION<span style=color:#f92672>=</span>2.15.40
+</span></span><span style=display:flex><span>ICEBERG_VERSION<span style=color:#f92672>=</span>0.13.1
+</span></span><span style=display:flex><span>MAVEN_URL<span style=color:#f92672>=</span>https://repo1.maven.org/maven2
+</span></span><span style=display:flex><span>ICEBERG_MAVEN_URL<span style=color:#f92672>=</span>$MAVEN_URL/org/apache/iceberg
+</span></span><span style=display:flex><span>AWS_MAVEN_URL<span style=color:#f92672>=</span>$MAVEN_URL/software/amazon/awssdk
+</span></span><span style=display:flex><span><span style=color:#75715e># NOTE: this is just an example shared class path between Spark and Flink,</span>
+</span></span><span style=display:flex><span><span style=color:#75715e>#  please choose a proper class path for production.</span>
+</span></span><span style=display:flex><span>LIB_PATH<span style=color:#f92672>=</span>/usr/share/aws/aws-java-sdk/
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>AWS_PACKAGES<span style=color:#f92672>=(</span>
+</span></span><span style=display:flex><span>  <span style=color:#e6db74>&#34;bundle&#34;</span>
+</span></span><span style=display:flex><span>  <span style=color:#e6db74>&#34;url-connection-client&#34;</span>
+</span></span><span style=display:flex><span><span style=color:#f92672>)</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>ICEBERG_PACKAGES<span style=color:#f92672>=(</span>
+</span></span><span style=display:flex><span>  <span style=color:#e6db74>&#34;iceberg-spark-runtime-3.2_2.12&#34;</span>
+</span></span><span style=display:flex><span>  <span style=color:#e6db74>&#34;iceberg-flink-runtime&#34;</span>
+</span></span><span style=display:flex><span><span style=color:#f92672>)</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>install_dependencies <span style=color:#f92672>()</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>  install_path<span style=color:#f92672>=</span>$1
+</span></span><span style=display:flex><span>  download_url<span style=color:#f92672>=</span>$2
+</span></span><span style=display:flex><span>  version<span style=color:#f92672>=</span>$3
+</span></span><span style=display:flex><span>  shift
+</span></span><span style=display:flex><span>  pkgs<span style=color:#f92672>=(</span><span style=color:#e6db74>&#34;</span>$@<span style=color:#e6db74>&#34;</span><span style=color:#f92672>)</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>for</span> pkg in <span style=color:#e6db74>&#34;</span><span style=color:#e6db74>${</span>pkgs[@]<span style=color:#e6db74>}</span><span style=color:#e6db74>&#34;</span>; <span style=color:#66d9ef>do</span>
+</span></span><span style=display:flex><span>    sudo wget -P $install_path $download_url/$pkg/$version/$pkg-$version.jar
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>done</span>
+</span></span><span style=display:flex><span><span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>install_dependencies $LIB_PATH $ICEBERG_MAVEN_URL $ICEBERG_VERSION <span style=color:#e6db74>&#34;</span><span style=color:#e6db74>${</span>ICEBERG_PACKAGES[@]<span style=color:#e6db74>}</span><span style=color:#e6db74>&#34;</span>
+</span></span><span style=display:flex><span>install_dependencies $LIB_PATH $AWS_MAVEN_URL $AWS_SDK_VERSION <span style=color:#e6db74>&#34;</span><span style=color:#e6db74>${</span>AWS_PACKAGES[@]<span style=color:#e6db74>}</span><span style=color:#e6db74>&#34;</span>
+</span></span></code></pre></div><h3 id=aws-eks>
 AWS EKS
 <a class=anchor href=#aws-eks>#</a>
-</h3>
-<p><a href=https://aws.amazon.com/eks/>AWS Elastic Kubernetes Service (EKS)</a> can be used to start any Spark, Flink, Hive, Presto or Trino clusters to work with Iceberg.
-Search the <a href=../../../blogs>Iceberg blogs</a> page for tutorials around running Iceberg with Docker and Kubernetes.</p>
-<h3 id=amazon-kinesis>
+</h3><p><a href=https://aws.amazon.com/eks/>AWS Elastic Kubernetes Service (EKS)</a> can be used to start any Spark, Flink, Hive, Presto or Trino clusters to work with Iceberg.
+Search the <a href=../../../blogs>Iceberg blogs</a> page for tutorials around running Iceberg with Docker and Kubernetes.</p><h3 id=amazon-kinesis>
 Amazon Kinesis
 <a class=anchor href=#amazon-kinesis>#</a>
-</h3>
-<p><a href=https://aws.amazon.com/about-aws/whats-new/2019/11/you-can-now-run-fully-managed-apache-flink-applications-with-apache-kafka/>Amazon Kinesis Data Analytics</a> provides a platform
-to run fully managed Apache Flink applications. You can include Iceberg in your application Jar and run it in the platform.</p>
-</article>
-<footer class=book-footer>
+</h3><p><a href=https://aws.amazon.com/about-aws/whats-new/2019/11/you-can-now-run-fully-managed-apache-flink-applications-with-apache-kafka/>Amazon Kinesis Data Analytics</a> provides a platform
+to run fully managed Apache Flink applications. You can include Iceberg in your application Jar and run it in the platform.</p></article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
 <nav id=TableOfContents>
 <ul>
 <li><a href=#enabling-aws-integration>Enabling AWS Integration</a>
 <ul>
-<li><a href=#spark>Spark</a></li>
-<li><a href=#flink>Flink</a></li>
-<li><a href=#hive>Hive</a></li>
-</ul>
-</li>
-<li><a href=#catalogs>Catalogs</a>
+<li><a href=#spark>Spark</a></li><li><a href=#flink>Flink</a></li><li><a href=#hive>Hive</a></li></ul></li><li><a href=#catalogs>Catalogs</a>
 <ul>
-<li><a href=#glue-catalog>Glue Catalog</a></li>
-<li><a href=#dynamodb-catalog>DynamoDB Catalog</a></li>
-<li><a href=#rds-jdbc-catalog>RDS JDBC Catalog</a></li>
-<li><a href=#which-catalog-to-choose>Which catalog to choose?</a></li>
-</ul>
-</li>
-<li><a href=#s3-fileio>S3 FileIO</a>
+<li><a href=#glue-catalog>Glue Catalog</a></li><li><a href=#dynamodb-catalog>DynamoDB Catalog</a></li><li><a href=#rds-jdbc-catalog>RDS JDBC Catalog</a></li><li><a href=#which-catalog-to-choose>Which catalog to choose?</a></li></ul></li><li><a href=#s3-fileio>S3 FileIO</a>
 <ul>
-<li><a href=#progressive-multipart-upload>Progressive Multipart Upload</a></li>
-<li><a href=#s3-server-side-encryption>S3 Server Side Encryption</a></li>
-<li><a href=#s3-access-control-list>S3 Access Control List</a></li>
-<li><a href=#object-store-file-layout>Object Store File Layout</a></li>
-<li><a href=#s3-strong-consistency>S3 Strong Consistency</a></li>
-<li><a href=#hadoop-s3a-filesystem>Hadoop S3A FileSystem</a></li>
-<li><a href=#s3-write-checksum-verification>S3 Write Checksum Verification</a></li>
-</ul>
-</li>
-<li><a href=#aws-client-customization>AWS Client Customization</a>
+<li><a href=#progressive-multipart-upload>Progressive Multipart Upload</a></li><li><a href=#s3-server-side-encryption>S3 Server Side Encryption</a></li><li><a href=#s3-access-control-list>S3 Access Control List</a></li><li><a href=#object-store-file-layout>Object Store File Layout</a></li><li><a href=#s3-strong-consistency>S3 Strong Consistency</a></li><li><a href=#hadoop-s3a-filesystem>Hadoop S3A FileSystem</a></li><li><a href=#s3-write-checksum-verification>S3 Write Checksum Verificati [...]
 <ul>
-<li><a href=#cross-account-and-cross-region-access>Cross-Account and Cross-Region Access</a></li>
-</ul>
-</li>
-<li><a href=#run-iceberg-on-aws>Run Iceberg on AWS</a>
+<li><a href=#cross-account-and-cross-region-access>Cross-Account and Cross-Region Access</a></li></ul></li><li><a href=#run-iceberg-on-aws>Run Iceberg on AWS</a>
 <ul>
-<li><a href=#amazon-athena>Amazon Athena</a></li>
-<li><a href=#amazon-emr>Amazon EMR</a></li>
-<li><a href=#aws-eks>AWS EKS</a></li>
-<li><a href=#amazon-kinesis>Amazon Kinesis</a></li>
-</ul>
-</li>
-</ul>
-</nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<li><a href=#amazon-athena>Amazon Athena</a></li><li><a href=#amazon-emr>Amazon EMR</a></li><li><a href=#aws-eks>AWS EKS</a></li><li><a href=#amazon-kinesis>Amazon Kinesis</a></li></ul></li></ul></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/categories/index.html b/docs/latest/categories/index.html
index 497a9bd..53403e4 100644
--- a/docs/latest/categories/index.html
+++ b/docs/latest/categories/index.html
@@ -8,15 +8,13 @@
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/categories/">
-<title>Categories | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Categories | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
 <link rel=alternate type=application/rss+xml href=https://iceberg.apache.org/docs/latest/categories/index.xml title="Apache Iceberg">
-</head>
-<body dir=ltr>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -29,19 +27,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -50,34 +44,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -85,84 +70,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -173,18 +138,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -195,35 +155,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -235,25 +186,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -265,15 +210,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -285,30 +226,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -320,30 +254,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -355,39 +282,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -398,49 +314,27 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
+</div><aside class="hidden clearfix">
 <nav>
 <ul>
 <li class=book-section-flat>
 <strong>Categories</strong>
 <ul>
-</ul>
-</li>
-<li class=book-section-flat>
+</ul></li><li class=book-section-flat>
 <strong>Tags</strong>
 <ul>
-</ul>
-</li>
-</ul>
-</nav>
-</aside>
-</header>
-<footer class=book-footer>
+</ul></li></ul></nav></aside></header><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
 <nav>
 <ul>
 <li class=book-section-flat>
 <strong>Categories</strong>
 <ul>
-</ul>
-</li>
-<li class=book-section-flat>
+</ul></li><li class=book-section-flat>
 <strong>Tags</strong>
 <ul>
-</ul>
-</li>
-</ul>
-</nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+</ul></li></ul></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/configuration/index.html b/docs/latest/configuration/index.html
index 58877c5..01d0927 100644
--- a/docs/latest/configuration/index.html
+++ b/docs/latest/configuration/index.html
@@ -10,14 +10,12 @@ Read properties #     Property Default Description     read.split.target-size 13
 Read properties #     Property Default Description     read.split.target-size 134217728 (128 MB) Target size when combining data input splits   read.split.metadata-target-size 33554432 (32 MB) Target size when combining metadata input splits   read.split.planning-lookback 10 Number of bins to consider when combining input splits   read.">
 <meta property="og:type" content="article">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/configuration/"><meta property="article:section" content="docs">
-<title>Configuration | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Configuration | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
-</head>
-<body dir=ltr>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -30,19 +28,15 @@ Read properties #     Property Default Description     read.split.target-size 13
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -51,34 +45,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/ class=active>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -86,84 +71,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -174,18 +139,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -196,35 +156,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -236,25 +187,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -266,15 +211,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -286,30 +227,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -321,30 +255,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -356,39 +283,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -399,470 +315,147 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
+</div><aside class="hidden clearfix">
 <nav id=TableOfContents>
 <ul>
 <li><a href=#table-properties>Table properties</a>
 <ul>
-<li><a href=#read-properties>Read properties</a></li>
-<li><a href=#write-properties>Write properties</a></li>
-<li><a href=#table-behavior-properties>Table behavior properties</a></li>
-<li><a href=#reserved-table-properties>Reserved table properties</a></li>
-<li><a href=#compatibility-flags>Compatibility flags</a></li>
-</ul>
-</li>
-<li><a href=#catalog-properties>Catalog properties</a>
+<li><a href=#read-properties>Read properties</a></li><li><a href=#write-properties>Write properties</a></li><li><a href=#table-behavior-properties>Table behavior properties</a></li><li><a href=#reserved-table-properties>Reserved table properties</a></li><li><a href=#compatibility-flags>Compatibility flags</a></li></ul></li><li><a href=#catalog-properties>Catalog properties</a>
 <ul>
-<li><a href=#lock-catalog-properties>Lock catalog properties</a></li>
-</ul>
-</li>
-<li><a href=#hadoop-configuration>Hadoop configuration</a></li>
-</ul>
-</nav>
-</aside>
-</header>
-<article class=markdown>
+<li><a href=#lock-catalog-properties>Lock catalog properties</a></li></ul></li><li><a href=#hadoop-configuration>Hadoop configuration</a></li></ul></nav></aside></header><article class=markdown>
 <h1 id=configuration>
 Configuration
 <a class=anchor href=#configuration>#</a>
-</h1>
-<h2 id=table-properties>
+</h1><h2 id=table-properties>
 Table properties
 <a class=anchor href=#table-properties>#</a>
-</h2>
-<p>Iceberg tables support table properties to configure table behavior, like the default split size for readers.</p>
-<h3 id=read-properties>
+</h2><p>Iceberg tables support table properties to configure table behavior, like the default split size for readers.</p><h3 id=read-properties>
 Read properties
 <a class=anchor href=#read-properties>#</a>
-</h3>
-<table>
+</h3><table>
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>read.split.target-size</td>
-<td>134217728 (128 MB)</td>
-<td>Target size when combining data input splits</td>
-</tr>
-<tr>
-<td>read.split.metadata-target-size</td>
-<td>33554432 (32 MB)</td>
-<td>Target size when combining metadata input splits</td>
-</tr>
-<tr>
-<td>read.split.planning-lookback</td>
-<td>10</td>
-<td>Number of bins to consider when combining input splits</td>
-</tr>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
 <tr>
-<td>read.split.open-file-cost</td>
-<td>4194304 (4 MB)</td>
-<td>The estimated cost to open a file, used as a minimum weight when combining splits.</td>
-</tr>
-</tbody>
-</table>
-<h3 id=write-properties>
+<td>read.split.target-size</td><td>134217728 (128 MB)</td><td>Target size when combining data input splits</td></tr><tr>
+<td>read.split.metadata-target-size</td><td>33554432 (32 MB)</td><td>Target size when combining metadata input splits</td></tr><tr>
+<td>read.split.planning-lookback</td><td>10</td><td>Number of bins to consider when combining input splits</td></tr><tr>
+<td>read.split.open-file-cost</td><td>4194304 (4 MB)</td><td>The estimated cost to open a file, used as a minimum weight when combining splits.</td></tr></tbody></table><h3 id=write-properties>
 Write properties
 <a class=anchor href=#write-properties>#</a>
-</h3>
-<table>
+</h3><table>
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>write.format.default</td>
-<td>parquet</td>
-<td>Default file format for the table; parquet, avro, or orc</td>
-</tr>
-<tr>
-<td>write.parquet.row-group-size-bytes</td>
-<td>134217728 (128 MB)</td>
-<td>Parquet row group size</td>
-</tr>
-<tr>
-<td>write.parquet.page-size-bytes</td>
-<td>1048576 (1 MB)</td>
-<td>Parquet page size</td>
-</tr>
-<tr>
-<td>write.parquet.dict-size-bytes</td>
-<td>2097152 (2 MB)</td>
-<td>Parquet dictionary page size</td>
-</tr>
-<tr>
-<td>write.parquet.compression-codec</td>
-<td>gzip</td>
-<td>Parquet compression codec: zstd, brotli, lz4, gzip, snappy, uncompressed</td>
-</tr>
-<tr>
-<td>write.parquet.compression-level</td>
-<td>null</td>
-<td>Parquet compression level</td>
-</tr>
-<tr>
-<td>write.avro.compression-codec</td>
-<td>gzip</td>
-<td>Avro compression codec: gzip(deflate with 9 level), gzip, snappy, uncompressed</td>
-</tr>
-<tr>
-<td>write.location-provider.impl</td>
-<td>null</td>
-<td>Optional custom implemention for LocationProvider</td>
-</tr>
-<tr>
-<td>write.metadata.compression-codec</td>
-<td>none</td>
-<td>Metadata compression codec; none or gzip</td>
-</tr>
-<tr>
-<td>write.metadata.metrics.default</td>
-<td>truncate(16)</td>
-<td>Default metrics mode for all columns in the table; none, counts, truncate(length), or full</td>
-</tr>
-<tr>
-<td>write.metadata.metrics.column.col1</td>
-<td>(not set)</td>
-<td>Metrics mode for column &lsquo;col1&rsquo; to allow per-column tuning; none, counts, truncate(length), or full</td>
-</tr>
-<tr>
-<td>write.target-file-size-bytes</td>
-<td>536870912 (512 MB)</td>
-<td>Controls the size of files generated to target about this many bytes</td>
-</tr>
-<tr>
-<td>write.distribution-mode</td>
-<td>none</td>
-<td>Defines distribution of write data: <strong>none</strong>: don&rsquo;t shuffle rows; <strong>hash</strong>: hash distribute by partition key ; <strong>range</strong>: range distribute by partition key or sort key if table has an SortOrder</td>
-</tr>
-<tr>
-<td>write.wap.enabled</td>
-<td>false</td>
-<td>Enables write-audit-publish writes</td>
-</tr>
-<tr>
-<td>write.summary.partition-limit</td>
-<td>0</td>
-<td>Includes partition-level summary stats in snapshot summaries if the changed partition count is less than this limit</td>
-</tr>
-<tr>
-<td>write.metadata.delete-after-commit.enabled</td>
-<td>false</td>
-<td>Controls whether to delete the oldest version metadata files after commit</td>
-</tr>
-<tr>
-<td>write.metadata.previous-versions-max</td>
-<td>100</td>
-<td>The max number of previous version metadata files to keep before deleting after commit</td>
-</tr>
-<tr>
-<td>write.spark.fanout.enabled</td>
-<td>false</td>
-<td>Enables Partitioned-Fanout-Writer writes in Spark</td>
-</tr>
-</tbody>
-</table>
-<h3 id=table-behavior-properties>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
+<tr>
+<td>write.format.default</td><td>parquet</td><td>Default file format for the table; parquet, avro, or orc</td></tr><tr>
+<td>write.parquet.row-group-size-bytes</td><td>134217728 (128 MB)</td><td>Parquet row group size</td></tr><tr>
+<td>write.parquet.page-size-bytes</td><td>1048576 (1 MB)</td><td>Parquet page size</td></tr><tr>
+<td>write.parquet.dict-size-bytes</td><td>2097152 (2 MB)</td><td>Parquet dictionary page size</td></tr><tr>
+<td>write.parquet.compression-codec</td><td>gzip</td><td>Parquet compression codec: zstd, brotli, lz4, gzip, snappy, uncompressed</td></tr><tr>
+<td>write.parquet.compression-level</td><td>null</td><td>Parquet compression level</td></tr><tr>
+<td>write.avro.compression-codec</td><td>gzip</td><td>Avro compression codec: gzip(deflate with 9 level), gzip, snappy, uncompressed</td></tr><tr>
+<td>write.location-provider.impl</td><td>null</td><td>Optional custom implemention for LocationProvider</td></tr><tr>
+<td>write.metadata.compression-codec</td><td>none</td><td>Metadata compression codec; none or gzip</td></tr><tr>
+<td>write.metadata.metrics.default</td><td>truncate(16)</td><td>Default metrics mode for all columns in the table; none, counts, truncate(length), or full</td></tr><tr>
+<td>write.metadata.metrics.column.col1</td><td>(not set)</td><td>Metrics mode for column &lsquo;col1&rsquo; to allow per-column tuning; none, counts, truncate(length), or full</td></tr><tr>
+<td>write.target-file-size-bytes</td><td>536870912 (512 MB)</td><td>Controls the size of files generated to target about this many bytes</td></tr><tr>
+<td>write.distribution-mode</td><td>none</td><td>Defines distribution of write data: <strong>none</strong>: don&rsquo;t shuffle rows; <strong>hash</strong>: hash distribute by partition key ; <strong>range</strong>: range distribute by partition key or sort key if table has an SortOrder</td></tr><tr>
+<td>write.wap.enabled</td><td>false</td><td>Enables write-audit-publish writes</td></tr><tr>
+<td>write.summary.partition-limit</td><td>0</td><td>Includes partition-level summary stats in snapshot summaries if the changed partition count is less than this limit</td></tr><tr>
+<td>write.metadata.delete-after-commit.enabled</td><td>false</td><td>Controls whether to delete the oldest version metadata files after commit</td></tr><tr>
+<td>write.metadata.previous-versions-max</td><td>100</td><td>The max number of previous version metadata files to keep before deleting after commit</td></tr><tr>
+<td>write.spark.fanout.enabled</td><td>false</td><td>Enables Partitioned-Fanout-Writer writes in Spark</td></tr></tbody></table><h3 id=table-behavior-properties>
 Table behavior properties
 <a class=anchor href=#table-behavior-properties>#</a>
-</h3>
-<table>
+</h3><table>
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>commit.retry.num-retries</td>
-<td>4</td>
-<td>Number of times to retry a commit before failing</td>
-</tr>
-<tr>
-<td>commit.retry.min-wait-ms</td>
-<td>100</td>
-<td>Minimum time in milliseconds to wait before retrying a commit</td>
-</tr>
-<tr>
-<td>commit.retry.max-wait-ms</td>
-<td>60000 (1 min)</td>
-<td>Maximum time in milliseconds to wait before retrying a commit</td>
-</tr>
-<tr>
-<td>commit.retry.total-timeout-ms</td>
-<td>1800000 (30 min)</td>
-<td>Total retry timeout period in milliseconds for a commit</td>
-</tr>
-<tr>
-<td>commit.status-check.num-retries</td>
-<td>3</td>
-<td>Number of times to check whether a commit succeeded after a connection is lost before failing due to an unknown commit state</td>
-</tr>
-<tr>
-<td>commit.status-check.min-wait-ms</td>
-<td>1000 (1s)</td>
-<td>Minimum time in milliseconds to wait before retrying a status-check</td>
-</tr>
-<tr>
-<td>commit.status-check.max-wait-ms</td>
-<td>60000 (1 min)</td>
-<td>Maximum time in milliseconds to wait before retrying a status-check</td>
-</tr>
-<tr>
-<td>commit.status-check.total-timeout-ms</td>
-<td>1800000 (30 min)</td>
-<td>Total timeout period in which the commit status-check must succeed, in milliseconds</td>
-</tr>
-<tr>
-<td>commit.manifest.target-size-bytes</td>
-<td>8388608 (8 MB)</td>
-<td>Target size when merging manifest files</td>
-</tr>
-<tr>
-<td>commit.manifest.min-count-to-merge</td>
-<td>100</td>
-<td>Minimum number of manifests to accumulate before merging</td>
-</tr>
-<tr>
-<td>commit.manifest-merge.enabled</td>
-<td>true</td>
-<td>Controls whether to automatically merge manifests on writes</td>
-</tr>
-<tr>
-<td>history.expire.max-snapshot-age-ms</td>
-<td>432000000 (5 days)</td>
-<td>Default max age of snapshots to keep while expiring snapshots</td>
-</tr>
-<tr>
-<td>history.expire.min-snapshots-to-keep</td>
-<td>1</td>
-<td>Default min number of snapshots to keep while expiring snapshots</td>
-</tr>
-<tr>
-<td>history.expire.max-ref-age-ms</td>
-<td><code>Long.MAX_VALUE</code> (forever)</td>
-<td>For snapshot references except the <code>main</code> branch, default max age of snapshot references to keep while expiring snapshots. The <code>main</code> branch never expires.</td>
-</tr>
-</tbody>
-</table>
-<h3 id=reserved-table-properties>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
+<tr>
+<td>commit.retry.num-retries</td><td>4</td><td>Number of times to retry a commit before failing</td></tr><tr>
+<td>commit.retry.min-wait-ms</td><td>100</td><td>Minimum time in milliseconds to wait before retrying a commit</td></tr><tr>
+<td>commit.retry.max-wait-ms</td><td>60000 (1 min)</td><td>Maximum time in milliseconds to wait before retrying a commit</td></tr><tr>
+<td>commit.retry.total-timeout-ms</td><td>1800000 (30 min)</td><td>Total retry timeout period in milliseconds for a commit</td></tr><tr>
+<td>commit.status-check.num-retries</td><td>3</td><td>Number of times to check whether a commit succeeded after a connection is lost before failing due to an unknown commit state</td></tr><tr>
+<td>commit.status-check.min-wait-ms</td><td>1000 (1s)</td><td>Minimum time in milliseconds to wait before retrying a status-check</td></tr><tr>
+<td>commit.status-check.max-wait-ms</td><td>60000 (1 min)</td><td>Maximum time in milliseconds to wait before retrying a status-check</td></tr><tr>
+<td>commit.status-check.total-timeout-ms</td><td>1800000 (30 min)</td><td>Total timeout period in which the commit status-check must succeed, in milliseconds</td></tr><tr>
+<td>commit.manifest.target-size-bytes</td><td>8388608 (8 MB)</td><td>Target size when merging manifest files</td></tr><tr>
+<td>commit.manifest.min-count-to-merge</td><td>100</td><td>Minimum number of manifests to accumulate before merging</td></tr><tr>
+<td>commit.manifest-merge.enabled</td><td>true</td><td>Controls whether to automatically merge manifests on writes</td></tr><tr>
+<td>history.expire.max-snapshot-age-ms</td><td>432000000 (5 days)</td><td>Default max age of snapshots to keep while expiring snapshots</td></tr><tr>
+<td>history.expire.min-snapshots-to-keep</td><td>1</td><td>Default min number of snapshots to keep while expiring snapshots</td></tr><tr>
+<td>history.expire.max-ref-age-ms</td><td><code>Long.MAX_VALUE</code> (forever)</td><td>For snapshot references except the <code>main</code> branch, default max age of snapshot references to keep while expiring snapshots. The <code>main</code> branch never expires.</td></tr></tbody></table><h3 id=reserved-table-properties>
 Reserved table properties
 <a class=anchor href=#reserved-table-properties>#</a>
-</h3>
-<p>Reserved table properties are only used to control behaviors when creating or updating a table.
-The value of these properties are not persisted as a part of the table metadata.</p>
-<table>
+</h3><p>Reserved table properties are only used to control behaviors when creating or updating a table.
+The value of these properties are not persisted as a part of the table metadata.</p><table>
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
 <tr>
-<td>format-version</td>
-<td>1</td>
-<td>Table&rsquo;s format version (can be 1 or 2) as defined in the <a href=./spec.md#format-versioning>Spec</a>.</td>
-</tr>
-</tbody>
-</table>
-<h3 id=compatibility-flags>
+<td>format-version</td><td>1</td><td>Table&rsquo;s format version (can be 1 or 2) as defined in the <a href=./spec.md#format-versioning>Spec</a>.</td></tr></tbody></table><h3 id=compatibility-flags>
 Compatibility flags
 <a class=anchor href=#compatibility-flags>#</a>
-</h3>
-<table>
+</h3><table>
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
 <tr>
-<td>compatibility.snapshot-id-inheritance.enabled</td>
-<td>false</td>
-<td>Enables committing snapshots without explicit snapshot IDs</td>
-</tr>
-</tbody>
-</table>
-<h2 id=catalog-properties>
+<td>compatibility.snapshot-id-inheritance.enabled</td><td>false</td><td>Enables committing snapshots without explicit snapshot IDs</td></tr></tbody></table><h2 id=catalog-properties>
 Catalog properties
 <a class=anchor href=#catalog-properties>#</a>
-</h2>
-<p>Iceberg catalogs support using catalog properties to configure catalog behaviors. Here is a list of commonly used catalog properties:</p>
-<table>
+</h2><p>Iceberg catalogs support using catalog properties to configure catalog behaviors. Here is a list of commonly used catalog properties:</p><table>
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>catalog-impl</td>
-<td>null</td>
-<td>a custom <code>Catalog</code> implementation to use by an engine</td>
-</tr>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
 <tr>
-<td>io-impl</td>
-<td>null</td>
-<td>a custom <code>FileIO</code> implementation to use in a catalog</td>
-</tr>
-<tr>
-<td>warehouse</td>
-<td>null</td>
-<td>the root path of the data warehouse</td>
-</tr>
-<tr>
-<td>uri</td>
-<td>null</td>
-<td>a URI string, such as Hive metastore URI</td>
-</tr>
-<tr>
-<td>clients</td>
-<td>2</td>
-<td>client pool size</td>
-</tr>
-</tbody>
-</table>
-<p><code>HadoopCatalog</code> and <code>HiveCatalog</code> can access the properties in their constructors.
+<td>catalog-impl</td><td>null</td><td>a custom <code>Catalog</code> implementation to use by an engine</td></tr><tr>
+<td>io-impl</td><td>null</td><td>a custom <code>FileIO</code> implementation to use in a catalog</td></tr><tr>
+<td>warehouse</td><td>null</td><td>the root path of the data warehouse</td></tr><tr>
+<td>uri</td><td>null</td><td>a URI string, such as Hive metastore URI</td></tr><tr>
+<td>clients</td><td>2</td><td>client pool size</td></tr></tbody></table><p><code>HadoopCatalog</code> and <code>HiveCatalog</code> can access the properties in their constructors.
 Any other custom catalog can access the properties by implementing <code>Catalog.initialize(catalogName, catalogProperties)</code>.
 The properties can be manually constructed or passed in from a compute engine like Spark or Flink.
 Spark uses its session properties as catalog properties, see more details in the <a href=../spark-configuration#catalog-configuration>Spark configuration</a> section.
-Flink passes in catalog properties through <code>CREATE CATALOG</code> statement, see more details in the <a href=../flink/#creating-catalogs-and-using-catalogs>Flink</a> section.</p>
-<h3 id=lock-catalog-properties>
+Flink passes in catalog properties through <code>CREATE CATALOG</code> statement, see more details in the <a href=../flink/#creating-catalogs-and-using-catalogs>Flink</a> section.</p><h3 id=lock-catalog-properties>
 Lock catalog properties
 <a class=anchor href=#lock-catalog-properties>#</a>
-</h3>
-<p>Here are the catalog properties related to locking. They are used by some catalog implementations to control the locking behavior during commits.</p>
-<table>
+</h3><p>Here are the catalog properties related to locking. They are used by some catalog implementations to control the locking behavior during commits.</p><table>
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>lock-impl</td>
-<td>null</td>
-<td>a custom implementation of the lock manager, the actual interface depends on the catalog used</td>
-</tr>
-<tr>
-<td>lock.table</td>
-<td>null</td>
-<td>an auxiliary table for locking, such as in <a href=../aws/#dynamodb-for-commit-locking>AWS DynamoDB lock manager</a></td>
-</tr>
-<tr>
-<td>lock.acquire-interval-ms</td>
-<td>5 seconds</td>
-<td>the interval to wait between each attempt to acquire a lock</td>
-</tr>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
 <tr>
-<td>lock.acquire-timeout-ms</td>
-<td>3 minutes</td>
-<td>the maximum time to try acquiring a lock</td>
-</tr>
-<tr>
-<td>lock.heartbeat-interval-ms</td>
-<td>3 seconds</td>
-<td>the interval to wait between each heartbeat after acquiring a lock</td>
-</tr>
-<tr>
-<td>lock.heartbeat-timeout-ms</td>
-<td>15 seconds</td>
-<td>the maximum time without a heartbeat to consider a lock expired</td>
-</tr>
-</tbody>
-</table>
-<h2 id=hadoop-configuration>
+<td>lock-impl</td><td>null</td><td>a custom implementation of the lock manager, the actual interface depends on the catalog used</td></tr><tr>
+<td>lock.table</td><td>null</td><td>an auxiliary table for locking, such as in <a href=../aws/#dynamodb-for-commit-locking>AWS DynamoDB lock manager</a></td></tr><tr>
+<td>lock.acquire-interval-ms</td><td>5 seconds</td><td>the interval to wait between each attempt to acquire a lock</td></tr><tr>
+<td>lock.acquire-timeout-ms</td><td>3 minutes</td><td>the maximum time to try acquiring a lock</td></tr><tr>
+<td>lock.heartbeat-interval-ms</td><td>3 seconds</td><td>the interval to wait between each heartbeat after acquiring a lock</td></tr><tr>
+<td>lock.heartbeat-timeout-ms</td><td>15 seconds</td><td>the maximum time without a heartbeat to consider a lock expired</td></tr></tbody></table><h2 id=hadoop-configuration>
 Hadoop configuration
 <a class=anchor href=#hadoop-configuration>#</a>
-</h2>
-<p>The following properties from the Hadoop configuration are used by the Hive Metastore connector.</p>
-<table>
+</h2><p>The following properties from the Hadoop configuration are used by the Hive Metastore connector.</p><table>
 <thead>
 <tr>
-<th>Property</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>iceberg.hive.client-pool-size</td>
-<td>5</td>
-<td>The size of the Hive client pool when tracking tables in HMS</td>
-</tr>
-<tr>
-<td>iceberg.hive.lock-timeout-ms</td>
-<td>180000 (3 min)</td>
-<td>Maximum time in milliseconds to acquire a lock</td>
-</tr>
-<tr>
-<td>iceberg.hive.lock-check-min-wait-ms</td>
-<td>50</td>
-<td>Minimum time in milliseconds to check back on the status of lock acquisition</td>
-</tr>
+<th>Property</th><th>Default</th><th>Description</th></tr></thead><tbody>
 <tr>
-<td>iceberg.hive.lock-check-max-wait-ms</td>
-<td>5000</td>
-<td>Maximum time in milliseconds to check back on the status of lock acquisition</td>
-</tr>
-</tbody>
-</table>
-<p>Note: <code>iceberg.hive.lock-check-max-wait-ms</code> should be less than the <a href=https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-hive.txn.timeout>transaction timeout</a>
+<td>iceberg.hive.client-pool-size</td><td>5</td><td>The size of the Hive client pool when tracking tables in HMS</td></tr><tr>
+<td>iceberg.hive.lock-timeout-ms</td><td>180000 (3 min)</td><td>Maximum time in milliseconds to acquire a lock</td></tr><tr>
+<td>iceberg.hive.lock-check-min-wait-ms</td><td>50</td><td>Minimum time in milliseconds to check back on the status of lock acquisition</td></tr><tr>
+<td>iceberg.hive.lock-check-max-wait-ms</td><td>5000</td><td>Maximum time in milliseconds to check back on the status of lock acquisition</td></tr></tbody></table><p>Note: <code>iceberg.hive.lock-check-max-wait-ms</code> should be less than the <a href=https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-hive.txn.timeout>transaction timeout</a>
 of the Hive Metastore (<code>hive.txn.timeout</code> or <code>metastore.txn.timeout</code> in the newer versions). Otherwise, the heartbeats on the lock (which happens during the lock checks) would end up expiring in the
-Hive Metastore before the lock is retried from Iceberg.</p>
-</article>
-<footer class=book-footer>
+Hive Metastore before the lock is retried from Iceberg.</p></article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
 <nav id=TableOfContents>
 <ul>
 <li><a href=#table-properties>Table properties</a>
 <ul>
-<li><a href=#read-properties>Read properties</a></li>
-<li><a href=#write-properties>Write properties</a></li>
-<li><a href=#table-behavior-properties>Table behavior properties</a></li>
-<li><a href=#reserved-table-properties>Reserved table properties</a></li>
-<li><a href=#compatibility-flags>Compatibility flags</a></li>
-</ul>
-</li>
-<li><a href=#catalog-properties>Catalog properties</a>
+<li><a href=#read-properties>Read properties</a></li><li><a href=#write-properties>Write properties</a></li><li><a href=#table-behavior-properties>Table behavior properties</a></li><li><a href=#reserved-table-properties>Reserved table properties</a></li><li><a href=#compatibility-flags>Compatibility flags</a></li></ul></li><li><a href=#catalog-properties>Catalog properties</a>
 <ul>
-<li><a href=#lock-catalog-properties>Lock catalog properties</a></li>
-</ul>
-</li>
-<li><a href=#hadoop-configuration>Hadoop configuration</a></li>
-</ul>
-</nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<li><a href=#lock-catalog-properties>Lock catalog properties</a></li></ul></li><li><a href=#hadoop-configuration>Hadoop configuration</a></li></ul></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/custom-catalog/index.html b/docs/latest/custom-catalog/index.html
index 20c914b..b64165d 100644
--- a/docs/latest/custom-catalog/index.html
+++ b/docs/latest/custom-catalog/index.html
@@ -10,14 +10,12 @@
  Custom TableOperations Custom Catalog Custom FileIO Custom LocationProvider Custom IcebergSource  Custom table operations implementation #  Extend BaseMetastoreTableOperations to provide implementation on how to read and write metadata">
 <meta property="og:type" content="article">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/custom-catalog/"><meta property="article:section" content="docs">
-<title>Java Custom Catalog | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Java Custom Catalog | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
-</head>
-<body dir=ltr>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -30,19 +28,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -51,34 +45,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -86,84 +71,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -174,18 +139,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle checked>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -196,35 +156,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/ class=active>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -236,25 +187,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -266,15 +211,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -286,30 +227,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -321,30 +255,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -356,39 +283,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -399,287 +315,228 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
+</div><aside class="hidden clearfix">
 <nav id=TableOfContents>
 <ul>
 <li>
 <ul>
-<li><a href=#custom-table-operations-implementation>Custom table operations implementation</a></li>
-<li><a href=#custom-catalog-implementation-1>Custom catalog implementation</a></li>
-<li><a href=#custom-file-io-implementation>Custom file IO implementation</a></li>
-<li><a href=#custom-location-provider-implementation>Custom location provider implementation</a></li>
-<li><a href=#custom-icebergsource>Custom IcebergSource</a></li>
-</ul>
-</li>
-</ul>
-</nav>
-</aside>
-</header>
-<article class=markdown>
+<li><a href=#custom-table-operations-implementation>Custom table operations implementation</a></li><li><a href=#custom-catalog-implementation-1>Custom catalog implementation</a></li><li><a href=#custom-file-io-implementation>Custom file IO implementation</a></li><li><a href=#custom-location-provider-implementation>Custom location provider implementation</a></li><li><a href=#custom-icebergsource>Custom IcebergSource</a></li></ul></li></ul></nav></aside></header><article class=markdown>
 <h1 id=custom-catalog-implementation>
 Custom Catalog Implementation
 <a class=anchor href=#custom-catalog-implementation>#</a>
-</h1>
-<p>It&rsquo;s possible to read an iceberg table either from an hdfs path or from a hive table. It&rsquo;s also possible to use a custom metastore in place of hive. The steps to do that are as follows.</p>
-<ul>
-<li><a href=#custom-table-operations-implementation>Custom TableOperations</a></li>
-<li><a href=#custom-catalog-implementation>Custom Catalog</a></li>
-<li><a href=#custom-file-io-implementation>Custom FileIO</a></li>
-<li><a href=#custom-location-provider-implementation>Custom LocationProvider</a></li>
-<li><a href=#custom-icebergsource>Custom IcebergSource</a></li>
-</ul>
-<h3 id=custom-table-operations-implementation>
+</h1><p>It&rsquo;s possible to read an iceberg table either from an hdfs path or from a hive table. It&rsquo;s also possible to use a custom metastore in place of hive. The steps to do that are as follows.</p><ul>
+<li><a href=#custom-table-operations-implementation>Custom TableOperations</a></li><li><a href=#custom-catalog-implementation>Custom Catalog</a></li><li><a href=#custom-file-io-implementation>Custom FileIO</a></li><li><a href=#custom-location-provider-implementation>Custom LocationProvider</a></li><li><a href=#custom-icebergsource>Custom IcebergSource</a></li></ul><h3 id=custom-table-operations-implementation>
 Custom table operations implementation
 <a class=anchor href=#custom-table-operations-implementation>#</a>
-</h3>
-<p>Extend <code>BaseMetastoreTableOperations</code> to provide implementation on how to read and write metadata</p>
-<p>Example:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=color:#66d9ef>class</span> <span style=color:#a6e22e>CustomTableOperations</span> <span style=color:#66d9ef>extends</span> BaseMetastoreTableOperations <span style=color:#f92672>{</span>
-  <span style=color:#66d9ef>private</span> String dbName<span style=color:#f92672>;</span>
-  <span style=color:#66d9ef>private</span> String tableName<span style=color:#f92672>;</span>
-  <span style=color:#66d9ef>private</span> Configuration conf<span style=color:#f92672>;</span>
-  <span style=color:#66d9ef>private</span> FileIO fileIO<span style=color:#f92672>;</span>
-
-  <span style=color:#66d9ef>protected</span> <span style=color:#a6e22e>CustomTableOperations</span><span style=color:#f92672>(</span>Configuration conf<span style=color:#f92672>,</span> String dbName<span style=color:#f92672>,</span> String tableName<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    <span style=color:#66d9ef>this</span><span style=color:#f92672>.</span><span style=color:#a6e22e>conf</span> <span style=color:#f92672>=</span> conf<span style=color:#f92672>;</span>
-    <span style=color:#66d9ef>this</span><span style=color:#f92672>.</span><span style=color:#a6e22e>dbName</span> <span style=color:#f92672>=</span> dbName<span style=color:#f92672>;</span>
-    <span style=color:#66d9ef>this</span><span style=color:#f92672>.</span><span style=color:#a6e22e>tableName</span> <span style=color:#f92672>=</span> tableName<span style=color:#f92672>;</span>
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#75715e>// The doRefresh method should provide implementation on how to get the metadata location
-</span><span style=color:#75715e></span>  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>doRefresh</span><span style=color:#f92672>()</span> <span style=color:#f92672>{</span>
-
-    <span style=color:#75715e>// Example custom service which returns the metadata location given a dbName and tableName
-</span><span style=color:#75715e></span>    String metadataLocation <span style=color:#f92672>=</span> CustomService<span style=color:#f92672>.</span><span style=color:#a6e22e>getMetadataForTable</span><span style=color:#f92672>(</span>conf<span style=color:#f92672>,</span> dbName<span style=color:#f92672>,</span> tableName<span style=color:#f92672>);</span>
-
-    <span style=color:#75715e>// When updating from a metadata file location, call the helper method
-</span><span style=color:#75715e></span>    refreshFromMetadataLocation<span style=color:#f92672>(</span>metadataLocation<span style=color:#f92672>);</span>
-
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#75715e>// The doCommit method should provide implementation on how to update with metadata location atomically
-</span><span style=color:#75715e></span>  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>doCommit</span><span style=color:#f92672>(</span>TableMetadata base<span style=color:#f92672>,</span> TableMetadata metadata<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    String oldMetadataLocation <span style=color:#f92672>=</span> base<span style=color:#f92672>.</span><span style=color:#a6e22e>location</span><span style=color:#f92672>();</span>
-
-    <span style=color:#75715e>// Write new metadata using helper method
-</span><span style=color:#75715e></span>    String newMetadataLocation <span style=color:#f92672>=</span> writeNewMetadata<span style=color:#f92672>(</span>metadata<span style=color:#f92672>,</span> currentVersion<span style=color:#f92672>()</span> <span style=color:#f92672>+</span> 1<span style=color:#f92672>);</span>
-
-    <span style=color:#75715e>// Example custom service which updates the metadata location for the given db and table atomically
-</span><span style=color:#75715e></span>    CustomService<span style=color:#f92672>.</span><span style=color:#a6e22e>updateMetadataLocation</span><span style=color:#f92672>(</span>dbName<span style=color:#f92672>,</span> tableName<span style=color:#f92672>,</span> oldMetadataLocation<span style=color:#f92672>,</span> newMetadataLocation<span style=color:#f92672>);</span>
-
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#75715e>// The io method provides a FileIO which is used to read and write the table metadata files
-</span><span style=color:#75715e></span>  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>public</span> FileIO <span style=color:#a6e22e>io</span><span style=color:#f92672>()</span> <span style=color:#f92672>{</span>
-    <span style=color:#66d9ef>if</span> <span style=color:#f92672>(</span>fileIO <span style=color:#f92672>==</span> <span style=color:#66d9ef>null</span><span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-      fileIO <span style=color:#f92672>=</span> <span style=color:#66d9ef>new</span> HadoopFileIO<span style=color:#f92672>(</span>conf<span style=color:#f92672>);</span>
-    <span style=color:#f92672>}</span>
-    <span style=color:#66d9ef>return</span> fileIO<span style=color:#f92672>;</span>
-  <span style=color:#f92672>}</span>
-<span style=color:#f92672>}</span>
-</code></pre></div><p>A <code>TableOperations</code> instance is usually obtained by calling <code>Catalog.newTableOps(TableIdentifier)</code>.
-See the next section about implementing and loading a custom catalog.</p>
-<h3 id=custom-catalog-implementation-1>
+</h3><p>Extend <code>BaseMetastoreTableOperations</code> to provide implementation on how to read and write metadata</p><p>Example:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#66d9ef>class</span> <span style=color:#a6e22e>CustomTableOperations</span> <span style=color:#66d9ef>extends</span> BaseMetastoreTableOperation [...]
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>private</span> String dbName<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>private</span> String tableName<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>private</span> Configuration conf<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>private</span> FileIO fileIO<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>protected</span> <span style=color:#a6e22e>CustomTableOperations</span><span style=color:#f92672>(</span>Configuration conf<span style=color:#f92672>,</span> String dbName<span style=color:#f92672>,</span> String tableName<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>this</span><span style=color:#f92672>.</span><span style=color:#a6e22e>conf</span> <span style=color:#f92672>=</span> conf<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>this</span><span style=color:#f92672>.</span><span style=color:#a6e22e>dbName</span> <span style=color:#f92672>=</span> dbName<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>this</span><span style=color:#f92672>.</span><span style=color:#a6e22e>tableName</span> <span style=color:#f92672>=</span> tableName<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#75715e>// The doRefresh method should provide implementation on how to get the metadata location
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>doRefresh</span><span style=color:#f92672>()</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// Example custom service which returns the metadata location given a dbName and tableName
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    String metadataLocation <span style=color:#f92672>=</span> CustomService<span style=color:#f92672>.</span><span style=color:#a6e22e>getMetadataForTable</span><span style=color:#f92672>(</span>conf<span style=color:#f92672>,</span> dbName<span style=color:#f92672>,</span> tableName<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// When updating from a metadata file location, call the helper method
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    refreshFromMetadataLocation<span style=color:#f92672>(</span>metadataLocation<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#75715e>// The doCommit method should provide implementation on how to update with metadata location atomically
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>doCommit</span><span style=color:#f92672>(</span>TableMetadata base<span style=color:#f92672>,</span> TableMetadata metadata<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    String oldMetadataLocation <span style=color:#f92672>=</span> base<span style=color:#f92672>.</span><span style=color:#a6e22e>location</span><span style=color:#f92672>();</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// Write new metadata using helper method
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    String newMetadataLocation <span style=color:#f92672>=</span> writeNewMetadata<span style=color:#f92672>(</span>metadata<span style=color:#f92672>,</span> currentVersion<span style=color:#f92672>()</span> <span style=color:#f92672>+</span> 1<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// Example custom service which updates the metadata location for the given db and table atomically
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    CustomService<span style=color:#f92672>.</span><span style=color:#a6e22e>updateMetadataLocation</span><span style=color:#f92672>(</span>dbName<span style=color:#f92672>,</span> tableName<span style=color:#f92672>,</span> oldMetadataLocation<span style=color:#f92672>,</span> newMetadataLocation<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#75715e>// The io method provides a FileIO which is used to read and write the table metadata files
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>public</span> FileIO <span style=color:#a6e22e>io</span><span style=color:#f92672>()</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>if</span> <span style=color:#f92672>(</span>fileIO <span style=color:#f92672>==</span> <span style=color:#66d9ef>null</span><span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>      fileIO <span style=color:#f92672>=</span> <span style=color:#66d9ef>new</span> HadoopFileIO<span style=color:#f92672>(</span>conf<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>return</span> fileIO<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span><span style=color:#f92672>}</span>
+</span></span></code></pre></div><p>A <code>TableOperations</code> instance is usually obtained by calling <code>Catalog.newTableOps(TableIdentifier)</code>.
+See the next section about implementing and loading a custom catalog.</p><h3 id=custom-catalog-implementation-1>
 Custom catalog implementation
 <a class=anchor href=#custom-catalog-implementation-1>#</a>
-</h3>
-<p>Extend <code>BaseMetastoreCatalog</code> to provide default warehouse locations and instantiate <code>CustomTableOperations</code></p>
-<p>Example:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=color:#66d9ef>public</span> <span style=color:#66d9ef>class</span> <span style=color:#a6e22e>CustomCatalog</span> <span style=color:#66d9ef>extends</span> BaseMetastoreCatalog <span style=color:#f92672>{</span>
-
-  <span style=color:#66d9ef>private</span> Configuration configuration<span style=color:#f92672>;</span>
-
-  <span style=color:#75715e>// must have a no-arg constructor to be dynamically loaded
-</span><span style=color:#75715e></span>  <span style=color:#75715e>// initialize(String name, Map&lt;String, String&gt; properties) will be called to complete initialization
-</span><span style=color:#75715e></span>  <span style=color:#66d9ef>public</span> <span style=color:#a6e22e>CustomCatalog</span><span style=color:#f92672>()</span> <span style=color:#f92672>{</span>
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#66d9ef>public</span> <span style=color:#a6e22e>CustomCatalog</span><span style=color:#f92672>(</span>Configuration configuration<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    <span style=color:#66d9ef>this</span><span style=color:#f92672>.</span><span style=color:#a6e22e>configuration</span> <span style=color:#f92672>=</span> configuration<span style=color:#f92672>;</span>
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>protected</span> TableOperations <span style=color:#a6e22e>newTableOps</span><span style=color:#f92672>(</span>TableIdentifier tableIdentifier<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    String dbName <span style=color:#f92672>=</span> tableIdentifier<span style=color:#f92672>.</span><span style=color:#a6e22e>namespace</span><span style=color:#f92672>().</span><span style=color:#a6e22e>level</span><span style=color:#f92672>(</span>0<span style=color:#f92672>);</span>
-    String tableName <span style=color:#f92672>=</span> tableIdentifier<span style=color:#f92672>.</span><span style=color:#a6e22e>name</span><span style=color:#f92672>();</span>
-    <span style=color:#75715e>// instantiate the CustomTableOperations
-</span><span style=color:#75715e></span>    <span style=color:#66d9ef>return</span> <span style=color:#66d9ef>new</span> CustomTableOperations<span style=color:#f92672>(</span>configuration<span style=color:#f92672>,</span> dbName<span style=color:#f92672>,</span> tableName<span style=color:#f92672>);</span>
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>protected</span> String <span style=color:#a6e22e>defaultWarehouseLocation</span><span style=color:#f92672>(</span>TableIdentifier tableIdentifier<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-
-    <span style=color:#75715e>// Can choose to use any other configuration name
-</span><span style=color:#75715e></span>    String tableLocation <span style=color:#f92672>=</span> configuration<span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;custom.iceberg.warehouse.location&#34;</span><span style=color:#f92672>);</span>
-
-    <span style=color:#75715e>// Can be an s3 or hdfs path
-</span><span style=color:#75715e></span>    <span style=color:#66d9ef>if</span> <span style=color:#f92672>(</span>tableLocation <span style=color:#f92672>==</span> <span style=color:#66d9ef>null</span><span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-      <span style=color:#66d9ef>throw</span> <span style=color:#66d9ef>new</span> RuntimeException<span style=color:#f92672>(</span><span style=color:#e6db74>&#34;custom.iceberg.warehouse.location configuration not set!&#34;</span><span style=color:#f92672>);</span>
-    <span style=color:#f92672>}</span>
-
-    <span style=color:#66d9ef>return</span> String<span style=color:#f92672>.</span><span style=color:#a6e22e>format</span><span style=color:#f92672>(</span>
-            <span style=color:#e6db74>&#34;%s/%s.db/%s&#34;</span><span style=color:#f92672>,</span> tableLocation<span style=color:#f92672>,</span>
-            tableIdentifier<span style=color:#f92672>.</span><span style=color:#a6e22e>namespace</span><span style=color:#f92672>().</span><span style=color:#a6e22e>levels</span><span style=color:#f92672>()[</span>0<span style=color:#f92672>],</span>
-            tableIdentifier<span style=color:#f92672>.</span><span style=color:#a6e22e>name</span><span style=color:#f92672>());</span>
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>boolean</span> <span style=color:#a6e22e>dropTable</span><span style=color:#f92672>(</span>TableIdentifier identifier<span style=color:#f92672>,</span> <span style=color:#66d9ef>boolean</span> purge<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    <span style=color:#75715e>// Example service to delete table
-</span><span style=color:#75715e></span>    CustomService<span style=color:#f92672>.</span><span style=color:#a6e22e>deleteTable</span><span style=color:#f92672>(</span>identifier<span style=color:#f92672>.</span><span style=color:#a6e22e>namepsace</span><span style=color:#f92672>().</span><span style=color:#a6e22e>level</span><span style=color:#f92672>(</span>0<span style=color:#f92672>),</span> identifier<span style=color:#f92672>.</span><span style=color:#a6e22e>name</span><span style [...]
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>renameTable</span><span style=color:#f92672>(</span>TableIdentifier from<span style=color:#f92672>,</span> TableIdentifier to<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    Preconditions<span style=color:#f92672>.</span><span style=color:#a6e22e>checkArgument</span><span style=color:#f92672>(</span>from<span style=color:#f92672>.</span><span style=color:#a6e22e>namespace</span><span style=color:#f92672>().</span><span style=color:#a6e22e>level</span><span style=color:#f92672>(</span>0<span style=color:#f92672>).</span><span style=color:#a6e22e>equals</span><span style=color:#f92672>(</span>to<span style=color:#f92672>.</span><span style=color:#a6e22e>na [...]
-            <span style=color:#e6db74>&#34;Cannot move table between databases&#34;</span><span style=color:#f92672>);</span>
-    <span style=color:#75715e>// Example service to rename table
-</span><span style=color:#75715e></span>    CustomService<span style=color:#f92672>.</span><span style=color:#a6e22e>renameTable</span><span style=color:#f92672>(</span>from<span style=color:#f92672>.</span><span style=color:#a6e22e>namepsace</span><span style=color:#f92672>().</span><span style=color:#a6e22e>level</span><span style=color:#f92672>(</span>0<span style=color:#f92672>),</span> from<span style=color:#f92672>.</span><span style=color:#a6e22e>name</span><span style=color:#f926 [...]
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#75715e>// implement this method to read catalog name and properties during initialization
-</span><span style=color:#75715e></span>  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>initialize</span><span style=color:#f92672>(</span>String name<span style=color:#f92672>,</span> Map<span style=color:#f92672>&lt;</span>String<span style=color:#f92672>,</span> String<span style=color:#f92672>&gt;</span> properties<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-  <span style=color:#f92672>}</span>
-<span style=color:#f92672>}</span>
-</code></pre></div><p>Catalog implementations can be dynamically loaded in most compute engines.
+</h3><p>Extend <code>BaseMetastoreCatalog</code> to provide default warehouse locations and instantiate <code>CustomTableOperations</code></p><p>Example:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#66d9ef>public</span> <span style=color:#66d9ef>class</span> <span style=color:#a6e22e>CustomCatalog</span> <span style=co [...]
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>private</span> Configuration configuration<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#75715e>// must have a no-arg constructor to be dynamically loaded
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>  <span style=color:#75715e>// initialize(String name, Map&lt;String, String&gt; properties) will be called to complete initialization
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>  <span style=color:#66d9ef>public</span> <span style=color:#a6e22e>CustomCatalog</span><span style=color:#f92672>()</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>public</span> <span style=color:#a6e22e>CustomCatalog</span><span style=color:#f92672>(</span>Configuration configuration<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>this</span><span style=color:#f92672>.</span><span style=color:#a6e22e>configuration</span> <span style=color:#f92672>=</span> configuration<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>protected</span> TableOperations <span style=color:#a6e22e>newTableOps</span><span style=color:#f92672>(</span>TableIdentifier tableIdentifier<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    String dbName <span style=color:#f92672>=</span> tableIdentifier<span style=color:#f92672>.</span><span style=color:#a6e22e>namespace</span><span style=color:#f92672>().</span><span style=color:#a6e22e>level</span><span style=color:#f92672>(</span>0<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>    String tableName <span style=color:#f92672>=</span> tableIdentifier<span style=color:#f92672>.</span><span style=color:#a6e22e>name</span><span style=color:#f92672>();</span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// instantiate the CustomTableOperations
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    <span style=color:#66d9ef>return</span> <span style=color:#66d9ef>new</span> CustomTableOperations<span style=color:#f92672>(</span>configuration<span style=color:#f92672>,</span> dbName<span style=color:#f92672>,</span> tableName<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>protected</span> String <span style=color:#a6e22e>defaultWarehouseLocation</span><span style=color:#f92672>(</span>TableIdentifier tableIdentifier<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// Can choose to use any other configuration name
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    String tableLocation <span style=color:#f92672>=</span> configuration<span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;custom.iceberg.warehouse.location&#34;</span><span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// Can be an s3 or hdfs path
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    <span style=color:#66d9ef>if</span> <span style=color:#f92672>(</span>tableLocation <span style=color:#f92672>==</span> <span style=color:#66d9ef>null</span><span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>      <span style=color:#66d9ef>throw</span> <span style=color:#66d9ef>new</span> RuntimeException<span style=color:#f92672>(</span><span style=color:#e6db74>&#34;custom.iceberg.warehouse.location configuration not set!&#34;</span><span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>return</span> String<span style=color:#f92672>.</span><span style=color:#a6e22e>format</span><span style=color:#f92672>(</span>
+</span></span><span style=display:flex><span>            <span style=color:#e6db74>&#34;%s/%s.db/%s&#34;</span><span style=color:#f92672>,</span> tableLocation<span style=color:#f92672>,</span>
+</span></span><span style=display:flex><span>            tableIdentifier<span style=color:#f92672>.</span><span style=color:#a6e22e>namespace</span><span style=color:#f92672>().</span><span style=color:#a6e22e>levels</span><span style=color:#f92672>()[</span>0<span style=color:#f92672>],</span>
+</span></span><span style=display:flex><span>            tableIdentifier<span style=color:#f92672>.</span><span style=color:#a6e22e>name</span><span style=color:#f92672>());</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>boolean</span> <span style=color:#a6e22e>dropTable</span><span style=color:#f92672>(</span>TableIdentifier identifier<span style=color:#f92672>,</span> <span style=color:#66d9ef>boolean</span> purge<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// Example service to delete table
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    CustomService<span style=color:#f92672>.</span><span style=color:#a6e22e>deleteTable</span><span style=color:#f92672>(</span>identifier<span style=color:#f92672>.</span><span style=color:#a6e22e>namepsace</span><span style=color:#f92672>().</span><span style=color:#a6e22e>level</span><span style=color:#f92672>(</span>0<span style=color:#f92672>),</span> identifier<span style=color:#f92672>.</span><sp [...]
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>renameTable</span><span style=color:#f92672>(</span>TableIdentifier from<span style=color:#f92672>,</span> TableIdentifier to<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    Preconditions<span style=color:#f92672>.</span><span style=color:#a6e22e>checkArgument</span><span style=color:#f92672>(</span>from<span style=color:#f92672>.</span><span style=color:#a6e22e>namespace</span><span style=color:#f92672>().</span><span style=color:#a6e22e>level</span><span style=color:#f92672>(</span>0<span style=color:#f92672>).</span><span style=color:#a6e22e>equals</span><span style=color:#f92672>(</span>to<span style=color [...]
+</span></span><span style=display:flex><span>            <span style=color:#e6db74>&#34;Cannot move table between databases&#34;</span><span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// Example service to rename table
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    CustomService<span style=color:#f92672>.</span><span style=color:#a6e22e>renameTable</span><span style=color:#f92672>(</span>from<span style=color:#f92672>.</span><span style=color:#a6e22e>namepsace</span><span style=color:#f92672>().</span><span style=color:#a6e22e>level</span><span style=color:#f92672>(</span>0<span style=color:#f92672>),</span> from<span style=color:#f92672>.</span><span style=col [...]
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#75715e>// implement this method to read catalog name and properties during initialization
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>initialize</span><span style=color:#f92672>(</span>String name<span style=color:#f92672>,</span> Map<span style=color:#f92672>&lt;</span>String<span style=color:#f92672>,</span> String<span style=color:#f92672>&gt;</span> properties<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span><span style=color:#f92672>}</span>
+</span></span></code></pre></div><p>Catalog implementations can be dynamically loaded in most compute engines.
 For Spark and Flink, you can specify the <code>catalog-impl</code> catalog property to load it.
 Read the <a href=../configuration/#catalog-properties>Configuration</a> section for more details.
 For MapReduce, implement <code>org.apache.iceberg.mr.CatalogLoader</code> and set Hadoop property <code>iceberg.mr.catalog.loader.class</code> to load it.
-If your catalog must read Hadoop configuration to access certain environment properties, make your catalog implement <code>org.apache.hadoop.conf.Configurable</code>.</p>
-<h3 id=custom-file-io-implementation>
+If your catalog must read Hadoop configuration to access certain environment properties, make your catalog implement <code>org.apache.hadoop.conf.Configurable</code>.</p><h3 id=custom-file-io-implementation>
 Custom file IO implementation
 <a class=anchor href=#custom-file-io-implementation>#</a>
-</h3>
-<p>Extend <code>FileIO</code> and provide implementation to read and write data files</p>
-<p>Example:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=color:#66d9ef>public</span> <span style=color:#66d9ef>class</span> <span style=color:#a6e22e>CustomFileIO</span> <span style=color:#66d9ef>implements</span> FileIO <span style=color:#f92672>{</span>
-
-  <span style=color:#75715e>// must have a no-arg constructor to be dynamically loaded
-</span><span style=color:#75715e></span>  <span style=color:#75715e>// initialize(Map&lt;String, String&gt; properties) will be called to complete initialization
-</span><span style=color:#75715e></span>  <span style=color:#66d9ef>public</span> <span style=color:#a6e22e>CustomFileIO</span><span style=color:#f92672>()</span> <span style=color:#f92672>{</span>
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>public</span> InputFile <span style=color:#a6e22e>newInputFile</span><span style=color:#f92672>(</span>String s<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    <span style=color:#75715e>// you also need to implement the InputFile interface for a custom input file
-</span><span style=color:#75715e></span>    <span style=color:#66d9ef>return</span> <span style=color:#66d9ef>new</span> CustomInputFile<span style=color:#f92672>(</span>s<span style=color:#f92672>);</span>
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>public</span> OutputFile <span style=color:#a6e22e>newOutputFile</span><span style=color:#f92672>(</span>String s<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    <span style=color:#75715e>// you also need to implement the OutputFile interface for a custom output file
-</span><span style=color:#75715e></span>    <span style=color:#66d9ef>return</span> <span style=color:#66d9ef>new</span> CustomOutputFile<span style=color:#f92672>(</span>s<span style=color:#f92672>);</span>
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>deleteFile</span><span style=color:#f92672>(</span>String path<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    Path toDelete <span style=color:#f92672>=</span> <span style=color:#66d9ef>new</span> Path<span style=color:#f92672>(</span>path<span style=color:#f92672>);</span>
-    FileSystem fs <span style=color:#f92672>=</span> Util<span style=color:#f92672>.</span><span style=color:#a6e22e>getFs</span><span style=color:#f92672>(</span>toDelete<span style=color:#f92672>);</span>
-    <span style=color:#66d9ef>try</span> <span style=color:#f92672>{</span>
-        fs<span style=color:#f92672>.</span><span style=color:#a6e22e>delete</span><span style=color:#f92672>(</span>toDelete<span style=color:#f92672>,</span> <span style=color:#66d9ef>false</span> <span style=color:#75715e>/* not recursive */</span><span style=color:#f92672>);</span>
-    <span style=color:#f92672>}</span> <span style=color:#66d9ef>catch</span> <span style=color:#f92672>(</span>IOException e<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-        <span style=color:#66d9ef>throw</span> <span style=color:#66d9ef>new</span> RuntimeIOException<span style=color:#f92672>(</span>e<span style=color:#f92672>,</span> <span style=color:#e6db74>&#34;Failed to delete file: %s&#34;</span><span style=color:#f92672>,</span> path<span style=color:#f92672>);</span>
-    <span style=color:#f92672>}</span>
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#75715e>// implement this method to read catalog properties during initialization
-</span><span style=color:#75715e></span>  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>initialize</span><span style=color:#f92672>(</span>Map<span style=color:#f92672>&lt;</span>String<span style=color:#f92672>,</span> String<span style=color:#f92672>&gt;</span> properties<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-  <span style=color:#f92672>}</span>
-<span style=color:#f92672>}</span>
-</code></pre></div><p>If you are already implementing your own catalog, you can implement <code>TableOperations.io()</code> to use your custom <code>FileIO</code>.
+</h3><p>Extend <code>FileIO</code> and provide implementation to read and write data files</p><p>Example:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#66d9ef>public</span> <span style=color:#66d9ef>class</span> <span style=color:#a6e22e>CustomFileIO</span> <span style=color:#66d9ef>implements</span> FileIO <span style= [...]
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#75715e>// must have a no-arg constructor to be dynamically loaded
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>  <span style=color:#75715e>// initialize(Map&lt;String, String&gt; properties) will be called to complete initialization
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>  <span style=color:#66d9ef>public</span> <span style=color:#a6e22e>CustomFileIO</span><span style=color:#f92672>()</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>public</span> InputFile <span style=color:#a6e22e>newInputFile</span><span style=color:#f92672>(</span>String s<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// you also need to implement the InputFile interface for a custom input file
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    <span style=color:#66d9ef>return</span> <span style=color:#66d9ef>new</span> CustomInputFile<span style=color:#f92672>(</span>s<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>public</span> OutputFile <span style=color:#a6e22e>newOutputFile</span><span style=color:#f92672>(</span>String s<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// you also need to implement the OutputFile interface for a custom output file
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    <span style=color:#66d9ef>return</span> <span style=color:#66d9ef>new</span> CustomOutputFile<span style=color:#f92672>(</span>s<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>deleteFile</span><span style=color:#f92672>(</span>String path<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    Path toDelete <span style=color:#f92672>=</span> <span style=color:#66d9ef>new</span> Path<span style=color:#f92672>(</span>path<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>    FileSystem fs <span style=color:#f92672>=</span> Util<span style=color:#f92672>.</span><span style=color:#a6e22e>getFs</span><span style=color:#f92672>(</span>toDelete<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>try</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>        fs<span style=color:#f92672>.</span><span style=color:#a6e22e>delete</span><span style=color:#f92672>(</span>toDelete<span style=color:#f92672>,</span> <span style=color:#66d9ef>false</span> <span style=color:#75715e>/* not recursive */</span><span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>}</span> <span style=color:#66d9ef>catch</span> <span style=color:#f92672>(</span>IOException e<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>        <span style=color:#66d9ef>throw</span> <span style=color:#66d9ef>new</span> RuntimeIOException<span style=color:#f92672>(</span>e<span style=color:#f92672>,</span> <span style=color:#e6db74>&#34;Failed to delete file: %s&#34;</span><span style=color:#f92672>,</span> path<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>    <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#75715e>// implement this method to read catalog properties during initialization
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>  <span style=color:#66d9ef>public</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>initialize</span><span style=color:#f92672>(</span>Map<span style=color:#f92672>&lt;</span>String<span style=color:#f92672>,</span> String<span style=color:#f92672>&gt;</span> properties<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span><span style=color:#f92672>}</span>
+</span></span></code></pre></div><p>If you are already implementing your own catalog, you can implement <code>TableOperations.io()</code> to use your custom <code>FileIO</code>.
 In addition, custom <code>FileIO</code> implementations can also be dynamically loaded in <code>HadoopCatalog</code> and <code>HiveCatalog</code> by specifying the <code>io-impl</code> catalog property.
 Read the <a href=../configuration/#catalog-properties>Configuration</a> section for more details.
-If your <code>FileIO</code> must read Hadoop configuration to access certain environment properties, make your <code>FileIO</code> implement <code>org.apache.hadoop.conf.Configurable</code>.</p>
-<h3 id=custom-location-provider-implementation>
+If your <code>FileIO</code> must read Hadoop configuration to access certain environment properties, make your <code>FileIO</code> implement <code>org.apache.hadoop.conf.Configurable</code>.</p><h3 id=custom-location-provider-implementation>
 Custom location provider implementation
 <a class=anchor href=#custom-location-provider-implementation>#</a>
-</h3>
-<p>Extend <code>LocationProvider</code> and provide implementation to determine the file path to write data</p>
-<p>Example:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=color:#66d9ef>public</span> <span style=color:#66d9ef>class</span> <span style=color:#a6e22e>CustomLocationProvider</span> <span style=color:#66d9ef>implements</span> LocationProvider <span style=color:#f92672>{</span>
-
-  <span style=color:#66d9ef>private</span> String tableLocation<span style=color:#f92672>;</span>
-
-  <span style=color:#75715e>// must have a 2-arg constructor like this, or a no-arg constructor
-</span><span style=color:#75715e></span>  <span style=color:#66d9ef>public</span> <span style=color:#a6e22e>CustomLocationProvider</span><span style=color:#f92672>(</span>String tableLocation<span style=color:#f92672>,</span> Map<span style=color:#f92672>&lt;</span>String<span style=color:#f92672>,</span> String<span style=color:#f92672>&gt;</span> properties<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    <span style=color:#66d9ef>this</span><span style=color:#f92672>.</span><span style=color:#a6e22e>tableLocation</span> <span style=color:#f92672>=</span> tableLocation<span style=color:#f92672>;</span>
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>public</span> String <span style=color:#a6e22e>newDataLocation</span><span style=color:#f92672>(</span>String filename<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    <span style=color:#75715e>// can use any custom method to generate a file path given a file name
-</span><span style=color:#75715e></span>    <span style=color:#66d9ef>return</span> String<span style=color:#f92672>.</span><span style=color:#a6e22e>format</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;%s/%s/%s&#34;</span><span style=color:#f92672>,</span> tableLocation<span style=color:#f92672>,</span> UUID<span style=color:#f92672>.</span><span style=color:#a6e22e>randomUUID</span><span style=color:#f92672>().</span><span style=color:#a6e22e>toString</span><sp [...]
-  <span style=color:#f92672>}</span>
-
-  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>public</span> String <span style=color:#a6e22e>newDataLocation</span><span style=color:#f92672>(</span>PartitionSpec spec<span style=color:#f92672>,</span> StructLike partitionData<span style=color:#f92672>,</span> String filename<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    <span style=color:#75715e>// can use any custom method to generate a file path given a partition info and file name
-</span><span style=color:#75715e></span>    <span style=color:#66d9ef>return</span> newDataLocation<span style=color:#f92672>(</span>filename<span style=color:#f92672>);</span>
-  <span style=color:#f92672>}</span>
-<span style=color:#f92672>}</span>
-</code></pre></div><p>If you are already implementing your own catalog, you can override <code>TableOperations.locationProvider()</code> to use your custom default <code>LocationProvider</code>.
-To use a different custom location provider for a specific table, specify the implementation when creating the table using table property <code>write.location-provider.impl</code></p>
-<p>Example:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>TABLE</span> hive.<span style=color:#66d9ef>default</span>.my_table (
-  id bigint,
-  <span style=color:#66d9ef>data</span> string,
-  category string)
-<span style=color:#66d9ef>USING</span> iceberg
-<span style=color:#66d9ef>OPTIONS</span> (
-  <span style=color:#e6db74>&#39;write.location-provider.impl&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;com.my.CustomLocationProvider&#39;</span>
-)
-PARTITIONED <span style=color:#66d9ef>BY</span> (category);
-</code></pre></div><h3 id=custom-icebergsource>
+</h3><p>Extend <code>LocationProvider</code> and provide implementation to determine the file path to write data</p><p>Example:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#66d9ef>public</span> <span style=color:#66d9ef>class</span> <span style=color:#a6e22e>CustomLocationProvider</span> <span style=color:#66d9ef>imple [...]
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>private</span> String tableLocation<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#75715e>// must have a 2-arg constructor like this, or a no-arg constructor
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>  <span style=color:#66d9ef>public</span> <span style=color:#a6e22e>CustomLocationProvider</span><span style=color:#f92672>(</span>String tableLocation<span style=color:#f92672>,</span> Map<span style=color:#f92672>&lt;</span>String<span style=color:#f92672>,</span> String<span style=color:#f92672>&gt;</span> properties<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>this</span><span style=color:#f92672>.</span><span style=color:#a6e22e>tableLocation</span> <span style=color:#f92672>=</span> tableLocation<span style=color:#f92672>;</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>public</span> String <span style=color:#a6e22e>newDataLocation</span><span style=color:#f92672>(</span>String filename<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// can use any custom method to generate a file path given a file name
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    <span style=color:#66d9ef>return</span> String<span style=color:#f92672>.</span><span style=color:#a6e22e>format</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;%s/%s/%s&#34;</span><span style=color:#f92672>,</span> tableLocation<span style=color:#f92672>,</span> UUID<span style=color:#f92672>.</span><span style=color:#a6e22e>randomUUID</span><span style=color:#f92672>().</span [...]
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>public</span> String <span style=color:#a6e22e>newDataLocation</span><span style=color:#f92672>(</span>PartitionSpec spec<span style=color:#f92672>,</span> StructLike partitionData<span style=color:#f92672>,</span> String filename<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// can use any custom method to generate a file path given a partition info and file name
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    <span style=color:#66d9ef>return</span> newDataLocation<span style=color:#f92672>(</span>filename<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span><span style=color:#f92672>}</span>
+</span></span></code></pre></div><p>If you are already implementing your own catalog, you can override <code>TableOperations.locationProvider()</code> to use your custom default <code>LocationProvider</code>.
+To use a different custom location provider for a specific table, specify the implementation when creating the table using table property <code>write.location-provider.impl</code></p><p>Example:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=display:flex><span><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>TABLE</span> hive.<span style=color [...]
+</span></span><span style=display:flex><span>  id bigint,
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>data</span> string,
+</span></span><span style=display:flex><span>  category string)
+</span></span><span style=display:flex><span><span style=color:#66d9ef>USING</span> iceberg
+</span></span><span style=display:flex><span><span style=color:#66d9ef>OPTIONS</span> (
+</span></span><span style=display:flex><span>  <span style=color:#e6db74>&#39;write.location-provider.impl&#39;</span><span style=color:#f92672>=</span><span style=color:#e6db74>&#39;com.my.CustomLocationProvider&#39;</span>
+</span></span><span style=display:flex><span>)
+</span></span><span style=display:flex><span>PARTITIONED <span style=color:#66d9ef>BY</span> (category);
+</span></span></code></pre></div><h3 id=custom-icebergsource>
 Custom IcebergSource
 <a class=anchor href=#custom-icebergsource>#</a>
-</h3>
-<p>Extend <code>IcebergSource</code> and provide implementation to read from <code>CustomCatalog</code></p>
-<p>Example:</p>
-<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=color:#66d9ef>public</span> <span style=color:#66d9ef>class</span> <span style=color:#a6e22e>CustomIcebergSource</span> <span style=color:#66d9ef>extends</span> IcebergSource <span style=color:#f92672>{</span>
-
-  <span style=color:#a6e22e>@Override</span>
-  <span style=color:#66d9ef>protected</span> Table <span style=color:#a6e22e>findTable</span><span style=color:#f92672>(</span>DataSourceOptions options<span style=color:#f92672>,</span> Configuration conf<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
-    Optional<span style=color:#f92672>&lt;</span>String<span style=color:#f92672>&gt;</span> path <span style=color:#f92672>=</span> options<span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;path&#34;</span><span style=color:#f92672>);</span>
-    Preconditions<span style=color:#f92672>.</span><span style=color:#a6e22e>checkArgument</span><span style=color:#f92672>(</span>path<span style=color:#f92672>.</span><span style=color:#a6e22e>isPresent</span><span style=color:#f92672>(),</span> <span style=color:#e6db74>&#34;Cannot open table: path is not set&#34;</span><span style=color:#f92672>);</span>
-
-    <span style=color:#75715e>// Read table from CustomCatalog
-</span><span style=color:#75715e></span>    CustomCatalog catalog <span style=color:#f92672>=</span> <span style=color:#66d9ef>new</span> CustomCatalog<span style=color:#f92672>(</span>conf<span style=color:#f92672>);</span>
-    TableIdentifier tableIdentifier <span style=color:#f92672>=</span> TableIdentifier<span style=color:#f92672>.</span><span style=color:#a6e22e>parse</span><span style=color:#f92672>(</span>path<span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>());</span>
-    <span style=color:#66d9ef>return</span> catalog<span style=color:#f92672>.</span><span style=color:#a6e22e>loadTable</span><span style=color:#f92672>(</span>tableIdentifier<span style=color:#f92672>);</span>
-  <span style=color:#f92672>}</span>
-<span style=color:#f92672>}</span>
-</code></pre></div><p>Register the <code>CustomIcebergSource</code> by updating <code>META-INF/services/org.apache.spark.sql.sources.DataSourceRegister</code> with its fully qualified name</p>
-</article>
-<footer class=book-footer>
+</h3><p>Extend <code>IcebergSource</code> and provide implementation to read from <code>CustomCatalog</code></p><p>Example:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#66d9ef>public</span> <span style=color:#66d9ef>class</span> <span style=color:#a6e22e>CustomIcebergSource</span> <span style=color:#66d9ef>extends</spa [...]
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span style=color:#a6e22e>@Override</span>
+</span></span><span style=display:flex><span>  <span style=color:#66d9ef>protected</span> Table <span style=color:#a6e22e>findTable</span><span style=color:#f92672>(</span>DataSourceOptions options<span style=color:#f92672>,</span> Configuration conf<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
+</span></span><span style=display:flex><span>    Optional<span style=color:#f92672>&lt;</span>String<span style=color:#f92672>&gt;</span> path <span style=color:#f92672>=</span> options<span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>(</span><span style=color:#e6db74>&#34;path&#34;</span><span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>    Preconditions<span style=color:#f92672>.</span><span style=color:#a6e22e>checkArgument</span><span style=color:#f92672>(</span>path<span style=color:#f92672>.</span><span style=color:#a6e22e>isPresent</span><span style=color:#f92672>(),</span> <span style=color:#e6db74>&#34;Cannot open table: path is not set&#34;</span><span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>    <span style=color:#75715e>// Read table from CustomCatalog
+</span></span></span><span style=display:flex><span><span style=color:#75715e></span>    CustomCatalog catalog <span style=color:#f92672>=</span> <span style=color:#66d9ef>new</span> CustomCatalog<span style=color:#f92672>(</span>conf<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>    TableIdentifier tableIdentifier <span style=color:#f92672>=</span> TableIdentifier<span style=color:#f92672>.</span><span style=color:#a6e22e>parse</span><span style=color:#f92672>(</span>path<span style=color:#f92672>.</span><span style=color:#a6e22e>get</span><span style=color:#f92672>());</span>
+</span></span><span style=display:flex><span>    <span style=color:#66d9ef>return</span> catalog<span style=color:#f92672>.</span><span style=color:#a6e22e>loadTable</span><span style=color:#f92672>(</span>tableIdentifier<span style=color:#f92672>);</span>
+</span></span><span style=display:flex><span>  <span style=color:#f92672>}</span>
+</span></span><span style=display:flex><span><span style=color:#f92672>}</span>
+</span></span></code></pre></div><p>Register the <code>CustomIcebergSource</code> by updating <code>META-INF/services/org.apache.spark.sql.sources.DataSourceRegister</code> with its fully qualified name</p></article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
 <nav id=TableOfContents>
 <ul>
 <li>
 <ul>
-<li><a href=#custom-table-operations-implementation>Custom table operations implementation</a></li>
-<li><a href=#custom-catalog-implementation-1>Custom catalog implementation</a></li>
-<li><a href=#custom-file-io-implementation>Custom file IO implementation</a></li>
-<li><a href=#custom-location-provider-implementation>Custom location provider implementation</a></li>
-<li><a href=#custom-icebergsource>Custom IcebergSource</a></li>
-</ul>
-</li>
-</ul>
-</nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<li><a href=#custom-table-operations-implementation>Custom table operations implementation</a></li><li><a href=#custom-catalog-implementation-1>Custom catalog implementation</a></li><li><a href=#custom-file-io-implementation>Custom file IO implementation</a></li><li><a href=#custom-location-provider-implementation>Custom location provider implementation</a></li><li><a href=#custom-icebergsource>Custom IcebergSource</a></li></ul></li></ul></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/api/index.html b/docs/latest/docs/api/index.html
index 0749c37..9c93a89 100644
--- a/docs/latest/docs/api/index.html
+++ b/docs/latest/docs/api/index.html
@@ -8,15 +8,13 @@
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/api/">
-<title>API | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>API | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
 <link rel=alternate type=application/rss+xml href=https://iceberg.apache.org/docs/latest/docs/api/index.xml title="Apache Iceberg">
-</head>
-<body dir=ltr>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -29,19 +27,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -50,34 +44,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -85,84 +70,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -173,18 +138,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle checked>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button class=active>
@@ -195,35 +155,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -235,25 +186,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -265,15 +210,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -285,30 +226,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -320,30 +254,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -355,39 +282,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -398,24 +314,11 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
-<nav id=TableOfContents></nav>
-</aside>
-</header>
-<article class=markdown></article>
-<footer class=book-footer>
+</div><aside class="hidden clearfix">
+<nav id=TableOfContents></nav></aside></header><article class=markdown></article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
-<nav id=TableOfContents></nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<nav id=TableOfContents></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/api/javadoc/index.html b/docs/latest/docs/api/javadoc/index.html
index b20ba33..1b5fe5a 100644
--- a/docs/latest/docs/api/javadoc/index.html
+++ b/docs/latest/docs/api/javadoc/index.html
@@ -8,15 +8,13 @@
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/api/javadoc/">
-<title>Javadocs | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Javadocs | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
 <link rel=alternate type=application/rss+xml href=https://iceberg.apache.org/docs/latest/docs/api/javadoc/index.xml title="Apache Iceberg">
-</head>
-<body dir=ltr>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -29,19 +27,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -50,34 +44,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -85,84 +70,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -173,18 +138,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle checked>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -195,35 +155,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -235,25 +186,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -265,15 +210,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -285,30 +226,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -320,30 +254,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -355,39 +282,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -398,24 +314,11 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
-<nav id=TableOfContents></nav>
-</aside>
-</header>
-<article class=markdown></article>
-<footer class=book-footer>
+</div><aside class="hidden clearfix">
+<nav id=TableOfContents></nav></aside></header><article class=markdown></article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
-<nav id=TableOfContents></nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<nav id=TableOfContents></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/asf/donate/index.html b/docs/latest/docs/asf/donate/index.html
index ece76e4..ac59f39 100644
--- a/docs/latest/docs/asf/donate/index.html
+++ b/docs/latest/docs/asf/donate/index.html
@@ -2,21 +2,19 @@
 <head>
 <meta charset=utf-8>
 <meta name=viewport content="width=device-width,initial-scale=1">
-<meta name=description content="  ">
+<meta name=description content>
 <meta name=theme-color content="#FFFFFF">
 <meta name=color-scheme content="light dark"><meta property="og:title" content="Donate">
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/asf/donate/">
-<title>Donate | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Donate | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
 <link rel=alternate type=application/rss+xml href=https://iceberg.apache.org/docs/latest/docs/asf/donate/index.xml title="Apache Iceberg">
-</head>
-<body dir=ltr>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -29,19 +27,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -50,34 +44,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -85,84 +70,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -173,18 +138,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -195,35 +155,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -235,25 +186,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -265,15 +210,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -285,30 +226,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -320,30 +254,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle checked>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -355,39 +282,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -398,29 +314,13 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
-<nav id=TableOfContents></nav>
-</aside>
-</header>
-<article class=markdown>
-<blockquote>
-</blockquote>
-</article>
-<footer class=book-footer>
+</div><aside class="hidden clearfix">
+<nav id=TableOfContents></nav></aside></header><article class=markdown>
+</article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
-<nav id=TableOfContents></nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<nav id=TableOfContents></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/asf/events/index.html b/docs/latest/docs/asf/events/index.html
index 7fbdfab..e7de88b 100644
--- a/docs/latest/docs/asf/events/index.html
+++ b/docs/latest/docs/asf/events/index.html
@@ -2,21 +2,19 @@
 <head>
 <meta charset=utf-8>
 <meta name=viewport content="width=device-width,initial-scale=1">
-<meta name=description content="  ">
+<meta name=description content>
 <meta name=theme-color content="#FFFFFF">
 <meta name=color-scheme content="light dark"><meta property="og:title" content="Events">
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/asf/events/">
-<title>Events | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Events | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
 <link rel=alternate type=application/rss+xml href=https://iceberg.apache.org/docs/latest/docs/asf/events/index.xml title="Apache Iceberg">
-</head>
-<body dir=ltr>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -29,19 +27,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -50,34 +44,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -85,84 +70,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -173,18 +138,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -195,35 +155,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -235,25 +186,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -265,15 +210,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -285,30 +226,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -320,30 +254,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle checked>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -355,39 +282,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -398,29 +314,13 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
-<nav id=TableOfContents></nav>
-</aside>
-</header>
-<article class=markdown>
-<blockquote>
-</blockquote>
-</article>
-<footer class=book-footer>
+</div><aside class="hidden clearfix">
+<nav id=TableOfContents></nav></aside></header><article class=markdown>
+</article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
-<nav id=TableOfContents></nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<nav id=TableOfContents></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/asf/index.html b/docs/latest/docs/asf/index.html
index be49b89..2891e29 100644
--- a/docs/latest/docs/asf/index.html
+++ b/docs/latest/docs/asf/index.html
@@ -8,15 +8,13 @@
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/asf/">
-<title>ASF | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>ASF | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
 <link rel=alternate type=application/rss+xml href=https://iceberg.apache.org/docs/latest/docs/asf/index.xml title="Apache Iceberg">
-</head>
-<body dir=ltr>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -29,19 +27,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -50,34 +44,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -85,84 +70,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -173,18 +138,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -195,35 +155,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -235,25 +186,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -265,15 +210,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -285,30 +226,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -320,30 +254,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle checked>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button class=active>
@@ -355,39 +282,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -398,24 +314,11 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
-<nav id=TableOfContents></nav>
-</aside>
-</header>
-<article class=markdown></article>
-<footer class=book-footer>
+</div><aside class="hidden clearfix">
+<nav id=TableOfContents></nav></aside></header><article class=markdown></article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
-<nav id=TableOfContents></nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<nav id=TableOfContents></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/asf/license/index.html b/docs/latest/docs/asf/license/index.html
index b5e15e9..58131eb 100644
--- a/docs/latest/docs/asf/license/index.html
+++ b/docs/latest/docs/asf/license/index.html
@@ -2,21 +2,19 @@
 <head>
 <meta charset=utf-8>
 <meta name=viewport content="width=device-width,initial-scale=1">
-<meta name=description content="  ">
+<meta name=description content>
 <meta name=theme-color content="#FFFFFF">
 <meta name=color-scheme content="light dark"><meta property="og:title" content="License">
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/asf/license/">
-<title>License | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>License | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
 <link rel=alternate type=application/rss+xml href=https://iceberg.apache.org/docs/latest/docs/asf/license/index.xml title="Apache Iceberg">
-</head>
-<body dir=ltr>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -29,19 +27,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -50,34 +44,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -85,84 +70,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -173,18 +138,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -195,35 +155,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -235,25 +186,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -265,15 +210,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -285,30 +226,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -320,30 +254,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle checked>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -355,39 +282,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -398,29 +314,13 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
-<nav id=TableOfContents></nav>
-</aside>
-</header>
-<article class=markdown>
-<blockquote>
-</blockquote>
-</article>
-<footer class=book-footer>
+</div><aside class="hidden clearfix">
+<nav id=TableOfContents></nav></aside></header><article class=markdown>
+</article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
-<nav id=TableOfContents></nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<nav id=TableOfContents></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/asf/security/index.html b/docs/latest/docs/asf/security/index.html
index 6caee94..dddb82e 100644
--- a/docs/latest/docs/asf/security/index.html
+++ b/docs/latest/docs/asf/security/index.html
@@ -2,21 +2,19 @@
 <head>
 <meta charset=utf-8>
 <meta name=viewport content="width=device-width,initial-scale=1">
-<meta name=description content="  ">
+<meta name=description content>
 <meta name=theme-color content="#FFFFFF">
 <meta name=color-scheme content="light dark"><meta property="og:title" content="Security">
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/asf/security/">
-<title>Security | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Security | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
 <link rel=alternate type=application/rss+xml href=https://iceberg.apache.org/docs/latest/docs/asf/security/index.xml title="Apache Iceberg">
-</head>
-<body dir=ltr>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -29,19 +27,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -50,34 +44,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -85,84 +70,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -173,18 +138,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -195,35 +155,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -235,25 +186,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -265,15 +210,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -285,30 +226,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -320,30 +254,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle checked>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -355,39 +282,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -398,29 +314,13 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
-<nav id=TableOfContents></nav>
-</aside>
-</header>
-<article class=markdown>
-<blockquote>
-</blockquote>
-</article>
-<footer class=book-footer>
+</div><aside class="hidden clearfix">
+<nav id=TableOfContents></nav></aside></header><article class=markdown>
+</article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
-<nav id=TableOfContents></nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<nav id=TableOfContents></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/asf/sponsors/index.html b/docs/latest/docs/asf/sponsors/index.html
index 5b930cf..596f8fc 100644
--- a/docs/latest/docs/asf/sponsors/index.html
+++ b/docs/latest/docs/asf/sponsors/index.html
@@ -2,21 +2,19 @@
 <head>
 <meta charset=utf-8>
 <meta name=viewport content="width=device-width,initial-scale=1">
-<meta name=description content="  ">
+<meta name=description content>
 <meta name=theme-color content="#FFFFFF">
 <meta name=color-scheme content="light dark"><meta property="og:title" content="Sponsors">
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/asf/sponsors/">
-<title>Sponsors | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Sponsors | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
 <link rel=alternate type=application/rss+xml href=https://iceberg.apache.org/docs/latest/docs/asf/sponsors/index.xml title="Apache Iceberg">
-</head>
-<body dir=ltr>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -29,19 +27,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -50,34 +44,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -85,84 +70,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -173,18 +138,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -195,35 +155,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -235,25 +186,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -265,15 +210,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -285,30 +226,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -320,30 +254,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle checked>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -355,39 +282,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -398,29 +314,13 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
-<nav id=TableOfContents></nav>
-</aside>
-</header>
-<article class=markdown>
-<blockquote>
-</blockquote>
-</article>
-<footer class=book-footer>
+</div><aside class="hidden clearfix">
+<nav id=TableOfContents></nav></aside></header><article class=markdown>
+</article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
-<nav id=TableOfContents></nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<nav id=TableOfContents></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/athena/index.html b/docs/latest/docs/athena/index.html
index 901882a..39f1d18 100644
--- a/docs/latest/docs/athena/index.html
+++ b/docs/latest/docs/athena/index.html
@@ -2,21 +2,19 @@
 <head>
 <meta charset=utf-8>
 <meta name=viewport content="width=device-width,initial-scale=1">
-<meta name=description content="  ">
+<meta name=description content>
 <meta name=theme-color content="#FFFFFF">
 <meta name=color-scheme content="light dark"><meta property="og:title" content="Amazon Athena">
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/athena/">
-<title>Amazon Athena | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Amazon Athena | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
 <link rel=alternate type=application/rss+xml href=https://iceberg.apache.org/docs/latest/docs/athena/index.xml title="Apache Iceberg">
-</head>
-<body dir=ltr>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -29,19 +27,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -50,34 +44,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -85,84 +70,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -173,18 +138,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -195,35 +155,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -235,25 +186,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -265,15 +210,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -285,30 +226,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -320,30 +254,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -355,39 +282,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -398,29 +314,13 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
-<nav id=TableOfContents></nav>
-</aside>
-</header>
-<article class=markdown>
-<blockquote>
-</blockquote>
-</article>
-<footer class=book-footer>
+</div><aside class="hidden clearfix">
+<nav id=TableOfContents></nav></aside></header><article class=markdown>
+</article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
-<nav id=TableOfContents></nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<nav id=TableOfContents></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/community/blogs/index.html b/docs/latest/docs/community/blogs/index.html
index eb24287..8db63a3 100644
--- a/docs/latest/docs/community/blogs/index.html
+++ b/docs/latest/docs/community/blogs/index.html
@@ -2,20 +2,18 @@
 <head>
 <meta charset=utf-8>
 <meta name=viewport content="width=device-width,initial-scale=1">
-<meta name=description content="  ">
+<meta name=description content>
 <meta name=theme-color content="#FFFFFF">
 <meta name=color-scheme content="light dark"><meta property="og:title" content="Blogs">
-<meta property="og:description" content="  ">
+<meta property="og:description" content>
 <meta property="og:type" content="article">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/community/blogs/"><meta property="article:section" content="docs">
-<title>Blogs | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Blogs | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
-</head>
-<body dir=ltr>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -28,19 +26,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -49,34 +43,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -84,84 +69,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -172,18 +137,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -194,35 +154,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle checked>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -234,25 +185,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -264,15 +209,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -284,30 +225,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -319,30 +253,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -354,39 +281,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -397,29 +313,13 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
-<nav id=TableOfContents></nav>
-</aside>
-</header>
-<article class=markdown>
-<blockquote>
-</blockquote>
-</article>
-<footer class=book-footer>
+</div><aside class="hidden clearfix">
+<nav id=TableOfContents></nav></aside></header><article class=markdown>
+</article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
-<nav id=TableOfContents></nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<nav id=TableOfContents></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/community/contribute/index.html b/docs/latest/docs/community/contribute/index.html
index 5e10937..cb12abe 100644
--- a/docs/latest/docs/community/contribute/index.html
+++ b/docs/latest/docs/community/contribute/index.html
@@ -2,20 +2,18 @@
 <head>
 <meta charset=utf-8>
 <meta name=viewport content="width=device-width,initial-scale=1">
-<meta name=description content="  ">
+<meta name=description content>
 <meta name=theme-color content="#FFFFFF">
 <meta name=color-scheme content="light dark"><meta property="og:title" content="Contribute">
-<meta property="og:description" content="  ">
+<meta property="og:description" content>
 <meta property="og:type" content="article">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/community/contribute/"><meta property="article:section" content="docs">
-<title>Contribute | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Contribute | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
-</head>
-<body dir=ltr>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -28,19 +26,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -49,34 +43,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -84,84 +69,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -172,18 +137,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -194,35 +154,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle checked>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button>
@@ -234,25 +185,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -264,15 +209,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../terms>
 Terms
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-2e5d3f5f142758d8dd368e9c281dd08e class=toggle>
 <label for=section-2e5d3f5f142758d8dd368e9c281dd08e class="flex justify-between">
 <a role=button>
@@ -284,30 +225,23 @@ Project</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../how-to-release>
 How to Release
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../multi-engine-support>
 Multi-Engine Support
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../roadmap>
 Roadmap
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../security>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../trademarks>
 Trademarks
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-4ddb27a8612bc8118c0b36386905d332 class=toggle>
 <label for=section-4ddb27a8612bc8118c0b36386905d332 class="flex justify-between">
 <a role=button>
@@ -319,30 +253,23 @@ Releases</a>
 <a href=https://iceberg.apache.org/docs/latest/../latest>
 Latest
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.1>
 0.13.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.13.0>
 0.13.0
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../0.12.1>
 0.12.1
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../releases>
 Release Notes
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-296746d27808aa768e500824aaf2adea class=toggle>
 <label for=section-296746d27808aa768e500824aaf2adea class="flex justify-between">
 <a role=button>
@@ -354,39 +281,28 @@ Release Notes
 <i class="fa fa-external-link fa-fw"></i>
 License
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/security/ target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Security
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/thanks.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Sponsors
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/foundation/sponsorship.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Donate
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://www.apache.org/events/current-event.html target=_blank>
 <i class="fa fa-external-link fa-fw"></i>
 Events
 </a>
-</li>
-</ul>
-</li>
-</ul>
-</nav>
-<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
-</div>
-</aside>
-<div class=book-page>
+</li></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
+</div></aside><div class=book-page>
 <header class=book-header>
 <div class="flex align-center justify-between">
 <link rel=stylesheet href=/docs/latest/fontawesome/css/font-awesome.min.css>
@@ -397,29 +313,13 @@ Events
 <label for=toc-control>
 <img src=/docs/latest/svg/toc.svg class=book-icon alt="Table of Contents">
 </label>
-</div>
-<aside class="hidden clearfix">
-<nav id=TableOfContents></nav>
-</aside>
-</header>
-<article class=markdown>
-<blockquote>
-</blockquote>
-</article>
-<footer class=book-footer>
+</div><aside class="hidden clearfix">
+<nav id=TableOfContents></nav></aside></header><article class=markdown>
+</article><footer class=book-footer>
 <div class="flex flex-wrap justify-between">
-</div>
-<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
-</footer>
-<div class=book-comments>
-</div>
-<label for=menu-control class="hidden book-menu-overlay"></label>
-</div>
-<aside class=book-toc>
+</div><script>(function(){function e(n){const e=window.getSelection(),t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
+</footer><div class=book-comments>
+</div><label for=menu-control class="hidden book-menu-overlay"></label>
+</div><aside class=book-toc>
 <div class=book-toc-content>
-<nav id=TableOfContents></nav>
-</div>
-</aside>
-</main>
-</body>
-</html>
\ No newline at end of file
+<nav id=TableOfContents></nav></div></aside></main></body></html>
\ No newline at end of file
diff --git a/docs/latest/docs/community/index.html b/docs/latest/docs/community/index.html
index ab1cb13..18949af 100644
--- a/docs/latest/docs/community/index.html
+++ b/docs/latest/docs/community/index.html
@@ -8,15 +8,13 @@
 <meta property="og:description" content>
 <meta property="og:type" content="website">
 <meta property="og:url" content="https://iceberg.apache.org/docs/latest/docs/community/">
-<title>Community | Apache Iceberg</title>
-<link rel=manifest href=/docs/latest/manifest.json>
+<title>Community | Apache Iceberg</title><link rel=manifest href=/docs/latest/manifest.json>
 <link rel=icon href=/docs/latest/favicon.png type=image/x-icon>
 <link rel=stylesheet href=/docs/latest/book.min.179e158d24f3ef709534173fd8b1c1e541a4fa3e23c1b5d8e887464c58949cc9.css integrity="sha256-F54VjSTz73CVNBc/2LHB5UGk+j4jwbXY6IdGTFiUnMk=" crossorigin=anonymous>
 <script defer src=/docs/latest/flexsearch.min.js></script>
-<script defer src=/docs/latest/en.search.min.62023fe4d52c3ba56afb71ab69fc56aae142e013c61cb31f924b89fe28e839b2.js integrity="sha256-YgI/5NUsO6Vq+3GrafxWquFC4BPGHLMfkkuJ/ijoObI=" crossorigin=anonymous></script>
+<script defer src=/docs/latest/en.search.min.83895b298912348dd1ff0b1c7a303ac7cb2ca825a31829e3c6a3c335d9d056f9.js integrity="sha256-g4lbKYkSNI3R/wscejA6x8ssqCWjGCnjxqPDNdnQVvk=" crossorigin=anonymous></script>
 <link rel=alternate type=application/rss+xml href=https://iceberg.apache.org/docs/latest/docs/community/index.xml title="Apache Iceberg">
-</head>
-<body dir=ltr>
+</head><body dir=ltr>
 <input type=checkbox class="hidden toggle" id=menu-control>
 <input type=checkbox class="hidden toggle" id=toc-control>
 <main class="container flex">
@@ -29,19 +27,15 @@
 <a href=https://iceberg.apache.org/docs/latest/../../releases>
 <img id=version-shield src=https://img.shields.io/badge/version-0.13.1-blue alt>
 </a>
-</h2>
-<div class=book-search>
+</h2><div class=book-search>
 <input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
-<div class="book-search-spinner hidden"></div>
-<ul id=book-search-results></ul>
-<a href=https://github.com/apache/iceberg target=_blank>
+<div class="book-search-spinner hidden"></div><ul id=book-search-results></ul><a href=https://github.com/apache/iceberg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/GitHub-Mark.png target=_blank class=top-external-icon>
 </a>
 <a href=https://join.slack.com/t/apache-iceberg/shared_invite/zt-tlv0zjz6-jGJEkHfb1~heMCJA3Uycrg target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/Slack_Mark_Web.png target=_blank class=top-external-icon>
 </a>
-</div>
-<ul>
+</div><ul>
 <li class=book-section-flats>
 <span>
 <i class="fa fa-table fa-fw"></i>
@@ -50,34 +44,25 @@ Tables</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/evolution/>
 Evolution</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/maintenance/>
 Maintenance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/partitioning/>
 Partitioning</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/performance/>
 Performance</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/reliability/>
 Reliability</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/schemas/>
 Schemas</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <i class="fa fa-star-o fa-fw"></i>
 Spark</span>
@@ -85,84 +70,64 @@ Spark</span>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/getting-started/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-configuration/>
 Configuration</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-ddl/>
 DDL</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-procedures/>
 Procedures</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-queries/>
 Queries</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-structured-streaming/>
 Structured Streaming</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/spark-writes/>
 Writes</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <span>
 <img src=https://iceberg.apache.org/docs/latest/img/flink-logo.png class="navigation-icon fa-fw">Flink</span>
 <ul>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink/>
 Getting Started</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/flink-connector/>
 Flink Connector</a>
-</li>
-</ul>
-</li>
-<li class=book-section-flats>
+</li></ul></li><li class=book-section-flats>
 <a href=https://iceberg.apache.org/docs/latest/hive/>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/hive-logo.png class="navigation-icon fa-fw">Hive</a>
 <ul>
-</ul>
-</li>
-<li>
+</ul></li><li>
 <a href=https://trino.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/trino-logo.png class="navigation-icon fa-fw">
 Trino
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://prestodb.io/docs/current/connector/iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/prestodb-logo.png class="navigation-icon fa-fw">
 Presto
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.dremio.com/data-formats/apache-iceberg/ target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/dremio-logo.png class="navigation-icon fa-fw">
 Dremio
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/athena-logo.png class="navigation-icon fa-fw">
 Amazon Athena
 </a>
-</li>
-<li>
+</li><li>
 <a href=https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-create-cluster.html target=_blank>
 <img src=https://iceberg.apache.org/docs/latest/img/../img/emr-logo.png class="navigation-icon fa-fw">
 Amazon EMR
 </a>
-</li>
-<li class=book-section-collapsed>
+</li><li class=book-section-collapsed>
 <input type=checkbox id=section-56605d8e971a871885e28ee5142728bf class=toggle>
 <label for=section-56605d8e971a871885e28ee5142728bf class="flex justify-between">
 <a role=button>
@@ -173,18 +138,13 @@ Integrations</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/aws/>
 AWS</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/jdbc/>
 JDBC</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/nessie/>
 Nessie</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-bf7b3283e3790c00c8caaa140299052b class=toggle>
 <label for=section-bf7b3283e3790c00c8caaa140299052b class="flex justify-between">
 <a role=button>
@@ -195,35 +155,26 @@ API</a>
 <li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/java-api-quickstart/>
 Java Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/api/>
 Java API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/custom-catalog/>
 Java Custom Catalog</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../javadoc/latest>
 Javadocs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-quickstart/>
 Python Quickstart</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-api-intro/>
 Python API</a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/python-feature-support/>
 Python Feature Support</a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-7e66f1754ca5d93e20ecdc89df5b8b28 class=toggle checked>
 <label for=section-7e66f1754ca5d93e20ecdc89df5b8b28 class="flex justify-between">
 <a role=button class=active>
@@ -235,25 +186,19 @@ Community</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../community>
 Join
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../blogs>
 Blogs
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../talks>
 Talks
 </a>
-</li>
-<li class=navigation-icon-pad>
+</li><li class=navigation-icon-pad>
 <a href=https://iceberg.apache.org/docs/latest/../../../contribute>
 Contribute
 </a>
-</li>
-</ul>
-</li>
-<li class=book-section-collapsed>
+</li></ul></li><li class=book-section-collapsed>
 <input type=checkbox id=section-87dda23e9104fe3231cee3bc88a2d754 class=toggle>
 <label for=section-87dda23e9104fe3231cee3bc88a2d754 class="flex justify-between">
 <a role=button>
@@ -265,15 +210,11 @@ Format</a>
 <a href=https://iceberg.apache.org/docs/latest/../../../spec>
 Spec
 </a>
-</li>
... 31023 lines suppressed ...