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/sedona-db.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 0b69230b Deployed 96fdd77 to latest-snapshot with MkDocs 1.6.1 and 
mike 2.1.3
0b69230b is described below

commit 0b69230bbd6932f6e310a0082a989fd9c65e3a25
Author: GitHub Actions <[email protected]>
AuthorDate: Sun Dec 14 06:07:06 2025 +0000

    Deployed 96fdd77 to latest-snapshot with MkDocs 1.6.1 and mike 2.1.3
---
 latest-snapshot/404.html                           |  28 ++
 latest-snapshot/contributors-guide/index.html      |  28 ++
 latest-snapshot/crs-examples/index.html            |  28 ++
 latest-snapshot/delta-lake/index.html              |  34 +-
 latest-snapshot/geopandas-interop/index.html       |  28 ++
 latest-snapshot/iceberg.ipynb                      | 536 +++++++++++++++++++++
 latest-snapshot/{delta-lake => iceberg}/index.html | 381 ++++++++-------
 latest-snapshot/index.html                         |  28 ++
 latest-snapshot/overture-examples/index.html       |  28 ++
 latest-snapshot/programming-guide/index.html       |  28 ++
 latest-snapshot/quickstart-python/index.html       |  28 ++
 .../_matplotlib_defaults.cpython-314.pyc           | Bin 431 -> 431 bytes
 .../__pycache__/_render_meta.cpython-314.pyc       | Bin 8436 -> 8436 bytes
 latest-snapshot/reference/functions/index.html     |  30 +-
 .../reference/functions/st_analyze_agg/index.html  |  30 +-
 .../reference/functions/st_buffer/index.html       |  30 +-
 .../reference/functions/st_intersection/index.html |  30 +-
 latest-snapshot/reference/python/index.html        |  28 ++
 latest-snapshot/reference/sql-joins/index.html     |  28 ++
 latest-snapshot/reference/sql/index.html           |  28 ++
 latest-snapshot/search/search_index.json           |   2 +-
 latest-snapshot/sitemap.xml                        |   4 +
 latest-snapshot/sitemap.xml.gz                     | Bin 367 -> 375 bytes
 .../working-with-parquet-files/index.html          |  34 +-
 .../working-with-sql-sedonadb/index.html           |  28 ++
 25 files changed, 1270 insertions(+), 177 deletions(-)

diff --git a/latest-snapshot/404.html b/latest-snapshot/404.html
index 78dbe99a..5c1bb56a 100644
--- a/latest-snapshot/404.html
+++ b/latest-snapshot/404.html
@@ -1014,6 +1014,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="/sedonadb/latest/iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="/sedonadb/latest/working-with-parquet-files/" 
class="md-nav__link">
         
diff --git a/latest-snapshot/contributors-guide/index.html 
b/latest-snapshot/contributors-guide/index.html
index ce822c01..392bf45a 100644
--- a/latest-snapshot/contributors-guide/index.html
+++ b/latest-snapshot/contributors-guide/index.html
@@ -1044,6 +1044,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../working-with-parquet-files/" class="md-nav__link">
         
diff --git a/latest-snapshot/crs-examples/index.html 
b/latest-snapshot/crs-examples/index.html
index 77bd3e94..c718a848 100644
--- a/latest-snapshot/crs-examples/index.html
+++ b/latest-snapshot/crs-examples/index.html
@@ -1145,6 +1145,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../working-with-parquet-files/" class="md-nav__link">
         
diff --git a/latest-snapshot/delta-lake/index.html 
b/latest-snapshot/delta-lake/index.html
index d6d0453a..50fca905 100644
--- a/latest-snapshot/delta-lake/index.html
+++ b/latest-snapshot/delta-lake/index.html
@@ -13,7 +13,7 @@
         <link rel="prev" href="../crs-examples/">
       
       
-        <link rel="next" href="../working-with-parquet-files/">
+        <link rel="next" href="../iceberg/">
       
       
         
@@ -1139,6 +1139,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../working-with-parquet-files/" class="md-nav__link">
         
@@ -1707,13 +1735,13 @@
         
         
           
-          <a href="../working-with-parquet-files/" class="md-footer__link 
md-footer__link--next" aria-label="Next: Working with Parquet Files">
+          <a href="../iceberg/" class="md-footer__link md-footer__link--next" 
aria-label="Next: Iceberg">
             <div class="md-footer__title">
               <span class="md-footer__direction">
                 Next
               </span>
               <div class="md-ellipsis">
-                Working with Parquet Files
+                Iceberg
               </div>
             </div>
             <div class="md-footer__button md-icon">
diff --git a/latest-snapshot/geopandas-interop/index.html 
b/latest-snapshot/geopandas-interop/index.html
index d2e5ee2e..c90a93e5 100644
--- a/latest-snapshot/geopandas-interop/index.html
+++ b/latest-snapshot/geopandas-interop/index.html
@@ -1128,6 +1128,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../working-with-parquet-files/" class="md-nav__link">
         
diff --git a/latest-snapshot/iceberg.ipynb b/latest-snapshot/iceberg.ipynb
new file mode 100644
index 00000000..4f014261
--- /dev/null
+++ b/latest-snapshot/iceberg.ipynb
@@ -0,0 +1,536 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bfe3c140-3694-40af-8e39-57c0657aac6a",
+   "metadata": {},
+   "source": [
+    "# SedonaDB + Iceberg\n",
+    "\n",
+    "This page demonstrates how to store spatial data in Iceberg tables and 
how to query them with SedonaDB.\n",
+    "\n",
+    "You will learn how to create an Iceberg table with a well-known text 
(WKT) or well-known binary (WKB) column in an Iceberg table and some of the 
advantages of storing geometric data in Iceberg.\n",
+    "\n",
+    "Make sure to run `pip install pyiceberg` to install the required 
dependencies for this notebook.\n",
+    "\n",
+    "Let’s start by loading the required dependencies and saving a spatial 
dataset in an Iceberg table."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "16ff79eb-5249-47c7-80c9-b0aa88858599",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from pyiceberg.catalog import load_catalog\n",
+    "import sedona.db\n",
+    "import pyarrow as pa\n",
+    "import os"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "cf73a0c0-30d4-4e61-b434-485f10695c2b",
+   "metadata": {},
+   "source": [
+    "## Create an Iceberg table with geometric data\n",
+    "\n",
+    "Start by creating the Iceberg warehouse:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "ab77da72-68cd-4c66-89fa-44280ce7955c",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "os.makedirs(\"/tmp/warehouse\", exist_ok=True)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "4b35bb19-725c-4da4-a9a7-8866fc31ec9e",
+   "metadata": {},
+   "source": [
+    "Now set up the catalog:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "id": "757f6995-68da-49f3-b2b1-8173876edc05",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "warehouse_path = \"/tmp/warehouse\"\n",
+    "catalog = load_catalog(\n",
+    "    \"default\",\n",
+    "    **{\n",
+    "        \"type\": \"sql\",\n",
+    "        \"uri\": f\"sqlite:///{warehouse_path}/pyiceberg_catalog.db\",\n",
+    "        \"warehouse\": f\"file://{warehouse_path}\",\n",
+    "    },\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f2b00cd7-017a-47c1-a27a-69b905fe135d",
+   "metadata": {},
+   "source": [
+    "Use SedonaDB to read a Parquet file containing country data into a 
DataFrame."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "a9a4bd5f-a986-44dc-a787-5d8a80916a8d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sd = sedona.db.connect()\n",
+    "\n",
+    "countries = sd.read_parquet(\n",
+    "    
\"https://raw.githubusercontent.com/geoarrow/geoarrow-data/v0.2.0/natural-earth/files/natural-earth_countries_geo.parquet\"\n";,
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ee5c39cd-1858-4049-803b-c63cdac82034",
+   "metadata": {},
+   "source": [
+    "Convert all the columns to be plain strings because Iceberg doesn’t 
support geometry columns yet:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "68296482-4fd5-41b1-86a1-6915fdd91fd7",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "countries.to_view(\"countries\", True)\n",
+    "df = sd.sql(\"\"\"\n",
+    "    select \n",
+    "        ARROW_CAST(name, 'Utf8') as name, \n",
+    "        ARROW_CAST(continent, 'Utf8') as continent, \n",
+    "        ST_AsText(geometry) as geometry_wkt \n",
+    "    from countries\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "daebb7f0-8ea4-4e98-89b2-e14fe52057c3",
+   "metadata": {},
+   "source": [
+    "The explicit casting with `ARROW_CAST` is necessary because PyIceberg 
doesn't support string views.\n",
+    "\n",
+    "Check out the schema of the DataFrame:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "5139d006-81e1-4f45-a844-c7e4f702b91f",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "SedonaSchema with 3 fields:\n",
+       "  name: utf8<Utf8>\n",
+       "  continent: utf8<Utf8>\n",
+       "  geometry_wkt: utf8<Utf8>"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "df.schema"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "3ad1052a-24ec-4522-b581-6c672d9093c9",
+   "metadata": {},
+   "source": [
+    "Now create a new Iceberg table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "id": "31c30e61-463d-4e21-bf00-9b40ac633cfe",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from pyiceberg.exceptions import NamespaceAlreadyExistsError\n",
+    "\n",
+    "try:\n",
+    "    catalog.create_namespace(\"default\")\n",
+    "except NamespaceAlreadyExistsError:\n",
+    "    pass\n",
+    "\n",
+    "if catalog.table_exists(\"default.countries\"):\n",
+    "    catalog.drop_table(\"default.countries\")\n",
+    "\n",
+    "table = catalog.create_table(\n",
+    "    \"default.countries\",\n",
+    "    schema=pa.schema(df.schema),\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "c7c85415-6dbf-4c54-afe9-5e939338e11f",
+   "metadata": {},
+   "source": [
+    "Append the DataFrame to the table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "9605c683-ee76-458a-8f3d-418608817a49",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "table.append(df.to_arrow_table())"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "4cfc60c9-02b0-4377-a504-bbd9fbcbf58e",
+   "metadata": {},
+   "source": [
+    "Now let’s see how to read the data with SedonaDB.\n",
+    "\n",
+    "## Read the Iceberg table into SedonaDB via Arrow\n",
+    "\n",
+    "Here’s how to read an Iceberg table into a SedonaDB DataFrame:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "id": "8f3f63e1-9a1f-4d5f-8bc5-01c7ecb57549",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "table = catalog.load_table(\"default.countries\")\n",
+    "arrow_table = table.scan().to_arrow()\n",
+    "df = sd.create_data_frame(arrow_table)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "00343bb6-c486-4723-8b29-40566ac15e3e",
+   "metadata": {},
+   "source": [
+    "The Iceberg table is first exposed as an arrow table and then read into a 
SedonaDB DataFrame.\n",
+    "\n",
+    "Now view the contents of the SedonaDB DataFrame:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "id": "f6573e68-975d-4285-999d-43bd4ea8fdd8",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      
"┌─────────────────────────────┬───────────┬────────────────────────────────────────────────────────┐\n",
+      "│             name            ┆ continent ┆                          
geom                          │\n",
+      "│             utf8            ┆    utf8   ┆                        
geometry                        │\n",
+      
"╞═════════════════════════════╪═══════════╪════════════════════════════════════════════════════════╡\n",
+      "│ Fiji                        ┆ Oceania   ┆ MULTIPOLYGON(((180 
-16.067132663642447,180 -16.555216… │\n",
+      
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ United Republic of Tanzania ┆ Africa    ┆ POLYGON((33.90371119710453 
-0.9500000000000001,34.072… │\n",
+      
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Western Sahara              ┆ Africa    ┆ POLYGON((-8.665589565454809 
27.656425889592356,-8.665… │\n",
+      
"└─────────────────────────────┴───────────┴────────────────────────────────────────────────────────┘\n"
+     ]
+    }
+   ],
+   "source": [
+    "df.to_view(\"my_table\", True)\n",
+    "res = sd.sql(\"\"\"\n",
+    "SELECT\n",
+    "  name,\n",
+    "  continent,\n",
+    "  ST_GeomFromWKT(geometry_wkt) as geom\n",
+    "from my_table\n",
+    "\"\"\")\n",
+    "res.show(3)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "efe2c02c-6453-4819-9a7f-7a5e30309090",
+   "metadata": {},
+   "source": [
+    "You can see that the geom column contains the geometry type, which 
enables spatial analysis of the data.\n",
+    "\n",
+    "The geometry data is stored as WKT, which isn't as efficient as WKB.  The 
example that follows demonstrates how to store WKB in Iceberg tables.\n",
+    "\n",
+    "## Future Iceberg geography/geometry work\n",
+    "\n",
+    "Iceberg added support for geometry and geography columns in the v3 
spec.\n",
+    "\n",
+    "The Iceberg v3 implementation has not been released yet, and it the v3 
spec hasn't started in Iceberg Rust.  Here is [the open 
issue](https://github.com/apache/iceberg-rust/issues/1884) to add geo support 
to Iceberg Rust.\n",
+    "\n",
+    "It’s best to manually persist the bbox information of files in your 
Iceberg table if you’re storing geometric data as WKT or WKB. \n",
+    "\n",
+    "## Create an Iceberg table with WKB and bbox\n",
+    "\n",
+    "Let’s see how to create an Iceberg table with a WKB and bbox columns to 
allow for faster spatial analyses.\n",
+    "\n",
+    "Start by creating the cities DataFrame."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "id": "a466349e-98f9-4e0a-9c7a-fddf451b18fa",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cities = sd.read_parquet(\n",
+    "    
\"https://raw.githubusercontent.com/geoarrow/geoarrow-data/v0.2.0/natural-earth/files/natural-earth_cities_geo.parquet\"\n";,
+    ")\n",
+    "cities.to_view(\"cities\", True)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "8317ca27-f69c-445f-9477-c18c91cd4a1c",
+   "metadata": {},
+   "source": [
+    "Now write the DataFrame to an Iceberg table with bbox columns:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "id": "0aeb9dd6-cccb-4cec-a649-34846194ad12",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "df = sd.sql(\"\"\"\n",
+    "select \n",
+    "    ARROW_CAST(name, 'Utf8') as name, \n",
+    "    ARROW_CAST(ST_AsBinary(geometry), 'Binary') as geometry_wkb,\n",
+    "    ST_XMin(geometry) as bbox_xmin,\n",
+    "    ST_YMin(geometry) as bbox_ymin,\n",
+    "    ST_XMax(geometry) as bbox_xmax,\n",
+    "    ST_YMax(geometry) as bbox_ymax\n",
+    "from cities\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "id": "17a5f37a-01f5-4913-adfb-129213355474",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "if catalog.table_exists(\"default.cities\"):\n",
+    "    catalog.drop_table(\"default.cities\")\n",
+    "\n",
+    "table = catalog.create_table(\n",
+    "    \"default.cities\",\n",
+    "    schema=pa.schema(df.schema),\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "id": "a018252f-9ca5-49e7-a103-1b7451ba05b1",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "table.append(df.to_arrow_table())"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ad8bd437-ce73-46f5-8ace-e2e9056c460f",
+   "metadata": {},
+   "source": [
+    "Load the `cities` table into a DataFrame with SedonaDB."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "id": "e86fcb62-f1fd-43ca-9aaf-54e60516cc5e",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      
"┌──────────────┬───────────────────────────┬─────────────┬─────────────┬─────────────┬─────────────┐\n",
+      "│     name     ┆        geometry_wkb       ┆  bbox_xmin  ┆  bbox_ymin  
┆  bbox_xmax  ┆  bbox_ymax  │\n",
+      "│     utf8     ┆           binary          ┆   float64   ┆   float64   
┆   float64   ┆   float64   │\n",
+      
"╞══════════════╪═══════════════════════════╪═════════════╪═════════════╪═════════════╪═════════════╡\n",
+      "│ Vatican City ┆ 010100000054e57b4622e828… ┆  12.4533865 ┆  41.9032822 
┆  12.4533865 ┆  41.9032822 │\n",
+      
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ San Marino   ┆ 0101000000dcb122b42fe228… ┆  12.4417702 ┆  43.9360958 
┆  12.4417702 ┆  43.9360958 │\n",
+      
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Vaduz        ┆ 01010000006dae9ae7880823… ┆   9.5166695 ┆  47.1337238 
┆   9.5166695 ┆  47.1337238 │\n",
+      
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Lobamba      ┆ 01010000007bcb8b0233333f… ┆  31.1999971 ┆ -26.4666675 
┆  31.1999971 ┆ -26.4666675 │\n",
+      
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Luxembourg   ┆ 0101000000c08d39741f8518… ┆   6.1300028 ┆  49.6116604 
┆   6.1300028 ┆  49.6116604 │\n",
+      
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Palikir      ┆ 0101000000b237e796ccc463… ┆ 158.1499743 ┆   6.9166437 
┆ 158.1499743 ┆   6.9166437 │\n",
+      
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Majuro       ┆ 010100000027ef2df6286c65… ┆ 171.3800002 ┆   7.1030043 
┆ 171.3800002 ┆   7.1030043 │\n",
+      
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Funafuti     ┆ 0101000000be28e6c5ee6666… ┆ 179.2166471 ┆   -8.516652 
┆ 179.2166471 ┆   -8.516652 │\n",
+      
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Melekeok     ┆ 0101000000749b70af0cd460… ┆ 134.6265485 ┆   7.4873962 
┆ 134.6265485 ┆   7.4873962 │\n",
+      
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Bir Lehlou   ┆ 0101000000f4d3c963174e23… ┆  -9.6525222 ┆  26.1191667 
┆  -9.6525222 ┆  26.1191667 │\n",
+      
"└──────────────┴───────────────────────────┴─────────────┴─────────────┴─────────────┴─────────────┘\n"
+     ]
+    }
+   ],
+   "source": [
+    "table = catalog.load_table(\"default.cities\")\n",
+    "arrow_table = table.scan().to_arrow()\n",
+    "df = sd.create_data_frame(arrow_table)\n",
+    "df.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "id": "e66a151c-7dda-4c98-9548-f8ae373476c5",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "name: string\n",
+       "geometry_wkb: binary\n",
+       "bbox_xmin: double\n",
+       "bbox_ymin: double\n",
+       "bbox_xmax: double\n",
+       "bbox_ymax: double"
+      ]
+     },
+     "execution_count": 23,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "arrow_table.schema"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7ac7c3c4-0e5c-45e3-b09d-aefa57565e6e",
+   "metadata": {},
+   "source": [
+    "Read the Iceberg table and filter it to only include cities in the 
eastern half of North America."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "id": "69c1922d-18b1-427a-b677-f77fed057848",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from pyiceberg.expressions import And, GreaterThanOrEqual, 
LessThanOrEqual\n",
+    "\n",
+    "filter_expr = And(\n",
+    "    GreaterThanOrEqual(\"bbox_xmax\", -97.0),\n",
+    "    LessThanOrEqual(\"bbox_xmin\", -67.0),\n",
+    "    GreaterThanOrEqual(\"bbox_ymax\", 25.0),\n",
+    "    LessThanOrEqual(\"bbox_ymin\", 50.0),\n",
+    ")\n",
+    "\n",
+    "arrow_table = table.scan(row_filter=filter_expr).to_arrow()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "id": "348fdd14-8c4f-4ddf-809b-59d9b9feb3e9",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "┌──────────────────┬──────────────────────────────────────────────┐\n",
+      "│       name       ┆                     geom                     │\n",
+      "│       utf8       ┆                   geometry                   │\n",
+      "╞══════════════════╪══════════════════════════════════════════════╡\n",
+      "│ Ottawa           ┆ POINT(-75.7019612 45.4186427)                │\n",
+      "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Nassau           ┆ POINT(-77.3500438 25.0833901)                │\n",
+      "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Houston          ┆ POINT(-95.34843625672217 29.741272831862542) │\n",
+      "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Miami            ┆ POINT(-80.2260519 25.7895566)                │\n",
+      "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Atlanta          ┆ POINT(-84.36764186571386 33.73945728378348)  │\n",
+      "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Chicago          ┆ POINT(-87.63523655322338 41.847961283364114) │\n",
+      "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Toronto          ┆ POINT(-79.38945855491194 43.66464454743429)  │\n",
+      "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ Washington, D.C. ┆ POINT(-77.0113644 38.9014952)                │\n",
+      "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+      "│ New York         ┆ POINT(-73.99571754361698 40.72156174972766)  │\n",
+      "└──────────────────┴──────────────────────────────────────────────┘\n"
+     ]
+    }
+   ],
+   "source": [
+    "df = sd.create_data_frame(arrow_table)\n",
+    "\n",
+    "df.to_view(\"us_east_cities\", True)\n",
+    "sd.sql(\"select name, ST_GeomFromWKB(geometry_wkb) as geom from 
us_east_cities\").show()"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.12.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/latest-snapshot/delta-lake/index.html 
b/latest-snapshot/iceberg/index.html
similarity index 67%
copy from latest-snapshot/delta-lake/index.html
copy to latest-snapshot/iceberg/index.html
index d6d0453a..84c5f22b 100644
--- a/latest-snapshot/delta-lake/index.html
+++ b/latest-snapshot/iceberg/index.html
@@ -7,10 +7,10 @@
       
       
       
-        <link rel="canonical" 
href="https://sedona.apache.org/sedonadb/latest/delta-lake/";>
+        <link rel="canonical" 
href="https://sedona.apache.org/sedonadb/latest/iceberg/";>
       
       
-        <link rel="prev" href="../crs-examples/">
+        <link rel="prev" href="../delta-lake/">
       
       
         <link rel="next" href="../working-with-parquet-files/">
@@ -24,7 +24,7 @@
     
     
       
-        <title>Delta Lake - SedonaDB</title>
+        <title>Iceberg - SedonaDB</title>
       
     
     
@@ -88,7 +88,7 @@
     <div data-md-component="skip">
       
         
-        <a href="#sedonadb-delta-lake" class="md-skip">
+        <a href="#sedonadb-iceberg" class="md-skip">
           Skip to content
         </a>
       
@@ -127,7 +127,7 @@
         <div class="md-header__topic" data-md-component="header-topic">
           <span class="md-ellipsis">
             
-              Delta Lake
+              Iceberg
             
           </span>
         </div>
@@ -1018,6 +1018,34 @@
                 
   
   
+  
+  
+    <li class="md-nav__item">
+      <a href="../delta-lake/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Delta Lake
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
     
   
   
@@ -1037,7 +1065,7 @@
   <span class="md-ellipsis">
     
   
-    Delta Lake
+    Iceberg
   
 
     
@@ -1055,7 +1083,7 @@
   <span class="md-ellipsis">
     
   
-    Delta Lake
+    Iceberg
   
 
     
@@ -1081,10 +1109,10 @@
     <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
       
         <li class="md-nav__item">
-  <a href="#create-a-delta-lake-table-with-wkt" class="md-nav__link">
+  <a href="#create-an-iceberg-table-with-geometric-data" class="md-nav__link">
     <span class="md-ellipsis">
       
-        Create a Delta Lake table with WKT
+        Create an Iceberg table with geometric data
       
     </span>
   </a>
@@ -1092,10 +1120,10 @@
 </li>
       
         <li class="md-nav__item">
-  <a href="#read-delta-table-into-sedonadb" class="md-nav__link">
+  <a href="#read-the-iceberg-table-into-sedonadb-via-arrow" 
class="md-nav__link">
     <span class="md-ellipsis">
       
-        Read Delta table into SedonaDB
+        Read the Iceberg table into SedonaDB via Arrow
       
     </span>
   </a>
@@ -1103,10 +1131,10 @@
 </li>
       
         <li class="md-nav__item">
-  <a href="#filter-countries-in-a-particular-geographic-region" 
class="md-nav__link">
+  <a href="#future-iceberg-geographygeometry-work" class="md-nav__link">
     <span class="md-ellipsis">
       
-        Filter countries in a particular geographic region
+        Future Iceberg geography/geometry work
       
     </span>
   </a>
@@ -1114,10 +1142,10 @@
 </li>
       
         <li class="md-nav__item">
-  <a href="#create-a-delta-lake-table-with-wkb" class="md-nav__link">
+  <a href="#create-an-iceberg-table-with-wkb-and-bbox" class="md-nav__link">
     <span class="md-ellipsis">
       
-        Create a Delta Lake table with WKB
+        Create an Iceberg table with WKB and bbox
       
     </span>
   </a>
@@ -1367,10 +1395,10 @@
     <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
       
         <li class="md-nav__item">
-  <a href="#create-a-delta-lake-table-with-wkt" class="md-nav__link">
+  <a href="#create-an-iceberg-table-with-geometric-data" class="md-nav__link">
     <span class="md-ellipsis">
       
-        Create a Delta Lake table with WKT
+        Create an Iceberg table with geometric data
       
     </span>
   </a>
@@ -1378,10 +1406,10 @@
 </li>
       
         <li class="md-nav__item">
-  <a href="#read-delta-table-into-sedonadb" class="md-nav__link">
+  <a href="#read-the-iceberg-table-into-sedonadb-via-arrow" 
class="md-nav__link">
     <span class="md-ellipsis">
       
-        Read Delta table into SedonaDB
+        Read the Iceberg table into SedonaDB via Arrow
       
     </span>
   </a>
@@ -1389,10 +1417,10 @@
 </li>
       
         <li class="md-nav__item">
-  <a href="#filter-countries-in-a-particular-geographic-region" 
class="md-nav__link">
+  <a href="#future-iceberg-geographygeometry-work" class="md-nav__link">
     <span class="md-ellipsis">
       
-        Filter countries in a particular geographic region
+        Future Iceberg geography/geometry work
       
     </span>
   </a>
@@ -1400,10 +1428,10 @@
 </li>
       
         <li class="md-nav__item">
-  <a href="#create-a-delta-lake-table-with-wkb" class="md-nav__link">
+  <a href="#create-an-iceberg-table-with-wkb-and-bbox" class="md-nav__link">
     <span class="md-ellipsis">
       
-        Create a Delta Lake table with WKB
+        Create an Iceberg table with WKB and bbox
       
     </span>
   </a>
@@ -1427,7 +1455,7 @@
 
 
   
-    <a href="https://github.com/apache/sedona-db/blob/main/docs/delta-lake.md"; 
title="Edit this page" class="md-content__button md-icon" rel="edit">
+    <a href="https://github.com/apache/sedona-db/blob/main/docs/iceberg.md"; 
title="Edit this page" class="md-content__button md-icon" rel="edit">
       
       <svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 24 24"><path d="M10 
20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 
.3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 
23H12v-2.1l6.1-6.1z"></path></svg>
     </a>
@@ -1435,180 +1463,201 @@
   
 
 
-<h1 id="sedonadb-delta-lake">SedonaDB + Delta Lake<a class="headerlink" 
href="#sedonadb-delta-lake" title="Permanent link">¶</a></h1>
-<p>This page shows how to read and write Delta Lake tables with SedonaDB.</p>
-<p>Make sure you run <code>pip install deltalake</code> to run the code 
snippets below.</p>
-<div class="highlight"><pre><span></span><code><span 
class="kn">from</span><span class="w"> </span><span 
class="nn">deltalake</span><span class="w"> </span><span 
class="kn">import</span> <span class="n">write_deltalake</span><span 
class="p">,</span> <span class="n">DeltaTable</span>
+<h1 id="sedonadb-iceberg">SedonaDB + Iceberg<a class="headerlink" 
href="#sedonadb-iceberg" title="Permanent link">¶</a></h1>
+<p>This page demonstrates how to store spatial data in Iceberg tables and how 
to query them with SedonaDB.</p>
+<p>You will learn how to create an Iceberg table with a well-known text (WKT) 
or well-known binary (WKB) column in an Iceberg table and some of the 
advantages of storing geometric data in Iceberg.</p>
+<p>Make sure to run <code>pip install pyiceberg</code> to install the required 
dependencies for this notebook.</p>
+<p>Let’s start by loading the required dependencies and saving a spatial 
dataset in an Iceberg table.</p>
+<div class="highlight"><pre><span></span><code><span 
class="kn">from</span><span class="w"> </span><span 
class="nn">pyiceberg.catalog</span><span class="w"> </span><span 
class="kn">import</span> <span class="n">load_catalog</span>
 <span class="kn">import</span><span class="w"> </span><span 
class="nn">sedona.db</span>
-<span class="kn">import</span><span class="w"> </span><span 
class="nn">pyarrow.compute</span><span class="w"> </span><span 
class="k">as</span><span class="w"> </span><span class="nn">pc</span>
-
-<span class="n">sd</span> <span class="o">=</span> <span 
class="n">sedona</span><span class="o">.</span><span class="n">db</span><span 
class="o">.</span><span class="n">connect</span><span class="p">()</span>
+<span class="kn">import</span><span class="w"> </span><span 
class="nn">pyarrow</span><span class="w"> </span><span class="k">as</span><span 
class="w"> </span><span class="nn">pa</span>
+<span class="kn">import</span><span class="w"> </span><span 
class="nn">os</span>
 </code></pre></div>
-<p>Read in a GeoParquet dataset into a SedonaDB DataFrame.</p>
-<div class="highlight"><pre><span></span><code><span 
class="n">countries</span> <span class="o">=</span> <span 
class="n">sd</span><span class="o">.</span><span 
class="n">read_parquet</span><span class="p">(</span>
-    <span 
class="s2">"https://raw.githubusercontent.com/geoarrow/geoarrow-data/v0.2.0/natural-earth/files/natural-earth_countries_geo.parquet";</span>
-<span class="p">)</span>
+<h2 id="create-an-iceberg-table-with-geometric-data">Create an Iceberg table 
with geometric data<a class="headerlink" 
href="#create-an-iceberg-table-with-geometric-data" title="Permanent 
link">¶</a></h2>
+<p>Start by creating the Iceberg warehouse:</p>
+<div class="highlight"><pre><span></span><code><span class="n">os</span><span 
class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span 
class="s2">"/tmp/warehouse"</span><span class="p">,</span> <span 
class="n">exist_ok</span><span class="o">=</span><span 
class="kc">True</span><span class="p">)</span>
 </code></pre></div>
-<h2 id="create-a-delta-lake-table-with-wkt">Create a Delta Lake table with 
WKT<a class="headerlink" href="#create-a-delta-lake-table-with-wkt" 
title="Permanent link">¶</a></h2>
-<p>Now write the DataFrame to a Delta Lake table.  Notice that you must 
convert the geometry column to Well-Known Text (WKT) or Well-Known Binary (WKB) 
before writing to the Delta table.</p>
-<p>Delta Lake does not support geometry columns.</p>
-<p>This example shows how to create a Delta table with a WKT column.  The 
section that follows shows how to create a Delta table with a WKB column.</p>
-<div class="highlight"><pre><span></span><code><span 
class="n">countries</span><span class="o">.</span><span 
class="n">to_view</span><span class="p">(</span><span 
class="s2">"countries"</span><span class="p">,</span> <span 
class="kc">True</span><span class="p">)</span>
-<span class="n">df</span> <span class="o">=</span> <span 
class="n">sd</span><span class="o">.</span><span class="n">sql</span><span 
class="p">(</span>
-    <span class="s2">"select name, continent, ST_AsText(geometry) as 
geometry_wkt from countries"</span>
+<p>Now set up the catalog:</p>
+<div class="highlight"><pre><span></span><code><span 
class="n">warehouse_path</span> <span class="o">=</span> <span 
class="s2">"/tmp/warehouse"</span>
+<span class="n">catalog</span> <span class="o">=</span> <span 
class="n">load_catalog</span><span class="p">(</span>
+    <span class="s2">"default"</span><span class="p">,</span>
+    <span class="o">**</span><span class="p">{</span>
+        <span class="s2">"type"</span><span class="p">:</span> <span 
class="s2">"sql"</span><span class="p">,</span>
+        <span class="s2">"uri"</span><span class="p">:</span> <span 
class="sa">f</span><span class="s2">"sqlite:///</span><span 
class="si">{</span><span class="n">warehouse_path</span><span 
class="si">}</span><span class="s2">/pyiceberg_catalog.db"</span><span 
class="p">,</span>
+        <span class="s2">"warehouse"</span><span class="p">:</span> <span 
class="sa">f</span><span class="s2">"file://</span><span 
class="si">{</span><span class="n">warehouse_path</span><span 
class="si">}</span><span class="s2">"</span><span class="p">,</span>
+    <span class="p">},</span>
 <span class="p">)</span>
-<span class="n">table_path</span> <span class="o">=</span> <span 
class="s2">"/tmp/delta_with_wkt"</span>
-<span class="n">write_deltalake</span><span class="p">(</span><span 
class="n">table_path</span><span class="p">,</span> <span 
class="n">df</span><span class="o">.</span><span 
class="n">to_pandas</span><span class="p">(),</span> <span 
class="n">mode</span><span class="o">=</span><span 
class="s2">"overwrite"</span><span class="p">)</span>
-</code></pre></div>
-<h2 id="read-delta-table-into-sedonadb">Read Delta table into SedonaDB<a 
class="headerlink" href="#read-delta-table-into-sedonadb" title="Permanent 
link">¶</a></h2>
-<p>Now read the Delta table back into a SedonaDB DataFrame.</p>
-<div class="highlight"><pre><span></span><code><span class="n">dt</span> <span 
class="o">=</span> <span class="n">DeltaTable</span><span 
class="p">(</span><span class="n">table_path</span><span class="p">)</span>
-<span class="n">arrow_table</span> <span class="o">=</span> <span 
class="n">dt</span><span class="o">.</span><span 
class="n">to_pyarrow_table</span><span class="p">()</span>
-<span class="n">df</span> <span class="o">=</span> <span 
class="n">sd</span><span class="o">.</span><span 
class="n">create_data_frame</span><span class="p">(</span><span 
class="n">arrow_table</span><span class="p">)</span>
-<span class="n">df</span><span class="o">.</span><span 
class="n">show</span><span class="p">()</span>
-</code></pre></div>
-<div 
class="codehilite"><pre><span></span><code>┌─────────────────────────────┬───────────────┬────────────────────────────────────────────────────┐
-│             name            ┆   continent   ┆                    
geometry_wkt                    │
-│             utf8            ┆      utf8     ┆                        utf8    
                    │
-╞═════════════════════════════╪═══════════════╪════════════════════════════════════════════════════╡
-│ Fiji                        ┆ Oceania       ┆ MULTIPOLYGON(((180 
-16.067132663642447,180 -16.55… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ United Republic of Tanzania ┆ Africa        ┆ POLYGON((33.90371119710453 
-0.9500000000000001,34… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Western Sahara              ┆ Africa        ┆ POLYGON((-8.665589565454809 
27.656425889592356,-8… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Canada                      ┆ North America ┆ 
MULTIPOLYGON(((-122.84000000000003 49.00000000000… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ United States of America    ┆ North America ┆ 
MULTIPOLYGON(((-122.84000000000003 49.00000000000… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Kazakhstan                  ┆ Asia          ┆ POLYGON((87.35997033076265 
49.21498078062912,86.5… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Uzbekistan                  ┆ Asia          ┆ POLYGON((55.96819135928291 
41.30864166926936,55.9… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Papua New Guinea            ┆ Oceania       ┆ 
MULTIPOLYGON(((141.00021040259185 -2.600151055515… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Indonesia                   ┆ Asia          ┆ 
MULTIPOLYGON(((141.00021040259185 -2.600151055515… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Argentina                   ┆ South America ┆ 
MULTIPOLYGON(((-68.63401022758323 -52.63637045887… │
-└─────────────────────────────┴───────────────┴────────────────────────────────────────────────────┘
 </code></pre></div>
+<p>Use SedonaDB to read a Parquet file containing country data into a 
DataFrame.</p>
+<div class="highlight"><pre><span></span><code><span class="n">sd</span> <span 
class="o">=</span> <span class="n">sedona</span><span class="o">.</span><span 
class="n">db</span><span class="o">.</span><span class="n">connect</span><span 
class="p">()</span>
 
-<p>Notice that the <code>geometry_wkt</code> column is <code>utf8</code>.  
It's not a geometry column.</p>
-<p>Let's convert the <code>geometry_wkt</code> column to a geometry column.</p>
-<div class="highlight"><pre><span></span><code><span class="n">df</span><span 
class="o">.</span><span class="n">to_view</span><span class="p">(</span><span 
class="s2">"my_table"</span><span class="p">,</span> <span 
class="kc">True</span><span class="p">)</span>
-<span class="n">res</span> <span class="o">=</span> <span 
class="n">sd</span><span class="o">.</span><span class="n">sql</span><span 
class="p">(</span><span class="s2">"""</span>
-<span class="s2">SELECT</span>
-<span class="s2">  name,</span>
-<span class="s2">  continent,</span>
-<span class="s2">  ST_GeomFromWKT(geometry_wkt) as geom</span>
-<span class="s2">from my_table</span>
-<span class="s2">"""</span><span class="p">)</span>
-<span class="n">res</span><span class="o">.</span><span 
class="n">show</span><span class="p">()</span>
+<span class="n">countries</span> <span class="o">=</span> <span 
class="n">sd</span><span class="o">.</span><span 
class="n">read_parquet</span><span class="p">(</span>
+    <span 
class="s2">"https://raw.githubusercontent.com/geoarrow/geoarrow-data/v0.2.0/natural-earth/files/natural-earth_countries_geo.parquet";</span>
+<span class="p">)</span>
 </code></pre></div>
-<div 
class="codehilite"><pre><span></span><code>┌─────────────────────────────┬───────────────┬────────────────────────────────────────────────────┐
-│             name            ┆   continent   ┆                        geom    
                    │
-│             utf8            ┆      utf8     ┆                      geometry  
                    │
-╞═════════════════════════════╪═══════════════╪════════════════════════════════════════════════════╡
-│ Fiji                        ┆ Oceania       ┆ MULTIPOLYGON(((180 
-16.067132663642447,180 -16.55… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ United Republic of Tanzania ┆ Africa        ┆ POLYGON((33.90371119710453 
-0.9500000000000001,34… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Western Sahara              ┆ Africa        ┆ POLYGON((-8.665589565454809 
27.656425889592356,-8… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Canada                      ┆ North America ┆ 
MULTIPOLYGON(((-122.84000000000003 49.00000000000… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ United States of America    ┆ North America ┆ 
MULTIPOLYGON(((-122.84000000000003 49.00000000000… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Kazakhstan                  ┆ Asia          ┆ POLYGON((87.35997033076265 
49.21498078062912,86.5… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Uzbekistan                  ┆ Asia          ┆ POLYGON((55.96819135928291 
41.30864166926936,55.9… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Papua New Guinea            ┆ Oceania       ┆ 
MULTIPOLYGON(((141.00021040259185 -2.600151055515… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Indonesia                   ┆ Asia          ┆ 
MULTIPOLYGON(((141.00021040259185 -2.600151055515… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Argentina                   ┆ South America ┆ 
MULTIPOLYGON(((-68.63401022758323 -52.63637045887… │
-└─────────────────────────────┴───────────────┴────────────────────────────────────────────────────┘
+<p>Convert all the columns to be plain strings because Iceberg doesn’t support 
geometry columns yet:</p>
+<div class="highlight"><pre><span></span><code><span 
class="n">countries</span><span class="o">.</span><span 
class="n">to_view</span><span class="p">(</span><span 
class="s2">"countries"</span><span class="p">,</span> <span 
class="kc">True</span><span class="p">)</span>
+<span class="n">df</span> <span class="o">=</span> <span 
class="n">sd</span><span class="o">.</span><span class="n">sql</span><span 
class="p">(</span><span class="s2">"""</span>
+<span class="s2">    select </span>
+<span class="s2">        ARROW_CAST(name, 'Utf8') as name, </span>
+<span class="s2">        ARROW_CAST(continent, 'Utf8') as continent, </span>
+<span class="s2">        ST_AsText(geometry) as geometry_wkt </span>
+<span class="s2">    from countries</span>
+<span class="s2">"""</span><span class="p">)</span>
 </code></pre></div>
-
-<p>Confirm the schema of the DataFrame.</p>
-<div class="highlight"><pre><span></span><code><span class="n">res</span><span 
class="o">.</span><span class="n">schema</span>
+<p>The explicit casting with <code>ARROW_CAST</code> is necessary because 
PyIceberg doesn't support string views.</p>
+<p>Check out the schema of the DataFrame:</p>
+<div class="highlight"><pre><span></span><code><span class="n">df</span><span 
class="o">.</span><span class="n">schema</span>
 </code></pre></div>
 <div class="codehilite"><pre><span></span><code>SedonaSchema with 3 fields:
   name: utf8&lt;Utf8&gt;
   continent: utf8&lt;Utf8&gt;
-  geom: geometry&lt;Wkb&gt;
+  geometry_wkt: utf8&lt;Utf8&gt;
 </code></pre></div>
 
-<h2 id="filter-countries-in-a-particular-geographic-region">Filter countries 
in a particular geographic region<a class="headerlink" 
href="#filter-countries-in-a-particular-geographic-region" title="Permanent 
link">¶</a></h2>
-<p>Now, let's grab some countries in the western portion of South America 
using a polygon region.</p>
-<p>SedonaDB can run these types of queries on geometric data.</p>
-<div class="highlight"><pre><span></span><code><span class="n">res</span> 
<span class="o">=</span> <span class="n">sd</span><span class="o">.</span><span 
class="n">sql</span><span class="p">(</span><span class="s2">"""</span>
+<p>Now create a new Iceberg table:</p>
+<div class="highlight"><pre><span></span><code><span 
class="kn">from</span><span class="w"> </span><span 
class="nn">pyiceberg.exceptions</span><span class="w"> </span><span 
class="kn">import</span> <span class="n">NamespaceAlreadyExistsError</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="n">catalog</span><span class="o">.</span><span 
class="n">create_namespace</span><span class="p">(</span><span 
class="s2">"default"</span><span class="p">)</span>
+<span class="k">except</span> <span 
class="n">NamespaceAlreadyExistsError</span><span class="p">:</span>
+    <span class="k">pass</span>
+
+<span class="k">if</span> <span class="n">catalog</span><span 
class="o">.</span><span class="n">table_exists</span><span 
class="p">(</span><span class="s2">"default.countries"</span><span 
class="p">):</span>
+    <span class="n">catalog</span><span class="o">.</span><span 
class="n">drop_table</span><span class="p">(</span><span 
class="s2">"default.countries"</span><span class="p">)</span>
+
+<span class="n">table</span> <span class="o">=</span> <span 
class="n">catalog</span><span class="o">.</span><span 
class="n">create_table</span><span class="p">(</span>
+    <span class="s2">"default.countries"</span><span class="p">,</span>
+    <span class="n">schema</span><span class="o">=</span><span 
class="n">pa</span><span class="o">.</span><span class="n">schema</span><span 
class="p">(</span><span class="n">df</span><span class="o">.</span><span 
class="n">schema</span><span class="p">),</span>
+<span class="p">)</span>
+</code></pre></div>
+<p>Append the DataFrame to the table:</p>
+<div class="highlight"><pre><span></span><code><span 
class="n">table</span><span class="o">.</span><span 
class="n">append</span><span class="p">(</span><span class="n">df</span><span 
class="o">.</span><span class="n">to_arrow_table</span><span 
class="p">())</span>
+</code></pre></div>
+<p>Now let’s see how to read the data with SedonaDB.</p>
+<h2 id="read-the-iceberg-table-into-sedonadb-via-arrow">Read the Iceberg table 
into SedonaDB via Arrow<a class="headerlink" 
href="#read-the-iceberg-table-into-sedonadb-via-arrow" title="Permanent 
link">¶</a></h2>
+<p>Here’s how to read an Iceberg table into a SedonaDB DataFrame:</p>
+<div class="highlight"><pre><span></span><code><span class="n">table</span> 
<span class="o">=</span> <span class="n">catalog</span><span 
class="o">.</span><span class="n">load_table</span><span 
class="p">(</span><span class="s2">"default.countries"</span><span 
class="p">)</span>
+<span class="n">arrow_table</span> <span class="o">=</span> <span 
class="n">table</span><span class="o">.</span><span class="n">scan</span><span 
class="p">()</span><span class="o">.</span><span class="n">to_arrow</span><span 
class="p">()</span>
+<span class="n">df</span> <span class="o">=</span> <span 
class="n">sd</span><span class="o">.</span><span 
class="n">create_data_frame</span><span class="p">(</span><span 
class="n">arrow_table</span><span class="p">)</span>
+</code></pre></div>
+<p>The Iceberg table is first exposed as an arrow table and then read into a 
SedonaDB DataFrame.</p>
+<p>Now view the contents of the SedonaDB DataFrame:</p>
+<div class="highlight"><pre><span></span><code><span class="n">df</span><span 
class="o">.</span><span class="n">to_view</span><span class="p">(</span><span 
class="s2">"my_table"</span><span class="p">,</span> <span 
class="kc">True</span><span class="p">)</span>
+<span class="n">res</span> <span class="o">=</span> <span 
class="n">sd</span><span class="o">.</span><span class="n">sql</span><span 
class="p">(</span><span class="s2">"""</span>
 <span class="s2">SELECT</span>
 <span class="s2">  name,</span>
 <span class="s2">  continent,</span>
 <span class="s2">  ST_GeomFromWKT(geometry_wkt) as geom</span>
-<span class="s2">FROM my_table</span>
-<span class="s2">WHERE ST_Intersects(</span>
-<span class="s2">  ST_GeomFromWKT(geometry_wkt),</span>
-<span class="s2">  ST_GeomFromWKT('POLYGON((-81 5, -75 5, -75 -56, -81 -56, 
-81 5))')</span>
-<span class="s2">)</span>
+<span class="s2">from my_table</span>
 <span class="s2">"""</span><span class="p">)</span>
-<span class="n">res</span><span class="o">.</span><span 
class="n">show</span><span class="p">()</span>
+<span class="n">res</span><span class="o">.</span><span 
class="n">show</span><span class="p">(</span><span class="mi">3</span><span 
class="p">)</span>
 </code></pre></div>
-<div 
class="codehilite"><pre><span></span><code>┌──────────┬───────────────┬───────────────────────────────────────────────────────────────────────┐
-│   name   ┆   continent   ┆                                  geom             
                    │
-│   utf8   ┆      utf8     ┆                                geometry           
                    │
-╞══════════╪═══════════════╪═══════════════════════════════════════════════════════════════════════╡
-│ Chile    ┆ South America ┆ MULTIPOLYGON(((-68.63401022758323 
-52.63637045887449,-68.63335000000… │
-├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Peru     ┆ South America ┆ POLYGON((-69.89363521999663 
-4.2981869441943275,-70.7947688463023 -4… │
-├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Colombia ┆ South America ┆ POLYGON((-66.87632585312258 
1.253360500489336,-67.0650481838525 1.13… │
-├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Ecuador  ┆ South America ┆ POLYGON((-75.37322323271385 
-0.1520317521204504,-75.23372270374195 -… │
-└──────────┴───────────────┴───────────────────────────────────────────────────────────────────────┘
+<div 
class="codehilite"><pre><span></span><code>┌─────────────────────────────┬───────────┬────────────────────────────────────────────────────────┐
+│             name            ┆ continent ┆                          geom      
                    │
+│             utf8            ┆    utf8   ┆                        geometry    
                    │
+╞═════════════════════════════╪═══════════╪════════════════════════════════════════════════════════╡
+│ Fiji                        ┆ Oceania   ┆ MULTIPOLYGON(((180 
-16.067132663642447,180 -16.555216… │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ United Republic of Tanzania ┆ Africa    ┆ POLYGON((33.90371119710453 
-0.9500000000000001,34.072… │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ Western Sahara              ┆ Africa    ┆ POLYGON((-8.665589565454809 
27.656425889592356,-8.665… │
+└─────────────────────────────┴───────────┴────────────────────────────────────────────────────────┘
 </code></pre></div>
 
-<h2 id="create-a-delta-lake-table-with-wkb">Create a Delta Lake table with 
WKB<a class="headerlink" href="#create-a-delta-lake-table-with-wkb" 
title="Permanent link">¶</a></h2>
-<p>You can also create a Delta table with WKB.</p>
-<p>WKB is binary, can be compressed more effectively than WKT, and results in 
smaller file sizes.</p>
-<p>The following example shows how to store the cities dataset in a Delta 
table with the geometry data stored as WKB.</p>
-<p>It also demonstrates how to add a <code>bbox</code> column to the Delta 
table, enabling more efficient filtering.</p>
+<p>You can see that the geom column contains the geometry type, which enables 
spatial analysis of the data.</p>
+<p>The geometry data is stored as WKT, which isn't as efficient as WKB.  The 
example that follows demonstrates how to store WKB in Iceberg tables.</p>
+<h2 id="future-iceberg-geographygeometry-work">Future Iceberg 
geography/geometry work<a class="headerlink" 
href="#future-iceberg-geographygeometry-work" title="Permanent link">¶</a></h2>
+<p>Iceberg added support for geometry and geography columns in the v3 spec.</p>
+<p>The Iceberg v3 implementation has not been released yet, and it the v3 spec 
hasn't started in Iceberg Rust.  Here is <a 
href="https://github.com/apache/iceberg-rust/issues/1884";>the open issue</a> to 
add geo support to Iceberg Rust.</p>
+<p>It’s best to manually persist the bbox information of files in your Iceberg 
table if you’re storing geometric data as WKT or WKB. </p>
+<h2 id="create-an-iceberg-table-with-wkb-and-bbox">Create an Iceberg table 
with WKB and bbox<a class="headerlink" 
href="#create-an-iceberg-table-with-wkb-and-bbox" title="Permanent 
link">¶</a></h2>
+<p>Let’s see how to create an Iceberg table with a WKB and bbox columns to 
allow for faster spatial analyses.</p>
+<p>Start by creating the cities DataFrame.</p>
 <div class="highlight"><pre><span></span><code><span class="n">cities</span> 
<span class="o">=</span> <span class="n">sd</span><span class="o">.</span><span 
class="n">read_parquet</span><span class="p">(</span>
     <span 
class="s2">"https://raw.githubusercontent.com/geoarrow/geoarrow-data/v0.2.0/natural-earth/files/natural-earth_cities_geo.parquet";</span>
 <span class="p">)</span>
 <span class="n">cities</span><span class="o">.</span><span 
class="n">to_view</span><span class="p">(</span><span 
class="s2">"cities"</span><span class="p">,</span> <span 
class="kc">True</span><span class="p">)</span>
 </code></pre></div>
+<p>Now write the DataFrame to an Iceberg table with bbox columns:</p>
 <div class="highlight"><pre><span></span><code><span class="n">df</span> <span 
class="o">=</span> <span class="n">sd</span><span class="o">.</span><span 
class="n">sql</span><span class="p">(</span><span class="s2">"""</span>
 <span class="s2">select </span>
-<span class="s2">    name, </span>
-<span class="s2">    ST_AsBinary(geometry) as geometry_wkb,</span>
-<span class="s2">    STRUCT(</span>
-<span class="s2">        ST_XMin(geometry) as xmin,</span>
-<span class="s2">        ST_YMin(geometry) as ymin,</span>
-<span class="s2">        ST_XMax(geometry) as xmax,</span>
-<span class="s2">        ST_YMax(geometry) as ymax</span>
-<span class="s2">    ) as bbox</span>
+<span class="s2">    ARROW_CAST(name, 'Utf8') as name, </span>
+<span class="s2">    ARROW_CAST(ST_AsBinary(geometry), 'Binary') as 
geometry_wkb,</span>
+<span class="s2">    ST_XMin(geometry) as bbox_xmin,</span>
+<span class="s2">    ST_YMin(geometry) as bbox_ymin,</span>
+<span class="s2">    ST_XMax(geometry) as bbox_xmax,</span>
+<span class="s2">    ST_YMax(geometry) as bbox_ymax</span>
 <span class="s2">from cities</span>
 <span class="s2">"""</span><span class="p">)</span>
-<span class="n">table_path</span> <span class="o">=</span> <span 
class="s2">"/tmp/delta_with_wkb"</span>
-<span class="n">write_deltalake</span><span class="p">(</span><span 
class="n">table_path</span><span class="p">,</span> <span 
class="n">df</span><span class="o">.</span><span 
class="n">to_pandas</span><span class="p">(),</span> <span 
class="n">mode</span><span class="o">=</span><span 
class="s2">"overwrite"</span><span class="p">,</span> <span 
class="n">schema_mode</span><span class="o">=</span><span 
class="s2">"overwrite"</span><span class="p">)</span>
 </code></pre></div>
-<p>Read the Delta table and filter it to only include cities in the eastern 
half of North America.</p>
-<div class="highlight"><pre><span></span><code><span class="n">dt</span> <span 
class="o">=</span> <span class="n">DeltaTable</span><span 
class="p">(</span><span class="n">table_path</span><span class="p">)</span>
-<span class="n">dataset</span> <span class="o">=</span> <span 
class="n">dt</span><span class="o">.</span><span 
class="n">to_pyarrow_dataset</span><span class="p">()</span>
-<span class="n">filter_expr</span> <span class="o">=</span> <span 
class="p">(</span>
-    <span class="p">(</span><span class="n">pc</span><span 
class="o">.</span><span class="n">field</span><span class="p">(</span><span 
class="s2">"bbox"</span><span class="p">,</span> <span 
class="s2">"xmax"</span><span class="p">)</span> <span class="o">&gt;=</span> 
<span class="o">-</span><span class="mf">97.0</span><span class="p">)</span>
-    <span class="o">&amp;</span> <span class="p">(</span><span 
class="n">pc</span><span class="o">.</span><span class="n">field</span><span 
class="p">(</span><span class="s2">"bbox"</span><span class="p">,</span> <span 
class="s2">"xmin"</span><span class="p">)</span> <span class="o">&lt;=</span> 
<span class="o">-</span><span class="mf">67.0</span><span class="p">)</span>
-    <span class="o">&amp;</span> <span class="p">(</span><span 
class="n">pc</span><span class="o">.</span><span class="n">field</span><span 
class="p">(</span><span class="s2">"bbox"</span><span class="p">,</span> <span 
class="s2">"ymax"</span><span class="p">)</span> <span class="o">&gt;=</span> 
<span class="mf">25.0</span><span class="p">)</span>
-    <span class="o">&amp;</span> <span class="p">(</span><span 
class="n">pc</span><span class="o">.</span><span class="n">field</span><span 
class="p">(</span><span class="s2">"bbox"</span><span class="p">,</span> <span 
class="s2">"ymin"</span><span class="p">)</span> <span class="o">&lt;=</span> 
<span class="mf">50.0</span><span class="p">)</span>
+<div class="highlight"><pre><span></span><code><span class="k">if</span> <span 
class="n">catalog</span><span class="o">.</span><span 
class="n">table_exists</span><span class="p">(</span><span 
class="s2">"default.cities"</span><span class="p">):</span>
+    <span class="n">catalog</span><span class="o">.</span><span 
class="n">drop_table</span><span class="p">(</span><span 
class="s2">"default.cities"</span><span class="p">)</span>
+
+<span class="n">table</span> <span class="o">=</span> <span 
class="n">catalog</span><span class="o">.</span><span 
class="n">create_table</span><span class="p">(</span>
+    <span class="s2">"default.cities"</span><span class="p">,</span>
+    <span class="n">schema</span><span class="o">=</span><span 
class="n">pa</span><span class="o">.</span><span class="n">schema</span><span 
class="p">(</span><span class="n">df</span><span class="o">.</span><span 
class="n">schema</span><span class="p">),</span>
 <span class="p">)</span>
-<span class="n">filtered_table</span> <span class="o">=</span> <span 
class="n">dataset</span><span class="o">.</span><span 
class="n">to_table</span><span class="p">(</span><span 
class="nb">filter</span><span class="o">=</span><span 
class="n">filter_expr</span><span class="p">)</span>
 </code></pre></div>
-<div class="highlight"><pre><span></span><code><span class="n">df</span> <span 
class="o">=</span> <span class="n">sd</span><span class="o">.</span><span 
class="n">create_data_frame</span><span class="p">(</span><span 
class="n">filtered_table</span><span class="o">.</span><span 
class="n">to_pandas</span><span class="p">())</span>
+<div class="highlight"><pre><span></span><code><span 
class="n">table</span><span class="o">.</span><span 
class="n">append</span><span class="p">(</span><span class="n">df</span><span 
class="o">.</span><span class="n">to_arrow_table</span><span 
class="p">())</span>
+</code></pre></div>
+<p>Load the <code>cities</code> table into a DataFrame with SedonaDB.</p>
+<div class="highlight"><pre><span></span><code><span class="n">table</span> 
<span class="o">=</span> <span class="n">catalog</span><span 
class="o">.</span><span class="n">load_table</span><span 
class="p">(</span><span class="s2">"default.cities"</span><span 
class="p">)</span>
+<span class="n">arrow_table</span> <span class="o">=</span> <span 
class="n">table</span><span class="o">.</span><span class="n">scan</span><span 
class="p">()</span><span class="o">.</span><span class="n">to_arrow</span><span 
class="p">()</span>
+<span class="n">df</span> <span class="o">=</span> <span 
class="n">sd</span><span class="o">.</span><span 
class="n">create_data_frame</span><span class="p">(</span><span 
class="n">arrow_table</span><span class="p">)</span>
+<span class="n">df</span><span class="o">.</span><span 
class="n">show</span><span class="p">()</span>
+</code></pre></div>
+<div 
class="codehilite"><pre><span></span><code>┌──────────────┬───────────────────────────┬─────────────┬─────────────┬─────────────┬─────────────┐
+│     name     ┆        geometry_wkb       ┆  bbox_xmin  ┆  bbox_ymin  ┆  
bbox_xmax  ┆  bbox_ymax  │
+│     utf8     ┆           binary          ┆   float64   ┆   float64   ┆   
float64   ┆   float64   │
+╞══════════════╪═══════════════════════════╪═════════════╪═════════════╪═════════════╪═════════════╡
+│ Vatican City ┆ 010100000054e57b4622e828… ┆  12.4533865 ┆  41.9032822 ┆  
12.4533865 ┆  41.9032822 │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ San Marino   ┆ 0101000000dcb122b42fe228… ┆  12.4417702 ┆  43.9360958 ┆  
12.4417702 ┆  43.9360958 │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ Vaduz        ┆ 01010000006dae9ae7880823… ┆   9.5166695 ┆  47.1337238 ┆   
9.5166695 ┆  47.1337238 │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ Lobamba      ┆ 01010000007bcb8b0233333f… ┆  31.1999971 ┆ -26.4666675 ┆  
31.1999971 ┆ -26.4666675 │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ Luxembourg   ┆ 0101000000c08d39741f8518… ┆   6.1300028 ┆  49.6116604 ┆   
6.1300028 ┆  49.6116604 │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ Palikir      ┆ 0101000000b237e796ccc463… ┆ 158.1499743 ┆   6.9166437 ┆ 
158.1499743 ┆   6.9166437 │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ Majuro       ┆ 010100000027ef2df6286c65… ┆ 171.3800002 ┆   7.1030043 ┆ 
171.3800002 ┆   7.1030043 │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ Funafuti     ┆ 0101000000be28e6c5ee6666… ┆ 179.2166471 ┆   -8.516652 ┆ 
179.2166471 ┆   -8.516652 │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ Melekeok     ┆ 0101000000749b70af0cd460… ┆ 134.6265485 ┆   7.4873962 ┆ 
134.6265485 ┆   7.4873962 │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ Bir Lehlou   ┆ 0101000000f4d3c963174e23… ┆  -9.6525222 ┆  26.1191667 ┆  
-9.6525222 ┆  26.1191667 │
+└──────────────┴───────────────────────────┴─────────────┴─────────────┴─────────────┴─────────────┘
 </code></pre></div>
-<div class="highlight"><pre><span></span><code><span class="n">df</span><span 
class="o">.</span><span class="n">to_view</span><span class="p">(</span><span 
class="s2">"us_east_cities"</span><span class="p">,</span> <span 
class="kc">True</span><span class="p">)</span>
+
+<div class="highlight"><pre><span></span><code><span 
class="n">arrow_table</span><span class="o">.</span><span 
class="n">schema</span>
+</code></pre></div>
+<div class="codehilite"><pre><span></span><code><span 
class="n">name</span><span class="o">:</span><span class="w"> </span><span 
class="n">string</span>
+<span class="n">geometry_wkb</span><span class="o">:</span><span class="w"> 
</span><span class="n">binary</span>
+<span class="n">bbox_xmin</span><span class="o">:</span><span class="w"> 
</span><span class="n">double</span>
+<span class="n">bbox_ymin</span><span class="o">:</span><span class="w"> 
</span><span class="n">double</span>
+<span class="n">bbox_xmax</span><span class="o">:</span><span class="w"> 
</span><span class="n">double</span>
+<span class="n">bbox_ymax</span><span class="o">:</span><span class="w"> 
</span><span class="n">double</span>
+</code></pre></div>
+
+<p>Read the Iceberg table and filter it to only include cities in the eastern 
half of North America.</p>
+<div class="highlight"><pre><span></span><code><span 
class="kn">from</span><span class="w"> </span><span 
class="nn">pyiceberg.expressions</span><span class="w"> </span><span 
class="kn">import</span> <span class="n">And</span><span class="p">,</span> 
<span class="n">GreaterThanOrEqual</span><span class="p">,</span> <span 
class="n">LessThanOrEqual</span>
+
+<span class="n">filter_expr</span> <span class="o">=</span> <span 
class="n">And</span><span class="p">(</span>
+    <span class="n">GreaterThanOrEqual</span><span class="p">(</span><span 
class="s2">"bbox_xmax"</span><span class="p">,</span> <span 
class="o">-</span><span class="mf">97.0</span><span class="p">),</span>
+    <span class="n">LessThanOrEqual</span><span class="p">(</span><span 
class="s2">"bbox_xmin"</span><span class="p">,</span> <span 
class="o">-</span><span class="mf">67.0</span><span class="p">),</span>
+    <span class="n">GreaterThanOrEqual</span><span class="p">(</span><span 
class="s2">"bbox_ymax"</span><span class="p">,</span> <span 
class="mf">25.0</span><span class="p">),</span>
+    <span class="n">LessThanOrEqual</span><span class="p">(</span><span 
class="s2">"bbox_ymin"</span><span class="p">,</span> <span 
class="mf">50.0</span><span class="p">),</span>
+<span class="p">)</span>
+
+<span class="n">arrow_table</span> <span class="o">=</span> <span 
class="n">table</span><span class="o">.</span><span class="n">scan</span><span 
class="p">(</span><span class="n">row_filter</span><span 
class="o">=</span><span class="n">filter_expr</span><span 
class="p">)</span><span class="o">.</span><span class="n">to_arrow</span><span 
class="p">()</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><span class="n">df</span> <span 
class="o">=</span> <span class="n">sd</span><span class="o">.</span><span 
class="n">create_data_frame</span><span class="p">(</span><span 
class="n">arrow_table</span><span class="p">)</span>
+
+<span class="n">df</span><span class="o">.</span><span 
class="n">to_view</span><span class="p">(</span><span 
class="s2">"us_east_cities"</span><span class="p">,</span> <span 
class="kc">True</span><span class="p">)</span>
 <span class="n">sd</span><span class="o">.</span><span 
class="n">sql</span><span class="p">(</span><span class="s2">"select name, 
ST_GeomFromWKB(geometry_wkb) as geom from us_east_cities"</span><span 
class="p">)</span><span class="o">.</span><span class="n">show</span><span 
class="p">()</span>
 </code></pre></div>
 <div 
class="codehilite"><pre><span></span><code>┌──────────────────┬──────────────────────────────────────────────┐
@@ -1654,7 +1703,7 @@
     <span class="md-icon" title="Last update">
       <svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 24 24"><path d="M21 
13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 
0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 
2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 
9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 
7.5 7.1 7.9l-.1.2z"></path></svg>
     </span>
-    <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-datetime" title="November 3, 2025 20:16:13 
UTC">November 3, 2025 20:16:13</span>
+    <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-datetime" title="December 14, 2025 06:02:44 
UTC">December 14, 2025 06:02:44</span>
   </span>
 
     
@@ -1690,7 +1739,7 @@
       <nav class="md-footer__inner md-grid" aria-label="Footer">
         
           
-          <a href="../crs-examples/" class="md-footer__link 
md-footer__link--prev" aria-label="Previous: CRS Examples">
+          <a href="../delta-lake/" class="md-footer__link 
md-footer__link--prev" aria-label="Previous: Delta Lake">
             <div class="md-footer__button md-icon">
               
               <svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 24 
24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 
11z"></path></svg>
@@ -1700,7 +1749,7 @@
                 Previous
               </span>
               <div class="md-ellipsis">
-                CRS Examples
+                Delta Lake
               </div>
             </div>
           </a>
diff --git a/latest-snapshot/index.html b/latest-snapshot/index.html
index 8549f82b..b82189b3 100644
--- a/latest-snapshot/index.html
+++ b/latest-snapshot/index.html
@@ -1153,6 +1153,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="working-with-parquet-files/" class="md-nav__link">
         
diff --git a/latest-snapshot/overture-examples/index.html 
b/latest-snapshot/overture-examples/index.html
index fddee354..8ed3f81d 100644
--- a/latest-snapshot/overture-examples/index.html
+++ b/latest-snapshot/overture-examples/index.html
@@ -1128,6 +1128,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../working-with-parquet-files/" class="md-nav__link">
         
diff --git a/latest-snapshot/programming-guide/index.html 
b/latest-snapshot/programming-guide/index.html
index e1c0b8c3..8fa4d536 100644
--- a/latest-snapshot/programming-guide/index.html
+++ b/latest-snapshot/programming-guide/index.html
@@ -1171,6 +1171,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../working-with-parquet-files/" class="md-nav__link">
         
diff --git a/latest-snapshot/quickstart-python/index.html 
b/latest-snapshot/quickstart-python/index.html
index b801f9e4..86048d4c 100644
--- a/latest-snapshot/quickstart-python/index.html
+++ b/latest-snapshot/quickstart-python/index.html
@@ -1115,6 +1115,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../working-with-parquet-files/" class="md-nav__link">
         
diff --git 
a/latest-snapshot/reference/functions/__pycache__/_matplotlib_defaults.cpython-314.pyc
 
b/latest-snapshot/reference/functions/__pycache__/_matplotlib_defaults.cpython-314.pyc
index 94fab724..fd815e7b 100644
Binary files 
a/latest-snapshot/reference/functions/__pycache__/_matplotlib_defaults.cpython-314.pyc
 and 
b/latest-snapshot/reference/functions/__pycache__/_matplotlib_defaults.cpython-314.pyc
 differ
diff --git 
a/latest-snapshot/reference/functions/__pycache__/_render_meta.cpython-314.pyc 
b/latest-snapshot/reference/functions/__pycache__/_render_meta.cpython-314.pyc
index fd9a11ca..fe097a1c 100644
Binary files 
a/latest-snapshot/reference/functions/__pycache__/_render_meta.cpython-314.pyc 
and 
b/latest-snapshot/reference/functions/__pycache__/_render_meta.cpython-314.pyc 
differ
diff --git a/latest-snapshot/reference/functions/index.html 
b/latest-snapshot/reference/functions/index.html
index f1f135fc..4cf4f308 100644
--- a/latest-snapshot/reference/functions/index.html
+++ b/latest-snapshot/reference/functions/index.html
@@ -1029,6 +1029,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../../working-with-parquet-files/" class="md-nav__link">
         
@@ -1404,7 +1432,7 @@ input geometry is less than or equal to a specified 
distance.</p>
     <span class="md-icon" title="Last update">
       <svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 24 24"><path d="M21 
13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 
0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 
2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 
9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 
7.5 7.1 7.9l-.1.2z"></path></svg>
     </span>
-    <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-datetime" title="December 14, 2025 01:32:00 
UTC">December 14, 2025 01:32:00</span>
+    <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-datetime" title="December 14, 2025 06:07:03 
UTC">December 14, 2025 06:07:03</span>
   </span>
 
     
diff --git a/latest-snapshot/reference/functions/st_analyze_agg/index.html 
b/latest-snapshot/reference/functions/st_analyze_agg/index.html
index de004a31..f4a7bcc6 100644
--- a/latest-snapshot/reference/functions/st_analyze_agg/index.html
+++ b/latest-snapshot/reference/functions/st_analyze_agg/index.html
@@ -1029,6 +1029,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../../../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../../../working-with-parquet-files/" class="md-nav__link">
         
@@ -1382,7 +1410,7 @@ geometries. The fields of its struct return type are:</p>
     <span class="md-icon" title="Last update">
       <svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 24 24"><path d="M21 
13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 
0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 
2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 
9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 
7.5 7.1 7.9l-.1.2z"></path></svg>
     </span>
-    <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-datetime" title="December 14, 2025 01:32:00 
UTC">December 14, 2025 01:32:00</span>
+    <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-datetime" title="December 14, 2025 06:07:03 
UTC">December 14, 2025 06:07:03</span>
   </span>
 
     
diff --git a/latest-snapshot/reference/functions/st_buffer/index.html 
b/latest-snapshot/reference/functions/st_buffer/index.html
index bc522e14..96694982 100644
--- a/latest-snapshot/reference/functions/st_buffer/index.html
+++ b/latest-snapshot/reference/functions/st_buffer/index.html
@@ -1029,6 +1029,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../../../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../../../working-with-parquet-files/" class="md-nav__link">
         
@@ -1380,7 +1408,7 @@ input geometry is less than or equal to a specified 
distance.</p>
     <span class="md-icon" title="Last update">
       <svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 24 24"><path d="M21 
13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 
0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 
2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 
9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 
7.5 7.1 7.9l-.1.2z"></path></svg>
     </span>
-    <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-datetime" title="December 14, 2025 01:32:00 
UTC">December 14, 2025 01:32:00</span>
+    <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-datetime" title="December 14, 2025 06:07:03 
UTC">December 14, 2025 06:07:03</span>
   </span>
 
     
diff --git a/latest-snapshot/reference/functions/st_intersection/index.html 
b/latest-snapshot/reference/functions/st_intersection/index.html
index 31ac0685..79288ffa 100644
--- a/latest-snapshot/reference/functions/st_intersection/index.html
+++ b/latest-snapshot/reference/functions/st_intersection/index.html
@@ -1029,6 +1029,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../../../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../../../working-with-parquet-files/" class="md-nav__link">
         
@@ -1362,7 +1390,7 @@
     <span class="md-icon" title="Last update">
       <svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 24 24"><path d="M21 
13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 
0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 
2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 
9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 
7.5 7.1 7.9l-.1.2z"></path></svg>
     </span>
-    <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-datetime" title="December 14, 2025 01:32:00 
UTC">December 14, 2025 01:32:00</span>
+    <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-datetime" title="December 14, 2025 06:07:03 
UTC">December 14, 2025 06:07:03</span>
   </span>
 
     
diff --git a/latest-snapshot/reference/python/index.html 
b/latest-snapshot/reference/python/index.html
index 105afbc2..2c7183ee 100644
--- a/latest-snapshot/reference/python/index.html
+++ b/latest-snapshot/reference/python/index.html
@@ -1455,6 +1455,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../../working-with-parquet-files/" class="md-nav__link">
         
diff --git a/latest-snapshot/reference/sql-joins/index.html 
b/latest-snapshot/reference/sql-joins/index.html
index d747418d..503d4758 100644
--- a/latest-snapshot/reference/sql-joins/index.html
+++ b/latest-snapshot/reference/sql-joins/index.html
@@ -1179,6 +1179,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../../working-with-parquet-files/" class="md-nav__link">
         
diff --git a/latest-snapshot/reference/sql/index.html 
b/latest-snapshot/reference/sql/index.html
index 33609c76..343c72f0 100644
--- a/latest-snapshot/reference/sql/index.html
+++ b/latest-snapshot/reference/sql/index.html
@@ -2140,6 +2140,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../../working-with-parquet-files/" class="md-nav__link">
         
diff --git a/latest-snapshot/search/search_index.json 
b/latest-snapshot/search/search_index.json
index 6dd43057..8a4dc02d 100644
--- a/latest-snapshot/search/search_index.json
+++ b/latest-snapshot/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"Introducing
 SedonaDB","text":"<p>SedonaDB is an open-source single-node analytical 
database engine with geospatial as a first-class citizen. It aims to deliver 
the fastest spatial analytics query speed and the most comprehensive function 
coverage available.</p> <p>SedonaDB is perfect for process [...]
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"Introducing
 SedonaDB","text":"<p>SedonaDB is an open-source single-node analytical 
database engine with geospatial as a first-class citizen. It aims to deliver 
the fastest spatial analytics query speed and the most comprehensive function 
coverage available.</p> <p>SedonaDB is perfect for process [...]
\ No newline at end of file
diff --git a/latest-snapshot/sitemap.xml b/latest-snapshot/sitemap.xml
index 496709b9..edf9b6f9 100644
--- a/latest-snapshot/sitemap.xml
+++ b/latest-snapshot/sitemap.xml
@@ -20,6 +20,10 @@
          
<loc>https://sedona.apache.org/sedonadb/latest/geopandas-interop/</loc>
          <lastmod>2025-12-14</lastmod>
     </url>
+    <url>
+         <loc>https://sedona.apache.org/sedonadb/latest/iceberg/</loc>
+         <lastmod>2025-12-14</lastmod>
+    </url>
     <url>
          
<loc>https://sedona.apache.org/sedonadb/latest/overture-examples/</loc>
          <lastmod>2025-12-14</lastmod>
diff --git a/latest-snapshot/sitemap.xml.gz b/latest-snapshot/sitemap.xml.gz
index 13cf3084..e5427eb8 100644
Binary files a/latest-snapshot/sitemap.xml.gz and 
b/latest-snapshot/sitemap.xml.gz differ
diff --git a/latest-snapshot/working-with-parquet-files/index.html 
b/latest-snapshot/working-with-parquet-files/index.html
index d369d490..9c323691 100644
--- a/latest-snapshot/working-with-parquet-files/index.html
+++ b/latest-snapshot/working-with-parquet-files/index.html
@@ -10,7 +10,7 @@
         <link rel="canonical" 
href="https://sedona.apache.org/sedonadb/latest/working-with-parquet-files/";>
       
       
-        <link rel="prev" href="../delta-lake/">
+        <link rel="prev" href="../iceberg/">
       
       
         <link rel="next" href="../working-with-sql-sedonadb/">
@@ -1046,6 +1046,34 @@
                 
   
   
+  
+  
+    <li class="md-nav__item">
+      <a href="../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
     
   
   
@@ -1531,7 +1559,7 @@
       <nav class="md-footer__inner md-grid" aria-label="Footer">
         
           
-          <a href="../delta-lake/" class="md-footer__link 
md-footer__link--prev" aria-label="Previous: Delta Lake">
+          <a href="../iceberg/" class="md-footer__link md-footer__link--prev" 
aria-label="Previous: Iceberg">
             <div class="md-footer__button md-icon">
               
               <svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 24 
24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 
11z"></path></svg>
@@ -1541,7 +1569,7 @@
                 Previous
               </span>
               <div class="md-ellipsis">
-                Delta Lake
+                Iceberg
               </div>
             </div>
           </a>
diff --git a/latest-snapshot/working-with-sql-sedonadb/index.html 
b/latest-snapshot/working-with-sql-sedonadb/index.html
index 77dfa238..537b5caa 100644
--- a/latest-snapshot/working-with-sql-sedonadb/index.html
+++ b/latest-snapshot/working-with-sql-sedonadb/index.html
@@ -1048,6 +1048,34 @@
   
   
   
+    <li class="md-nav__item">
+      <a href="../iceberg/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Iceberg
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
     <li class="md-nav__item">
       <a href="../working-with-parquet-files/" class="md-nav__link">
         

Reply via email to