You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by gi...@apache.org on 2026/05/28 15:04:56 UTC

(datafusion-java) 01/01: Publish built docs triggered by bbd700a854969b7ef6c148f0e384c57984d559bc

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

github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/datafusion-java.git

commit 39d9842ba0b7a43bb7fd66226752a7e464530a80
Author: github-actions[bot] <gi...@users.noreply.github.com>
AuthorDate: Thu May 28 15:04:47 2026 +0000

    Publish built docs triggered by bbd700a854969b7ef6c148f0e384c57984d559bc
---
 .doctrees/contributor-guide/code-style.doctree     | Bin 7414 -> 9269 bytes
 .doctrees/contributor-guide/development.doctree    | Bin 30157 -> 30949 bytes
 .doctrees/environment.pickle                       | Bin 52184 -> 52955 bytes
 .doctrees/index.doctree                            | Bin 9747 -> 9755 bytes
 .doctrees/user-guide/index.doctree                 | Bin 7338 -> 7346 bytes
 .doctrees/user-guide/installation.doctree          | Bin 10379 -> 14242 bytes
 _sources/contributor-guide/code-style.md.txt       |  28 +-
 _sources/contributor-guide/development.md.txt      |   6 +-
 _sources/index.md.txt                              |   4 +-
 _sources/user-guide/index.md.txt                   |   4 +-
 _sources/user-guide/installation.md.txt            |  44 +++-
 api/allclasses-index.html                          | 112 ++++++--
 api/allpackages-index.html                         |   6 +-
 api/help-doc.html                                  |  11 +-
 api/index-all.html                                 | 275 ++++++++++++++++++-
 api/index.html                                     |   8 +-
 api/member-search-index.js                         |   2 +-
 api/org/apache/datafusion/ArrowReadOptions.html    |   6 +-
 api/org/apache/datafusion/AvroReadOptions.html     |   6 +-
 ...tions.html => CacheManagerOptions.Builder.html} | 132 +++++-----
 ...LibraryLoader.html => CacheManagerOptions.html} |  71 +++--
 api/org/apache/datafusion/ColumnarValue.Array.html |   6 +-
 .../apache/datafusion/ColumnarValue.Scalar.html    |   6 +-
 api/org/apache/datafusion/ColumnarValue.html       |   6 +-
 .../apache/datafusion/ConfigurationException.html  | 167 ++++++++++++
 api/org/apache/datafusion/CsvReadOptions.html      |   6 +-
 api/org/apache/datafusion/CsvWriteOptions.html     |   6 +-
 api/org/apache/datafusion/DataFrame.html           | 291 +++++++++++++++++++--
 api/org/apache/datafusion/DataFusionException.html | 177 +++++++++++++
 api/org/apache/datafusion/ExecutionException.html  | 172 ++++++++++++
 api/org/apache/datafusion/FileCompressionType.html |   6 +-
 api/org/apache/datafusion/IoException.html         | 174 ++++++++++++
 api/org/apache/datafusion/JoinType.html            |   6 +-
 api/org/apache/datafusion/JsonWriteOptions.html    |   6 +-
 .../{UnnestOptions.html => MemoryUsage.html}       |  84 +++---
 api/org/apache/datafusion/NativeLibraryLoader.html |  18 +-
 api/org/apache/datafusion/NdJsonReadOptions.html   |   6 +-
 .../apache/datafusion/NotImplementedException.html | 167 ++++++++++++
 .../datafusion/ObjectStoreOptions.Gcs.Builder.html |   6 +-
 .../apache/datafusion/ObjectStoreOptions.Gcs.html  |   6 +-
 .../ObjectStoreOptions.Http.Builder.html           |   6 +-
 .../apache/datafusion/ObjectStoreOptions.Http.html |   6 +-
 .../datafusion/ObjectStoreOptions.S3.Builder.html  |   6 +-
 .../apache/datafusion/ObjectStoreOptions.S3.html   |   6 +-
 api/org/apache/datafusion/ObjectStoreOptions.html  |   6 +-
 api/org/apache/datafusion/ParquetReadOptions.html  |   6 +-
 api/org/apache/datafusion/ParquetWriteOptions.html |   6 +-
 api/org/apache/datafusion/PlanException.html       | 167 ++++++++++++
 .../datafusion/ResourcesExhaustedException.html    | 170 ++++++++++++
 .../{CsvReadOptions.html => RuntimeStats.html}     | 237 +++++++++++------
 api/org/apache/datafusion/ScalarFunction.html      |   6 +-
 api/org/apache/datafusion/ScalarFunctionArgs.html  |   6 +-
 api/org/apache/datafusion/ScalarUdf.html           |   6 +-
 api/org/apache/datafusion/SessionContext.html      | 127 ++++++++-
 .../apache/datafusion/SessionContextBuilder.html   | 102 ++++++--
 api/org/apache/datafusion/SimpleTableProvider.html |   6 +-
 .../datafusion/{ScalarUdf.html => SortExpr.html}   | 157 +++++------
 api/org/apache/datafusion/TableProvider.html       |   6 +-
 api/org/apache/datafusion/UnnestOptions.html       |   6 +-
 api/org/apache/datafusion/Volatility.html          |   6 +-
 .../datafusion/class-use/ArrowReadOptions.html     |   6 +-
 .../datafusion/class-use/AvroReadOptions.html      |   6 +-
 ...ility.html => CacheManagerOptions.Builder.html} |  45 ++--
 .../{ScalarUdf.html => CacheManagerOptions.html}   |  34 ++-
 .../datafusion/class-use/ColumnarValue.Array.html  |   6 +-
 .../datafusion/class-use/ColumnarValue.Scalar.html |   6 +-
 .../apache/datafusion/class-use/ColumnarValue.html |   6 +-
 ...leProvider.html => ConfigurationException.html} |  14 +-
 .../datafusion/class-use/CsvReadOptions.html       |   6 +-
 .../datafusion/class-use/CsvWriteOptions.html      |   6 +-
 api/org/apache/datafusion/class-use/DataFrame.html | 197 +++++++++++---
 .../datafusion/class-use/DataFusionException.html  | 117 +++++++++
 ...eTableProvider.html => ExecutionException.html} |  14 +-
 .../datafusion/class-use/FileCompressionType.html  |   6 +-
 .../{SimpleTableProvider.html => IoException.html} |  14 +-
 api/org/apache/datafusion/class-use/JoinType.html  |   6 +-
 .../datafusion/class-use/JsonWriteOptions.html     |   6 +-
 .../{SessionContext.html => MemoryUsage.html}      |  25 +-
 .../datafusion/class-use/NativeLibraryLoader.html  |   6 +-
 .../datafusion/class-use/NdJsonReadOptions.html    |   6 +-
 ...aryLoader.html => NotImplementedException.html} |  14 +-
 .../class-use/ObjectStoreOptions.Gcs.Builder.html  |   6 +-
 .../class-use/ObjectStoreOptions.Gcs.html          |   6 +-
 .../class-use/ObjectStoreOptions.Http.Builder.html |   6 +-
 .../class-use/ObjectStoreOptions.Http.html         |   6 +-
 .../class-use/ObjectStoreOptions.S3.Builder.html   |   6 +-
 .../class-use/ObjectStoreOptions.S3.html           |   6 +-
 .../datafusion/class-use/ObjectStoreOptions.html   |   6 +-
 .../datafusion/class-use/ParquetReadOptions.html   |   6 +-
 .../datafusion/class-use/ParquetWriteOptions.html  |   6 +-
 ...SimpleTableProvider.html => PlanException.html} |  14 +-
 ...vider.html => ResourcesExhaustedException.html} |  14 +-
 .../{SessionContext.html => RuntimeStats.html}     |  25 +-
 .../datafusion/class-use/ScalarFunction.html       |   6 +-
 .../datafusion/class-use/ScalarFunctionArgs.html   |   6 +-
 api/org/apache/datafusion/class-use/ScalarUdf.html |   6 +-
 .../datafusion/class-use/SessionContext.html       |   6 +-
 .../class-use/SessionContextBuilder.html           |  57 ++--
 .../datafusion/class-use/SimpleTableProvider.html  |   6 +-
 .../{UnnestOptions.html => SortExpr.html}          |  42 +--
 .../apache/datafusion/class-use/TableProvider.html |   6 +-
 .../apache/datafusion/class-use/UnnestOptions.html |   6 +-
 .../apache/datafusion/class-use/Volatility.html    |   6 +-
 api/org/apache/datafusion/internal/JniBridge.html  |   6 +-
 .../datafusion/internal/class-use/JniBridge.html   |   6 +-
 .../datafusion/internal/package-summary.html       |   6 +-
 .../apache/datafusion/internal/package-tree.html   |   6 +-
 .../apache/datafusion/internal/package-use.html    |   6 +-
 api/org/apache/datafusion/package-summary.html     | 108 ++++++--
 api/org/apache/datafusion/package-tree.html        |  33 ++-
 api/org/apache/datafusion/package-use.html         |  59 +++--
 .../apache/datafusion/proto/SchemaConverter.html   |   6 +-
 .../proto/class-use/SchemaConverter.html           |   6 +-
 .../apache/datafusion/proto/package-summary.html   |   6 +-
 api/org/apache/datafusion/proto/package-tree.html  |   6 +-
 api/org/apache/datafusion/proto/package-use.html   |   6 +-
 api/overview-summary.html                          |   6 +-
 api/overview-tree.html                             |  33 ++-
 api/serialized-form.html                           | 141 ++++++++++
 api/tag-search-index.js                            |   2 +-
 api/type-search-index.js                           |   2 +-
 contributor-guide/code-style.html                  |  25 +-
 contributor-guide/development.html                 |   5 +-
 index.html                                         |   4 +-
 searchindex.js                                     |   2 +-
 user-guide/index.html                              |   4 +-
 user-guide/installation.html                       |  45 +++-
 127 files changed, 3525 insertions(+), 879 deletions(-)

diff --git a/.doctrees/contributor-guide/code-style.doctree b/.doctrees/contributor-guide/code-style.doctree
index c780a23..69f8fa3 100644
Binary files a/.doctrees/contributor-guide/code-style.doctree and b/.doctrees/contributor-guide/code-style.doctree differ
diff --git a/.doctrees/contributor-guide/development.doctree b/.doctrees/contributor-guide/development.doctree
index 62d1525..29e2ec2 100644
Binary files a/.doctrees/contributor-guide/development.doctree and b/.doctrees/contributor-guide/development.doctree differ
diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle
index 3a9dc0f..4fe0c86 100644
Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ
diff --git a/.doctrees/index.doctree b/.doctrees/index.doctree
index 9ba7a6a..d6a1571 100644
Binary files a/.doctrees/index.doctree and b/.doctrees/index.doctree differ
diff --git a/.doctrees/user-guide/index.doctree b/.doctrees/user-guide/index.doctree
index 19d493e..01fa3a5 100644
Binary files a/.doctrees/user-guide/index.doctree and b/.doctrees/user-guide/index.doctree differ
diff --git a/.doctrees/user-guide/installation.doctree b/.doctrees/user-guide/installation.doctree
index d1481fb..cf0a156 100644
Binary files a/.doctrees/user-guide/installation.doctree and b/.doctrees/user-guide/installation.doctree differ
diff --git a/_sources/contributor-guide/code-style.md.txt b/_sources/contributor-guide/code-style.md.txt
index 3c6020c..50b88e2 100644
--- a/_sources/contributor-guide/code-style.md.txt
+++ b/_sources/contributor-guide/code-style.md.txt
@@ -19,28 +19,38 @@ under the License.
 
 # Code style
 
+To apply Java + Rust formatters in one go:
+
+```sh
+make format
+```
+
+CI verifies formatting, lint, and license headers on every PR via the
+**Lint** and **RAT License Check** workflows.
+
 ## Java
 
-Run the Spotless formatter before committing. CI fails the build if
-formatting drifts:
+Spotless is configured in the parent `pom.xml`. The CI `fmt-check` job
+runs:
 
 ```sh
-./mvnw spotless:apply
+./mvnw spotless:check
 ```
 
 ## Rust
 
-Run inside `native/`:
+The CI `clippy` job runs (from `native/`):
 
 ```sh
-cargo fmt
+cargo fmt --all -- --check
 cargo clippy --all-targets -- -D warnings
 ```
 
-`-D warnings` turns clippy warnings into build failures, matching CI.
+`-D warnings` escalates every clippy warning to a build failure.
 
 ## License headers
 
-New source files need the Apache 2.0 license header. Apache RAT enforces
-this during `verify` — `./mvnw verify` will fail if a tracked file is
-missing the header.
+Every tracked source file needs the Apache 2.0 license header. The
+**RAT License Check** workflow runs `./mvnw -N apache-rat:check` on every
+PR (including docs-only changes). Exclusions live in
+`dev/release/rat_exclude_files.txt`.
diff --git a/_sources/contributor-guide/development.md.txt b/_sources/contributor-guide/development.md.txt
index 8139ac7..984d77c 100644
--- a/_sources/contributor-guide/development.md.txt
+++ b/_sources/contributor-guide/development.md.txt
@@ -48,6 +48,9 @@ cd native && cargo build
 
 The native library must be built before running JVM tests.
 
+Before pushing, run `make format` to apply the Java + Rust formatters in
+place. CI verifies formatting, clippy, and license headers on every PR.
+
 The first build in a fresh checkout reaches out to
 `raw.githubusercontent.com` to fetch the DataFusion `.proto` files used
 to generate the `datafusion-proto` Java classes. Subsequent builds are
@@ -80,7 +83,8 @@ The repository is a multi-module Maven build:
   cannot fall out of sync with the API.
 - `native/` — Rust crate (JNI + Arrow C Data Interface).
 - `proto/` — Protobuf definitions shared between Java and Rust.
-- `Makefile` — top-level build orchestration (`make test`, `make tpch-data`).
+- `Makefile` — top-level build orchestration (`make test`, `make format`,
+  `make tpch-data`).
 - `mvnw`, `mvnw.cmd` — bundled Maven wrapper.
 - `docs/` — Sphinx documentation source and build scripts.
 
diff --git a/_sources/index.md.txt b/_sources/index.md.txt
index 0ee9519..851ab10 100644
--- a/_sources/index.md.txt
+++ b/_sources/index.md.txt
@@ -25,8 +25,8 @@ return to the JVM as [Apache Arrow] batches via the Arrow C Data Interface.
 [Apache DataFusion]: https://datafusion.apache.org/
 [Apache Arrow]: https://arrow.apache.org/
 
-> Early development: no releases yet, API will change. Bug reports and
-> contributions welcome.
+> Early development: the API will change between releases. Bug reports
+> and contributions welcome.
 
 ## Quickstart
 
diff --git a/_sources/user-guide/index.md.txt b/_sources/user-guide/index.md.txt
index 85c2bed..a8d42be 100644
--- a/_sources/user-guide/index.md.txt
+++ b/_sources/user-guide/index.md.txt
@@ -42,5 +42,5 @@ table-provider
 api-reference
 ```
 
-> Early development: no releases yet, API will change. Bug reports and
-> contributions welcome.
+> Early development: the API will change between releases. Bug reports
+> and contributions welcome.
diff --git a/_sources/user-guide/installation.md.txt b/_sources/user-guide/installation.md.txt
index 3141355..83e5d73 100644
--- a/_sources/user-guide/installation.md.txt
+++ b/_sources/user-guide/installation.md.txt
@@ -19,18 +19,49 @@ under the License.
 
 # Installation
 
-Apache DataFusion Java has not yet published a release. Until the first
-release, the only way to use the library is to build from source.
+Apache DataFusion Java is published to
+[Maven Central](https://central.sonatype.com/artifact/org.apache.datafusion/datafusion-java).
+The JAR bundles the native library for Linux (x86_64, aarch64) and macOS
+(x86_64, aarch64), so no separate native install is required on those
+platforms. Windows is not yet supported by the published JAR; Windows
+users need to build from source.
 
 ## Requirements
 
-- **JDK 17 or newer.** Set `JAVA_HOME` to point at it.
-- **Rust toolchain (stable).** Install via [rustup].
+- **JDK 17 or newer.**
+- Arrow needs access to `java.nio` internals. Add this to the JVM
+  arguments of whatever runs your code:
 
-[rustup]: https://rustup.rs/
+  ```
+  --add-opens=java.base/java.nio=ALL-UNNAMED
+  ```
+
+## Maven
+
+```xml
+<dependency>
+    <groupId>org.apache.datafusion</groupId>
+    <artifactId>datafusion-java</artifactId>
+    <version>0.1.0</version>
+</dependency>
+```
+
+## Gradle
+
+```kotlin
+dependencies {
+    implementation("org.apache.datafusion:datafusion-java:0.1.0")
+}
+```
+
+Arrow (`arrow-vector`, `arrow-c-data`, `arrow-memory-netty`) is pulled in
+transitively — you do not need to declare it yourself.
 
 ## Build from source
 
+If you are on Windows, on another platform without a bundled native
+library, or want to run against unreleased changes, build from source:
+
 ```sh
 git clone https://github.com/apache/datafusion-java.git
 cd datafusion-java
@@ -41,6 +72,9 @@ make test
 against it. The native library must be built before the JVM tests can
 run.
 
+Building from source requires a stable Rust toolchain (install via
+[rustup](https://rustup.rs/)) in addition to the JDK.
+
 The first build in a fresh checkout reaches out to
 `raw.githubusercontent.com` to fetch the DataFusion `.proto` files used to
 generate the `datafusion-proto` Java classes. Subsequent builds are
diff --git a/api/allclasses-index.html b/api/allclasses-index.html
index 499924d..3daa1b3 100644
--- a/api/allclasses-index.html
+++ b/api/allclasses-index.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>All Classes and Interfaces (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>All Classes and Interfaces (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="class index">
 <meta name="generator" content="javadoc/AllClassesIndexWriter">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
@@ -56,7 +56,7 @@ loadScripts(document, 'script');</script>
 <h1 title="All Classes and Interfaces" class="title">All Classes and Interfaces</h1>
 </div>
 <div id="all-classes-table">
-<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="all-classes-table-tab0" role="tab" aria-selected="true" aria-controls="all-classes-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="all-classes-table-tab1" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(eve [...]
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="all-classes-table-tab0" role="tab" aria-selected="true" aria-controls="all-classes-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="all-classes-table-tab1" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(eve [...]
 <div id="all-classes-table.tabpanel" role="tabpanel" aria-labelledby="all-classes-table-tab0">
 <div class="summary-table two-column-summary">
 <div class="table-header col-first">Class</div>
@@ -69,6 +69,14 @@ loadScripts(document, 'script');</script>
 <div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
 <div class="block">Configuration knobs for Avro sources passed to <a href="org/apache/datafusion/SessionContext.html#registerAvro(java.lang.String,java.lang.String,org.apache.datafusion.AvroReadOptions)"><code>SessionContext.registerAvro(String, String, AvroReadOptions)</code></a> and <a href="org/apache/datafusion/SessionContext.html#readAvro(java.lang.String,org.apache.datafusion.AvroReadOptions)"><code>SessionContext.readAvro(String, AvroReadOptions)</code></a>.</div>
 </div>
+<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a></div>
+<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
+<div class="block">Configuration for DataFusion's built-in <code>CacheManager</code>.</div>
+</div>
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></div>
+<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
+<div class="block">Builder for <a href="org/apache/datafusion/CacheManagerOptions.html" title="class in org.apache.datafusion"><code>CacheManagerOptions</code></a>.</div>
+</div>
 <div class="col-first even-row-color all-classes-table all-classes-table-tab1"><a href="org/apache/datafusion/ColumnarValue.html" title="interface in org.apache.datafusion">ColumnarValue</a></div>
 <div class="col-last even-row-color all-classes-table all-classes-table-tab1">
 <div class="block">The value of a scalar UDF argument or result: either a per-row <a href="org/apache/datafusion/ColumnarValue.Array.html" title="class in org.apache.datafusion"><code>ColumnarValue.Array</code></a> of length <code>
@@ -82,22 +90,40 @@ loadScripts(document, 'script');</script>
 <div class="col-last even-row-color all-classes-table all-classes-table-tab4">
 <div class="block">Length-1 Arrow vector representing a single value broadcast across all rows.</div>
 </div>
-<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></div>
-<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
-<div class="block">Configuration knobs for CSV sources passed to <a href="org/apache/datafusion/SessionContext.html#registerCsv(java.lang.String,java.lang.String,org.apache.datafusion.CsvReadOptions)"><code>SessionContext.registerCsv(String, String, CsvReadOptions)</code></a> and <a href="org/apache/datafusion/SessionContext.html#readCsv(java.lang.String,org.apache.datafusion.CsvReadOptions)"><code>SessionContext.readCsv(String, CsvReadOptions)</code></a>.</div>
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab5"><a href="org/apache/datafusion/ConfigurationException.html" title="class in org.apache.datafusion">ConfigurationException</a></div>
+<div class="col-last odd-row-color all-classes-table all-classes-table-tab5">
+<div class="block">Invalid or unrecognised DataFusion configuration option.</div>
 </div>
-<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/CsvWriteOptions.html" title="class in org.apache.datafusion">CsvWriteOptions</a></div>
+<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></div>
 <div class="col-last even-row-color all-classes-table all-classes-table-tab2">
-<div class="block">Configuration knobs for writing CSV, passed to <a href="org/apache/datafusion/DataFrame.html#writeCsv(java.lang.String,org.apache.datafusion.CsvWriteOptions)"><code>DataFrame.writeCsv(String, CsvWriteOptions)</code></a>.</div>
+<div class="block">Configuration knobs for CSV sources passed to <a href="org/apache/datafusion/SessionContext.html#registerCsv(java.lang.String,java.lang.String,org.apache.datafusion.CsvReadOptions)"><code>SessionContext.registerCsv(String, String, CsvReadOptions)</code></a> and <a href="org/apache/datafusion/SessionContext.html#readCsv(java.lang.String,org.apache.datafusion.CsvReadOptions)"><code>SessionContext.readCsv(String, CsvReadOptions)</code></a>.</div>
 </div>
-<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></div>
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/CsvWriteOptions.html" title="class in org.apache.datafusion">CsvWriteOptions</a></div>
 <div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
+<div class="block">Configuration knobs for writing CSV, passed to <a href="org/apache/datafusion/DataFrame.html#writeCsv(java.lang.String,org.apache.datafusion.CsvWriteOptions)"><code>DataFrame.writeCsv(String, CsvWriteOptions)</code></a>.</div>
+</div>
+<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></div>
+<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
 <div class="block">A lazy representation of a query plan, mirroring the Rust DataFusion <code>DataFrame</code>.</div>
 </div>
-<div class="col-first even-row-color all-classes-table all-classes-table-tab3"><a href="org/apache/datafusion/FileCompressionType.html" title="enum class in org.apache.datafusion">FileCompressionType</a></div>
-<div class="col-last even-row-color all-classes-table all-classes-table-tab3">
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab5"><a href="org/apache/datafusion/DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a></div>
+<div class="col-last odd-row-color all-classes-table all-classes-table-tab5">
+<div class="block">Base unchecked exception for every error surfaced from the native DataFusion side.</div>
+</div>
+<div class="col-first even-row-color all-classes-table all-classes-table-tab5"><a href="org/apache/datafusion/ExecutionException.html" title="class in org.apache.datafusion">ExecutionException</a></div>
+<div class="col-last even-row-color all-classes-table all-classes-table-tab5">
+<div class="block">Runtime execution failure: a UDF threw, a join task panicked, an external (non-DataFusion) error
+ propagated up, or an FFI-level failure surfaced.</div>
+</div>
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="org/apache/datafusion/FileCompressionType.html" title="enum class in org.apache.datafusion">FileCompressionType</a></div>
+<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">
 <div class="block">Compression of a file-format source.</div>
 </div>
+<div class="col-first even-row-color all-classes-table all-classes-table-tab5"><a href="org/apache/datafusion/IoException.html" title="class in org.apache.datafusion">IoException</a></div>
+<div class="col-last even-row-color all-classes-table all-classes-table-tab5">
+<div class="block">IO-shaped failure: a local filesystem read failed, an object store request failed, or a parquet /
+ arrow / avro decoder reported a malformed file.</div>
+</div>
 <div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/internal/JniBridge.html" title="class in org.apache.datafusion.internal">JniBridge</a></div>
 <div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
 <div class="block">Internal trampoline invoked from native code on every UDF call.</div>
@@ -110,12 +136,22 @@ loadScripts(document, 'script');</script>
 <div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
 <div class="block">Configuration knobs for writing JSON, passed to <a href="org/apache/datafusion/DataFrame.html#writeJson(java.lang.String,org.apache.datafusion.JsonWriteOptions)"><code>DataFrame.writeJson(String, JsonWriteOptions)</code></a>.</div>
 </div>
-<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/NativeLibraryLoader.html" title="class in org.apache.datafusion">NativeLibraryLoader</a></div>
-<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
-<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></div>
+<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a></div>
+<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
+<div class="block">Snapshot of session-wide memory usage from <a href="org/apache/datafusion/SessionContext.html#memoryUsage()"><code>SessionContext.memoryUsage()</code></a>.</div>
+</div>
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/NativeLibraryLoader.html" title="class in org.apache.datafusion">NativeLibraryLoader</a></div>
 <div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
+<div class="block">Loads the <code>datafusion_jni</code> native library on demand.</div>
+</div>
+<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></div>
+<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
 <div class="block">Configuration knobs for newline-delimited JSON sources passed to <a href="org/apache/datafusion/SessionContext.html#registerJson(java.lang.String,java.lang.String,org.apache.datafusion.NdJsonReadOptions)"><code>SessionContext.registerJson(String, String, NdJsonReadOptions)</code></a> and <a href="org/apache/datafusion/SessionContext.html#readJson(java.lang.String,org.apache.datafusion.NdJsonReadOptions)"><code>SessionContext.readJson(String, NdJsonReadOptions)</code></ [...]
 </div>
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab5"><a href="org/apache/datafusion/NotImplementedException.html" title="class in org.apache.datafusion">NotImplementedException</a></div>
+<div class="col-last odd-row-color all-classes-table all-classes-table-tab5">
+<div class="block">The requested feature is recognised by DataFusion but not implemented yet.</div>
+</div>
 <div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/ObjectStoreOptions.html" title="class in org.apache.datafusion">ObjectStoreOptions</a></div>
 <div class="col-last even-row-color all-classes-table all-classes-table-tab2">
 <div class="block">Description of an <code>object_store::ObjectStore</code> backend to register on a <a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a>'s <code>RuntimeEnv</code>.</div>
@@ -146,38 +182,56 @@ loadScripts(document, 'script');</script>
 <div class="col-last even-row-color all-classes-table all-classes-table-tab2">
 <div class="block">Configuration knobs for writing parquet, passed to <a href="org/apache/datafusion/DataFrame.html#writeParquet(java.lang.String,org.apache.datafusion.ParquetWriteOptions)"><code>DataFrame.writeParquet(String, ParquetWriteOptions)</code></a>.</div>
 </div>
-<div class="col-first odd-row-color all-classes-table all-classes-table-tab1"><a href="org/apache/datafusion/ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a></div>
-<div class="col-last odd-row-color all-classes-table all-classes-table-tab1">
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab5"><a href="org/apache/datafusion/PlanException.html" title="class in org.apache.datafusion">PlanException</a></div>
+<div class="col-last odd-row-color all-classes-table all-classes-table-tab5">
+<div class="block">SQL parsing, logical planning, or schema-resolution failure.</div>
+</div>
+<div class="col-first even-row-color all-classes-table all-classes-table-tab5"><a href="org/apache/datafusion/ResourcesExhaustedException.html" title="class in org.apache.datafusion">ResourcesExhaustedException</a></div>
+<div class="col-last even-row-color all-classes-table all-classes-table-tab5">
+<div class="block">The DataFusion runtime exhausted a configured resource budget — typically the memory pool, but
+ applies to any guard upstream surfaces as <code>DataFusionError::ResourcesExhausted</code>.</div>
+</div>
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></div>
+<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
+<div class="block">Snapshot of the underlying Tokio runtime from <a href="org/apache/datafusion/SessionContext.html#runtimeStats()"><code>SessionContext.runtimeStats()</code></a>.</div>
+</div>
+<div class="col-first even-row-color all-classes-table all-classes-table-tab1"><a href="org/apache/datafusion/ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a></div>
+<div class="col-last even-row-color all-classes-table all-classes-table-tab1">
 <div class="block">A Java-implemented scalar SQL function.</div>
 </div>
-<div class="col-first even-row-color all-classes-table all-classes-table-tab4"><a href="org/apache/datafusion/ScalarFunctionArgs.html" title="class in org.apache.datafusion">ScalarFunctionArgs</a></div>
-<div class="col-last even-row-color all-classes-table all-classes-table-tab4">
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="org/apache/datafusion/ScalarFunctionArgs.html" title="class in org.apache.datafusion">ScalarFunctionArgs</a></div>
+<div class="col-last odd-row-color all-classes-table all-classes-table-tab4">
 <div class="block">Bundle of inputs passed to <a href="org/apache/datafusion/ScalarFunction.html#evaluate(org.apache.arrow.memory.BufferAllocator,org.apache.datafusion.ScalarFunctionArgs)"><code>ScalarFunction.evaluate(org.apache.arrow.memory.BufferAllocator, org.apache.datafusion.ScalarFunctionArgs)</code></a>: the per-arg <a href="org/apache/datafusion/ColumnarValue.html" title="interface in org.apache.datafusion"><code>ColumnarValue</code></a>s
  (in declared order) and the batch row count DataFusion is driving.</div>
 </div>
-<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a></div>
-<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
+<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a></div>
+<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
 <div class="block">A scalar UDF registration handle: pairs a <a href="org/apache/datafusion/ScalarFunction.html" title="interface in org.apache.datafusion"><code>ScalarFunction</code></a> implementation with the metadata
  DataFusion needs to dispatch SQL calls to it.</div>
 </div>
-<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/proto/SchemaConverter.html" title="class in org.apache.datafusion.proto">SchemaConverter</a></div>
-<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/proto/SchemaConverter.html" title="class in org.apache.datafusion.proto">SchemaConverter</a></div>
+<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
 <div class="block">Convert between Arrow Java <code>Schema</code> and the <code>datafusion_common.Schema</code> protobuf shape
  used by DataFusion plan messages such as <code>ListingTableScanNode.schema</code>.</div>
 </div>
-<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></div>
-<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
+<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></div>
+<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
 <div class="block">A DataFusion session context.</div>
 </div>
-<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></div>
-<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></div>
+<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
 <div class="block">Builder for a configured <a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a>.</div>
 </div>
-<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/SimpleTableProvider.html" title="class in org.apache.datafusion">SimpleTableProvider</a></div>
-<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
+<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/SimpleTableProvider.html" title="class in org.apache.datafusion">SimpleTableProvider</a></div>
+<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
 <div class="block">A <a href="org/apache/datafusion/TableProvider.html" title="interface in org.apache.datafusion"><code>TableProvider</code></a> that pairs a fixed <code>Schema</code> with a function that opens a fresh
  <code>ArrowReader</code> for each scan.</div>
 </div>
+<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="org/apache/datafusion/SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></div>
+<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
+<div class="block">A single sort key passed to <a href="org/apache/datafusion/DataFrame.html#sort(org.apache.datafusion.SortExpr...)"><code>DataFrame.sort(SortExpr...)</code></a>, mirroring DataFusion's <code>
+ expr::Sort{ expr, asc, nulls_first }</code>.</div>
+</div>
 <div class="col-first even-row-color all-classes-table all-classes-table-tab1"><a href="org/apache/datafusion/TableProvider.html" title="interface in org.apache.datafusion">TableProvider</a></div>
 <div class="col-last even-row-color all-classes-table all-classes-table-tab1">
 <div class="block">A Java-implemented table that can be registered with a <a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a> via <a href="org/apache/datafusion/SessionContext.html#registerTable(java.lang.String,org.apache.datafusion.TableProvider)"><code>SessionContext.registerTable(String, TableProvider)</code></a>.</div>
diff --git a/api/allpackages-index.html b/api/allpackages-index.html
index 4ace9cb..64765a4 100644
--- a/api/allpackages-index.html
+++ b/api/allpackages-index.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>All Packages (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>All Packages (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="package index">
 <meta name="generator" content="javadoc/AllPackagesIndexWriter">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
diff --git a/api/help-doc.html b/api/help-doc.html
index d52a40a..28dd7ad 100644
--- a/api/help-doc.html
+++ b/api/help-doc.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>API Help (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>API Help (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="help">
 <meta name="generator" content="javadoc/HelpWriter">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
@@ -70,6 +70,7 @@ loadScripts(document, 'script');</script>
 <li><a href="#doc-file">Other Files</a></li>
 <li><a href="#use">Use</a></li>
 <li><a href="#tree">Tree (Class Hierarchy)</a></li>
+<li><a href="#serialized-form">Serialized Form</a></li>
 <li><a href="#all-packages">All Packages</a></li>
 <li><a href="#all-classes">All Classes and Interfaces</a></li>
 <li><a href="#index">Index</a></li>
@@ -161,6 +162,10 @@ The following sections describe the different kinds of pages in this collection.
 <li>When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.</li>
 </ul>
 </section>
+<section class="help-section" id="serialized-form">
+<h3>Serialized Form</h3>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.</p>
+</section>
 <section class="help-section" id="all-packages">
 <h3>All Packages</h3>
 <p>The <a href="allpackages-index.html">All Packages</a> page contains an alphabetic index of all packages contained in the documentation.</p>
diff --git a/api/index-all.html b/api/index-all.html
index 0f7fb88..f2ec20d 100644
--- a/api/index-all.html
+++ b/api/index-all.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Index (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Index (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="index">
 <meta name="generator" content="javadoc/IndexWriter">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
@@ -51,7 +51,7 @@ loadScripts(document, 'script');</script>
 <div class="header">
 <h1>Index</h1>
 </div>
-<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbs [...]
+<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbs [...]
 <h2 class="title" id="I:A">A</h2>
 <dl class="index">
 <dt><a href="org/apache/datafusion/ObjectStoreOptions.S3.Builder.html#accessKeyId(java.lang.String)" class="member-name-link">accessKeyId(String)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/ObjectStoreOptions.S3.Builder.html" title="class in org.apache.datafusion">ObjectStoreOptions.S3.Builder</a></dt>
@@ -92,6 +92,14 @@ loadScripts(document, 'script');</script>
 </dd>
 <dt><a href="org/apache/datafusion/ArrowReadOptions.html#%3Cinit%3E()" class="member-name-link">ArrowReadOptions()</a> - Constructor for class org.apache.datafusion.<a href="org/apache/datafusion/ArrowReadOptions.html" title="class in org.apache.datafusion">ArrowReadOptions</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/SortExpr.html#asc(java.lang.String)" class="member-name-link">asc(String)</a> - Static method in class org.apache.datafusion.<a href="org/apache/datafusion/SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></dt>
+<dd>
+<div class="block">Sort the given column ascending, with NULLs placed last.</div>
+</dd>
+<dt><a href="org/apache/datafusion/SortExpr.html#ascending()" class="member-name-link">ascending()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></dt>
+<dd>
+<div class="block"><code>true</code> if ascending, <code>false</code> if descending.</div>
+</dd>
 <dt><a href="org/apache/datafusion/AvroReadOptions.html" class="type-name-link" title="class in org.apache.datafusion">AvroReadOptions</a> - Class in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
 <dd>
 <div class="block">Configuration knobs for Avro sources passed to <a href="org/apache/datafusion/SessionContext.html#registerAvro(java.lang.String,java.lang.String,org.apache.datafusion.AvroReadOptions)"><code>SessionContext.registerAvro(String, String, AvroReadOptions)</code></a> and <a href="org/apache/datafusion/SessionContext.html#readAvro(java.lang.String,org.apache.datafusion.AvroReadOptions)"><code>SessionContext.readAvro(String, AvroReadOptions)</code></a>.</div>
@@ -111,6 +119,8 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Bucket name.</div>
 </dd>
+<dt><a href="org/apache/datafusion/CacheManagerOptions.Builder.html#build()" class="member-name-link">build()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/ObjectStoreOptions.Gcs.Builder.html#build()" class="member-name-link">build()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/ObjectStoreOptions.Gcs.Builder.html" title="class in org.apache.datafusion">ObjectStoreOptions.Gcs.Builder</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/ObjectStoreOptions.Http.Builder.html#build()" class="member-name-link">build()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/ObjectStoreOptions.Http.Builder.html" title="class in org.apache.datafusion">ObjectStoreOptions.Http.Builder</a></dt>
@@ -121,6 +131,10 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Construct a <a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a> with the configured options.</div>
 </dd>
+<dt><a href="org/apache/datafusion/CacheManagerOptions.html#builder()" class="member-name-link">builder()</a> - Static method in class org.apache.datafusion.<a href="org/apache/datafusion/CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a></dt>
+<dd>
+<div class="block">Begin building a <a href="org/apache/datafusion/CacheManagerOptions.html" title="class in org.apache.datafusion"><code>CacheManagerOptions</code></a> instance.</div>
+</dd>
 <dt><a href="org/apache/datafusion/SessionContext.html#builder()" class="member-name-link">builder()</a> - Static method in class org.apache.datafusion.<a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></dt>
 <dd>
 <div class="block">Start configuring a <a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a>.</div>
@@ -134,6 +148,18 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Materialise this DataFrame into an in-memory table and return a new DataFrame that scans it.</div>
 </dd>
+<dt><a href="org/apache/datafusion/SessionContextBuilder.html#cacheManager(org.apache.datafusion.CacheManagerOptions)" class="member-name-link">cacheManager(CacheManagerOptions)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></dt>
+<dd>
+<div class="block">Configure DataFusion's built-in <code>CacheManager</code> for the new context.</div>
+</dd>
+<dt><a href="org/apache/datafusion/CacheManagerOptions.html" class="type-name-link" title="class in org.apache.datafusion">CacheManagerOptions</a> - Class in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">Configuration for DataFusion's built-in <code>CacheManager</code>.</div>
+</dd>
+<dt><a href="org/apache/datafusion/CacheManagerOptions.Builder.html" class="type-name-link" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a> - Class in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">Builder for <a href="org/apache/datafusion/CacheManagerOptions.html" title="class in org.apache.datafusion"><code>CacheManagerOptions</code></a>.</div>
+</dd>
 <dt><a href="org/apache/datafusion/DataFrame.html#close()" class="member-name-link">close()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/SessionContext.html#close()" class="member-name-link">close()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></dt>
@@ -152,6 +178,10 @@ loadScripts(document, 'script');</script>
 </dd>
 <dt><a href="org/apache/datafusion/SessionContextBuilder.html#collectStatistics(boolean)" class="member-name-link">collectStatistics(boolean)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/SortExpr.html#column()" class="member-name-link">column()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></dt>
+<dd>
+<div class="block">The column name this sort key references.</div>
+</dd>
 <dt><a href="org/apache/datafusion/ColumnarValue.html" class="type-name-link" title="interface in org.apache.datafusion">ColumnarValue</a> - Interface in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
 <dd>
 <div class="block">The value of a scalar UDF argument or result: either a per-row <a href="org/apache/datafusion/ColumnarValue.Array.html" title="class in org.apache.datafusion"><code>ColumnarValue.Array</code></a> of length <code>
@@ -171,6 +201,14 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Compression codec spec, passed verbatim to DataFusion.</div>
 </dd>
+<dt><a href="org/apache/datafusion/ConfigurationException.html" class="type-name-link" title="class in org.apache.datafusion">ConfigurationException</a> - Exception in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">Invalid or unrecognised DataFusion configuration option.</div>
+</dd>
+<dt><a href="org/apache/datafusion/ConfigurationException.html#%3Cinit%3E(java.lang.String)" class="member-name-link">ConfigurationException(String)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/ConfigurationException.html" title="class in org.apache.datafusion">ConfigurationException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/ConfigurationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">ConfigurationException(String, Throwable)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/ConfigurationException.html" title="class in org.apache.datafusion">ConfigurationException</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/DataFrame.html#count()" class="member-name-link">count()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
 <dd>
 <div class="block">Execute the plan and return the number of rows.</div>
@@ -187,6 +225,10 @@ loadScripts(document, 'script');</script>
 </dd>
 <dt><a href="org/apache/datafusion/CsvWriteOptions.html#%3Cinit%3E()" class="member-name-link">CsvWriteOptions()</a> - Constructor for class org.apache.datafusion.<a href="org/apache/datafusion/CsvWriteOptions.html" title="class in org.apache.datafusion">CsvWriteOptions</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/MemoryUsage.html#currentBytes()" class="member-name-link">currentBytes()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a></dt>
+<dd>
+<div class="block">Bytes currently reserved against this session's <code>MemoryPool</code>.</div>
+</dd>
 </dl>
 <h2 class="title" id="I:D">D</h2>
 <dl class="index">
@@ -194,6 +236,14 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">A lazy representation of a query plan, mirroring the Rust DataFusion <code>DataFrame</code>.</div>
 </dd>
+<dt><a href="org/apache/datafusion/DataFusionException.html" class="type-name-link" title="class in org.apache.datafusion">DataFusionException</a> - Exception in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">Base unchecked exception for every error surfaced from the native DataFusion side.</div>
+</dd>
+<dt><a href="org/apache/datafusion/DataFusionException.html#%3Cinit%3E(java.lang.String)" class="member-name-link">DataFusionException(String)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/DataFusionException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">DataFusionException(String, Throwable)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/ColumnarValue.html#dataType()" class="member-name-link">dataType()</a> - Method in interface org.apache.datafusion.<a href="org/apache/datafusion/ColumnarValue.html" title="interface in org.apache.datafusion">ColumnarValue</a></dt>
 <dd>
 <div class="block">Convenience: the vector's declared Arrow type.</div>
@@ -204,11 +254,19 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Field delimiter byte.</div>
 </dd>
+<dt><a href="org/apache/datafusion/SortExpr.html#desc(java.lang.String)" class="member-name-link">desc(String)</a> - Static method in class org.apache.datafusion.<a href="org/apache/datafusion/SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></dt>
+<dd>
+<div class="block">Sort the given column descending, with NULLs placed first.</div>
+</dd>
 <dt><a href="org/apache/datafusion/DataFrame.html#describe()" class="member-name-link">describe()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
 <dd>
 <div class="block">Compute summary statistics (count, null_count, mean, std, min, max, median) over this
  DataFrame's columns and return them as a new DataFrame.</div>
 </dd>
+<dt><a href="org/apache/datafusion/SessionContextBuilder.html#disableSpill()" class="member-name-link">disableSpill()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></dt>
+<dd>
+<div class="block">Disable on-disk spill entirely.</div>
+</dd>
 <dt><a href="org/apache/datafusion/DataFrame.html#distinct()" class="member-name-link">distinct()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
 <dd>
 <div class="block">Deduplicate rows across all columns.</div>
@@ -220,6 +278,10 @@ loadScripts(document, 'script');</script>
 </dl>
 <h2 class="title" id="I:E">E</h2>
 <dl class="index">
+<dt><a href="org/apache/datafusion/RuntimeStats.html#elapsedNanos()" class="member-name-link">elapsedNanos()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>
+<div class="block">Wall-clock nanoseconds covered by this snapshot's interval (since runtime start).</div>
+</dd>
 <dt><a href="org/apache/datafusion/ObjectStoreOptions.S3.Builder.html#endpoint(java.lang.String)" class="member-name-link">endpoint(String)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/ObjectStoreOptions.S3.Builder.html" title="class in org.apache.datafusion">ObjectStoreOptions.S3.Builder</a></dt>
 <dd>
 <div class="block">Override the endpoint URL (e.g.</div>
@@ -246,10 +308,28 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Compute the function result for one input batch.</div>
 </dd>
+<dt><a href="org/apache/datafusion/DataFrame.html#except(org.apache.datafusion.DataFrame)" class="member-name-link">except(DataFrame)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
+<dd>
+<div class="block">Rows present in this DataFrame but not in <code>other</code>, keeping duplicates from the receiver
+ (SQL <code>EXCEPT ALL</code>).</div>
+</dd>
+<dt><a href="org/apache/datafusion/DataFrame.html#exceptDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">exceptDistinct(DataFrame)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
+<dd>
+<div class="block">Rows present in this DataFrame but not in <code>other</code>, deduplicated (SQL <code>EXCEPT</code>).</div>
+</dd>
 <dt><a href="org/apache/datafusion/DataFrame.html#executeStream(org.apache.arrow.memory.BufferAllocator)" class="member-name-link">executeStream(BufferAllocator)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
 <dd>
 <div class="block">Execute the plan and return its record batches as a streaming <code>ArrowReader</code>.</div>
 </dd>
+<dt><a href="org/apache/datafusion/ExecutionException.html" class="type-name-link" title="class in org.apache.datafusion">ExecutionException</a> - Exception in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">Runtime execution failure: a UDF threw, a join task panicked, an external (non-DataFusion) error
+ propagated up, or an FFI-level failure surfaced.</div>
+</dd>
+<dt><a href="org/apache/datafusion/ExecutionException.html#%3Cinit%3E(java.lang.String)" class="member-name-link">ExecutionException(String)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/ExecutionException.html" title="class in org.apache.datafusion">ExecutionException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/ExecutionException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">ExecutionException(String, Throwable)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/ExecutionException.html" title="class in org.apache.datafusion">ExecutionException</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/DataFrame.html#explain(boolean,boolean)" class="member-name-link">explain(boolean, boolean)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
 <dd>
 <div class="block">Return a new DataFrame whose rows describe the plan that would execute this DataFrame.</div>
@@ -283,6 +363,15 @@ loadScripts(document, 'script');</script>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/ParquetReadOptions.html#fileExtension(java.lang.String)" class="member-name-link">fileExtension(String)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/ParquetReadOptions.html" title="class in org.apache.datafusion">ParquetReadOptions</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/CacheManagerOptions.Builder.html#fileMetadataCache(long)" class="member-name-link">fileMetadataCache(long)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></dt>
+<dd>
+<div class="block">Enable the file-embedded metadata cache (parquet footers, page metadata) with the given byte
+ cap.</div>
+</dd>
+<dt><a href="org/apache/datafusion/CacheManagerOptions.Builder.html#fileStatisticsCache(boolean)" class="member-name-link">fileStatisticsCache(boolean)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></dt>
+<dd>
+<div class="block">Enable the file-statistics cache (per-file row counts / column statistics).</div>
+</dd>
 <dt><a href="org/apache/datafusion/DataFrame.html#filter(java.lang.String)" class="member-name-link">filter(String)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
 <dd>
 <div class="block">Apply a SQL predicate to produce a filtered DataFrame.</div>
@@ -297,6 +386,11 @@ loadScripts(document, 'script');</script>
 </dd>
 <dt><a href="org/apache/datafusion/proto/SchemaConverter.html#fromProto(datafusion_common.DatafusionCommon.Schema)" class="member-name-link">fromProto(DatafusionCommon.Schema)</a> - Static method in class org.apache.datafusion.proto.<a href="org/apache/datafusion/proto/SchemaConverter.html" title="class in org.apache.datafusion.proto">SchemaConverter</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/SessionContext.html#fromSubstrait(byte%5B%5D)" class="member-name-link">fromSubstrait(byte[])</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></dt>
+<dd>
+<div class="block">Decode a <a href="https://substrait.io/">Substrait</a> <code>Plan</code> message and return a lazy
+ <a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a>.</div>
+</dd>
 <dt><a href="org/apache/datafusion/JoinType.html#FULL" class="member-name-link">FULL</a> - Enum constant in enum class org.apache.datafusion.<a href="org/apache/datafusion/JoinType.html" title="enum class in org.apache.datafusion">JoinType</a></dt>
 <dd>&nbsp;</dd>
 </dl>
@@ -310,6 +404,10 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Read the current value of a <code>datafusion.*</code> config key.</div>
 </dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#globalQueueDepth()" class="member-name-link">globalQueueDepth()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>
+<div class="block">Tasks waiting in the global injection queue, not yet picked up by a worker.</div>
+</dd>
 <dt><a href="org/apache/datafusion/FileCompressionType.html#GZIP" class="member-name-link">GZIP</a> - Enum constant in enum class org.apache.datafusion.<a href="org/apache/datafusion/FileCompressionType.html" title="enum class in org.apache.datafusion">FileCompressionType</a></dt>
 <dd>&nbsp;</dd>
 </dl>
@@ -354,6 +452,15 @@ loadScripts(document, 'script');</script>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/JoinType.html#INNER" class="member-name-link">INNER</a> - Enum constant in enum class org.apache.datafusion.<a href="org/apache/datafusion/JoinType.html" title="enum class in org.apache.datafusion">JoinType</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/DataFrame.html#intersect(org.apache.datafusion.DataFrame)" class="member-name-link">intersect(DataFrame)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
+<dd>
+<div class="block">Rows present in both this DataFrame and <code>other</code>, keeping duplicates from the receiver
+ (SQL <code>INTERSECT ALL</code>).</div>
+</dd>
+<dt><a href="org/apache/datafusion/DataFrame.html#intersectDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">intersectDistinct(DataFrame)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
+<dd>
+<div class="block">Rows present in both this DataFrame and <code>other</code>, deduplicated (SQL <code>INTERSECT</code>).</div>
+</dd>
 <dt><a href="org/apache/datafusion/internal/JniBridge.html#invokeScalarUdf(org.apache.datafusion.ScalarFunction,long,long,long,long,byte%5B%5D,long,long,int)" class="member-name-link">invokeScalarUdf(ScalarFunction, long, long, long, long, byte[], long, long, int)</a> - Static method in class org.apache.datafusion.internal.<a href="org/apache/datafusion/internal/JniBridge.html" title="class in org.apache.datafusion.internal">JniBridge</a></dt>
 <dd>
 <div class="block">Invoke a scalar UDF for one batch.</div>
@@ -363,6 +470,15 @@ loadScripts(document, 'script');</script>
 <div class="block">Open a fresh batch stream from a Java <a href="org/apache/datafusion/TableProvider.html" title="interface in org.apache.datafusion"><code>TableProvider</code></a> and export it through the supplied
  Arrow C Data Interface address.</div>
 </dd>
+<dt><a href="org/apache/datafusion/IoException.html" class="type-name-link" title="class in org.apache.datafusion">IoException</a> - Exception in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">IO-shaped failure: a local filesystem read failed, an object store request failed, or a parquet /
+ arrow / avro decoder reported a malformed file.</div>
+</dd>
+<dt><a href="org/apache/datafusion/IoException.html#%3Cinit%3E(java.lang.String)" class="member-name-link">IoException(String)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/IoException.html" title="class in org.apache.datafusion">IoException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/IoException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">IoException(String, Throwable)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/IoException.html" title="class in org.apache.datafusion">IoException</a></dt>
+<dd>&nbsp;</dd>
 </dl>
 <h2 class="title" id="I:J">J</h2>
 <dl class="index">
@@ -414,15 +530,38 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Skip <code>skip</code> rows, then take the next <code>fetch</code> rows.</div>
 </dd>
+<dt><a href="org/apache/datafusion/CacheManagerOptions.Builder.html#listFilesCache(long,java.time.Duration)" class="member-name-link">listFilesCache(long, Duration)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></dt>
+<dd>
+<div class="block">Enable the list-files cache with the given byte cap and TTL.</div>
+</dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#liveTasksCount()" class="member-name-link">liveTasksCount()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>
+<div class="block">Number of tasks currently scheduled (alive) on the runtime.</div>
+</dd>
 <dt><a href="org/apache/datafusion/NativeLibraryLoader.html#loadLibrary()" class="member-name-link">loadLibrary()</a> - Static method in class org.apache.datafusion.<a href="org/apache/datafusion/NativeLibraryLoader.html" title="class in org.apache.datafusion">NativeLibraryLoader</a></dt>
 <dd>&nbsp;</dd>
 </dl>
 <h2 class="title" id="I:M">M</h2>
 <dl class="index">
+<dt><a href="org/apache/datafusion/SessionContextBuilder.html#maxTempDirectorySize(long)" class="member-name-link">maxTempDirectorySize(long)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></dt>
+<dd>
+<div class="block">Cap the cumulative bytes used by spill files under <a href="org/apache/datafusion/SessionContextBuilder.html#tempDirectory(java.lang.String)"><code>SessionContextBuilder.tempDirectory(String)</code></a>.</div>
+</dd>
 <dt><a href="org/apache/datafusion/SessionContextBuilder.html#memoryLimit(long,double)" class="member-name-link">memoryLimit(long, double)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></dt>
 <dd>
 <div class="block">Cap the memory pool at <code>maxMemoryBytes</code>, reserving <code>fraction</code> of it for queries.</div>
 </dd>
+<dt><a href="org/apache/datafusion/SessionContext.html#memoryUsage()" class="member-name-link">memoryUsage()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></dt>
+<dd>
+<div class="block">Snapshot the session's memory pool: bytes currently held and the peak observed since this
+ session was created.</div>
+</dd>
+<dt><a href="org/apache/datafusion/MemoryUsage.html" class="type-name-link" title="class in org.apache.datafusion">MemoryUsage</a> - Class in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">Snapshot of session-wide memory usage from <a href="org/apache/datafusion/SessionContext.html#memoryUsage()"><code>SessionContext.memoryUsage()</code></a>.</div>
+</dd>
+<dt><a href="org/apache/datafusion/MemoryUsage.html#%3Cinit%3E(long,long)" class="member-name-link">MemoryUsage(long, long)</a> - Constructor for class org.apache.datafusion.<a href="org/apache/datafusion/MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/ParquetReadOptions.html#metadataSizeHint(long)" class="member-name-link">metadataSizeHint(long)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/ParquetReadOptions.html" title="class in org.apache.datafusion">ParquetReadOptions</a></dt>
 <dd>&nbsp;</dd>
 </dl>
@@ -437,7 +576,9 @@ loadScripts(document, 'script');</script>
 <div class="block">SQL name; cached from <a href="org/apache/datafusion/ScalarFunction.html#name()"><code>ScalarFunction.name()</code></a>.</div>
 </dd>
 <dt><a href="org/apache/datafusion/NativeLibraryLoader.html" class="type-name-link" title="class in org.apache.datafusion">NativeLibraryLoader</a> - Class in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block">Loads the <code>datafusion_jni</code> native library on demand.</div>
+</dd>
 <dt><a href="org/apache/datafusion/NdJsonReadOptions.html" class="type-name-link" title="class in org.apache.datafusion">NdJsonReadOptions</a> - Class in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
 <dd>
 <div class="block">Configuration knobs for newline-delimited JSON sources passed to <a href="org/apache/datafusion/SessionContext.html#registerJson(java.lang.String,java.lang.String,org.apache.datafusion.NdJsonReadOptions)"><code>SessionContext.registerJson(String, String, NdJsonReadOptions)</code></a> and <a href="org/apache/datafusion/SessionContext.html#readJson(java.lang.String,org.apache.datafusion.NdJsonReadOptions)"><code>SessionContext.readJson(String, NdJsonReadOptions)</code></ [...]
@@ -446,10 +587,30 @@ loadScripts(document, 'script');</script>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/CsvReadOptions.html#newlinesInValues(boolean)" class="member-name-link">newlinesInValues(boolean)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/NotImplementedException.html" class="type-name-link" title="class in org.apache.datafusion">NotImplementedException</a> - Exception in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">The requested feature is recognised by DataFusion but not implemented yet.</div>
+</dd>
+<dt><a href="org/apache/datafusion/NotImplementedException.html#%3Cinit%3E(java.lang.String)" class="member-name-link">NotImplementedException(String)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/NotImplementedException.html" title="class in org.apache.datafusion">NotImplementedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/NotImplementedException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">NotImplementedException(String, Throwable)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/NotImplementedException.html" title="class in org.apache.datafusion">NotImplementedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/SortExpr.html#nullsFirst()" class="member-name-link">nullsFirst()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></dt>
+<dd>
+<div class="block"><code>true</code> if NULLs are placed first, <code>false</code> if last.</div>
+</dd>
+<dt><a href="org/apache/datafusion/SortExpr.html#nullsFirst(boolean)" class="member-name-link">nullsFirst(boolean)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></dt>
+<dd>
+<div class="block">Override the default NULL placement.</div>
+</dd>
 <dt><a href="org/apache/datafusion/CsvWriteOptions.html#nullValue(java.lang.String)" class="member-name-link">nullValue(String)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/CsvWriteOptions.html" title="class in org.apache.datafusion">CsvWriteOptions</a></dt>
 <dd>
 <div class="block">String to write for SQL NULL values.</div>
 </dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#numWorkers()" class="member-name-link">numWorkers()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>
+<div class="block">Number of OS worker threads driving the multi-threaded Tokio runtime.</div>
+</dd>
 </dl>
 <h2 class="title" id="I:O">O</h2>
 <dl class="index">
@@ -506,6 +667,18 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Hive-style partition columns.</div>
 </dd>
+<dt><a href="org/apache/datafusion/MemoryUsage.html#peakBytes()" class="member-name-link">peakBytes()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a></dt>
+<dd>
+<div class="block">Maximum value of <a href="org/apache/datafusion/MemoryUsage.html#currentBytes()"><code>MemoryUsage.currentBytes()</code></a> observed since the session was created.</div>
+</dd>
+<dt><a href="org/apache/datafusion/PlanException.html" class="type-name-link" title="class in org.apache.datafusion">PlanException</a> - Exception in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">SQL parsing, logical planning, or schema-resolution failure.</div>
+</dd>
+<dt><a href="org/apache/datafusion/PlanException.html#%3Cinit%3E(java.lang.String)" class="member-name-link">PlanException(String)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/PlanException.html" title="class in org.apache.datafusion">PlanException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/PlanException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">PlanException(String, Throwable)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/PlanException.html" title="class in org.apache.datafusion">PlanException</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/UnnestOptions.html#preserveNulls()" class="member-name-link">preserveNulls()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/UnnestOptions.html" title="class in org.apache.datafusion">UnnestOptions</a></dt>
 <dd>
 <div class="block">The current <code>preserveNulls</code> setting.</div>
@@ -617,6 +790,26 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Register a Java-implemented scalar UDF.</div>
 </dd>
+<dt><a href="org/apache/datafusion/DataFrame.html#repartitionHash(int,java.lang.String...)" class="member-name-link">repartitionHash(int, String...)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
+<dd>
+<div class="block">Repartition this DataFrame by hashing the named columns into <code>numPartitions</code> output
+ partitions. v1 supports column-name keys only; expression keys are deferred until the Java
+ binding gains an <code>Expr</code> builder.</div>
+</dd>
+<dt><a href="org/apache/datafusion/DataFrame.html#repartitionRoundRobin(int)" class="member-name-link">repartitionRoundRobin(int)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
+<dd>
+<div class="block">Repartition this DataFrame using a round-robin scheme across <code>numPartitions</code> output
+ partitions.</div>
+</dd>
+<dt><a href="org/apache/datafusion/ResourcesExhaustedException.html" class="type-name-link" title="class in org.apache.datafusion">ResourcesExhaustedException</a> - Exception in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">The DataFusion runtime exhausted a configured resource budget — typically the memory pool, but
+ applies to any guard upstream surfaces as <code>DataFusionError::ResourcesExhausted</code>.</div>
+</dd>
+<dt><a href="org/apache/datafusion/ResourcesExhaustedException.html#%3Cinit%3E(java.lang.String)" class="member-name-link">ResourcesExhaustedException(String)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/ResourcesExhaustedException.html" title="class in org.apache.datafusion">ResourcesExhaustedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/ResourcesExhaustedException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">ResourcesExhaustedException(String, Throwable)</a> - Constructor for exception org.apache.datafusion.<a href="org/apache/datafusion/ResourcesExhaustedException.html" title="class in org.apache.datafusion">ResourcesExhaustedException</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/ScalarFunction.html#returnField()" class="member-name-link">returnField()</a> - Method in interface org.apache.datafusion.<a href="org/apache/datafusion/ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a></dt>
 <dd>
 <div class="block">Declared return field.</div>
@@ -637,6 +830,17 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Returns the value of the <code>rowCount</code> record component.</div>
 </dd>
+<dt><a href="org/apache/datafusion/SessionContext.html#runtimeStats()" class="member-name-link">runtimeStats()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></dt>
+<dd>
+<div class="block">Snapshot operational counters from the underlying Tokio runtime: worker count, busy time, queue
+ depth, etc.</div>
+</dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html" class="type-name-link" title="class in org.apache.datafusion">RuntimeStats</a> - Class in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">Snapshot of the underlying Tokio runtime from <a href="org/apache/datafusion/SessionContext.html#runtimeStats()"><code>SessionContext.runtimeStats()</code></a>.</div>
+</dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#%3Cinit%3E(int,long,long,long,long,long,long,long,long,long,long)" class="member-name-link">RuntimeStats(int, long, long, long, long, long, long, long, long, long, long)</a> - Constructor for class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>&nbsp;</dd>
 </dl>
 <h2 class="title" id="I:S">S</h2>
 <dl class="index">
@@ -780,6 +984,15 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Skip request signing (anonymous / public-bucket reads).</div>
 </dd>
+<dt><a href="org/apache/datafusion/DataFrame.html#sort(org.apache.datafusion.SortExpr...)" class="member-name-link">sort(SortExpr...)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
+<dd>
+<div class="block">Order the rows by the supplied sort keys.</div>
+</dd>
+<dt><a href="org/apache/datafusion/SortExpr.html" class="type-name-link" title="class in org.apache.datafusion">SortExpr</a> - Class in <a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></dt>
+<dd>
+<div class="block">A single sort key passed to <a href="org/apache/datafusion/DataFrame.html#sort(org.apache.datafusion.SortExpr...)"><code>DataFrame.sort(SortExpr...)</code></a>, mirroring DataFusion's <code>
+ expr::Sort{ expr, asc, nulls_first }</code>.</div>
+</dd>
 <dt><a href="org/apache/datafusion/SessionContext.html#sql(java.lang.String)" class="member-name-link">sql(String)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></dt>
 <dd>
 <div class="block">Parse and plan <code>query</code>, returning a lazy <a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a>.</div>
@@ -815,15 +1028,65 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Returns a string representation of this record class.</div>
 </dd>
+<dt><a href="org/apache/datafusion/MemoryUsage.html#toString()" class="member-name-link">toString()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#toString()" class="member-name-link">toString()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/datafusion/ScalarFunctionArgs.html#toString()" class="member-name-link">toString()</a> - Method in record class org.apache.datafusion.<a href="org/apache/datafusion/ScalarFunctionArgs.html" title="class in org.apache.datafusion">ScalarFunctionArgs</a></dt>
 <dd>
 <div class="block">Returns a string representation of this record class.</div>
 </dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#totalBusyNanos()" class="member-name-link">totalBusyNanos()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>
+<div class="block">Total nanoseconds workers spent doing work (sum across workers).</div>
+</dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#totalLocalScheduleCount()" class="member-name-link">totalLocalScheduleCount()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>
+<div class="block">Tasks scheduled into a worker's local queue.</div>
+</dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#totalNoopCount()" class="member-name-link">totalNoopCount()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>
+<div class="block">Times a worker unparked but found no work (false wakeup).</div>
+</dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#totalOverflowCount()" class="member-name-link">totalOverflowCount()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>
+<div class="block">Times a worker's local queue overflowed and pushed tasks to the injector.</div>
+</dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#totalParkCount()" class="member-name-link">totalParkCount()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>
+<div class="block">Times a worker has parked itself (gone idle waiting for work).</div>
+</dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#totalPollsCount()" class="member-name-link">totalPollsCount()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>
+<div class="block">Total task polls completed across workers.</div>
+</dd>
+<dt><a href="org/apache/datafusion/RuntimeStats.html#totalStealCount()" class="member-name-link">totalStealCount()</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></dt>
+<dd>
+<div class="block">Times a worker successfully stole tasks from another worker.</div>
+</dd>
 </dl>
 <h2 class="title" id="I:U">U</h2>
 <dl class="index">
 <dt><a href="org/apache/datafusion/FileCompressionType.html#UNCOMPRESSED" class="member-name-link">UNCOMPRESSED</a> - Enum constant in enum class org.apache.datafusion.<a href="org/apache/datafusion/FileCompressionType.html" title="enum class in org.apache.datafusion">FileCompressionType</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/datafusion/DataFrame.html#union(org.apache.datafusion.DataFrame)" class="member-name-link">union(DataFrame)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
+<dd>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column position, keeping all duplicates (SQL
+ <code>UNION ALL</code>).</div>
+</dd>
+<dt><a href="org/apache/datafusion/DataFrame.html#unionByName(org.apache.datafusion.DataFrame)" class="member-name-link">unionByName(DataFrame)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
+<dd>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column name, keeping all duplicates.</div>
+</dd>
+<dt><a href="org/apache/datafusion/DataFrame.html#unionByNameDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">unionByNameDistinct(DataFrame)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
+<dd>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column name, removing duplicates.</div>
+</dd>
+<dt><a href="org/apache/datafusion/DataFrame.html#unionDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">unionDistinct(DataFrame)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
+<dd>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column position, removing duplicates (SQL
+ <code>UNION DISTINCT</code> -- equivalent to plain <code>UNION</code> in standard SQL).</div>
+</dd>
 <dt><a href="org/apache/datafusion/DataFrame.html#unnestColumns(java.lang.String...)" class="member-name-link">unnestColumns(String...)</a> - Method in class org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></dt>
 <dd>
 <div class="block">Expand list or struct columns into rows or fields, with default <a href="org/apache/datafusion/UnnestOptions.html" title="class in org.apache.datafusion"><code>UnnestOptions</code></a> (i.e.</div>
@@ -949,7 +1212,7 @@ the order they are declared.</div>
 <dt><a href="org/apache/datafusion/FileCompressionType.html#ZSTD" class="member-name-link">ZSTD</a> - Enum constant in enum class org.apache.datafusion.<a href="org/apache/datafusion/FileCompressionType.html" title="enum class in org.apache.datafusion">FileCompressionType</a></dt>
 <dd>&nbsp;</dd>
 </dl>
-<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbs [...]
+<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbs [...]
 <footer role="contentinfo">
 <hr>
 <p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
diff --git a/api/index.html b/api/index.html
index 3ce64df..d57d6b6 100644
--- a/api/index.html
+++ b/api/index.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Overview (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Overview (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="package index">
 <meta name="generator" content="javadoc/PackageIndexWriter">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
@@ -49,7 +49,7 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 class="title">Apache DataFusion Java 0.1.0-SNAPSHOT</h1>
+<h1 class="title">Apache DataFusion Java 0.2.0-SNAPSHOT</h1>
 </div>
 <div id="all-packages-table">
 <div class="caption"><span>Packages</span></div>
diff --git a/api/member-search-index.js b/api/member-search-index.js
index 2635f9a..4e470b9 100644
--- a/api/member-search-index.js
+++ b/api/member-search-index.js
@@ -1 +1 @@
-memberSearchIndex = [{"p":"org.apache.datafusion","c":"ObjectStoreOptions.S3.Builder","l":"accessKeyId(String)","u":"accessKeyId(java.lang.String)"},{"p":"org.apache.datafusion","c":"ObjectStoreOptions.Http.Builder","l":"allowHttp(boolean)"},{"p":"org.apache.datafusion","c":"ObjectStoreOptions.S3.Builder","l":"allowHttp(boolean)"},{"p":"org.apache.datafusion","c":"ObjectStoreOptions.Gcs.Builder","l":"applicationCredentials(String)","u":"applicationCredentials(java.lang.String)"},{"p":"or [...]
\ No newline at end of file
+memberSearchIndex = [{"p":"org.apache.datafusion","c":"ObjectStoreOptions.S3.Builder","l":"accessKeyId(String)","u":"accessKeyId(java.lang.String)"},{"p":"org.apache.datafusion","c":"ObjectStoreOptions.Http.Builder","l":"allowHttp(boolean)"},{"p":"org.apache.datafusion","c":"ObjectStoreOptions.S3.Builder","l":"allowHttp(boolean)"},{"p":"org.apache.datafusion","c":"ObjectStoreOptions.Gcs.Builder","l":"applicationCredentials(String)","u":"applicationCredentials(java.lang.String)"},{"p":"or [...]
\ No newline at end of file
diff --git a/api/org/apache/datafusion/ArrowReadOptions.html b/api/org/apache/datafusion/ArrowReadOptions.html
index cda968a..16cc355 100644
--- a/api/org/apache/datafusion/ArrowReadOptions.html
+++ b/api/org/apache/datafusion/ArrowReadOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ArrowReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ArrowReadOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: ArrowReadOptions">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/AvroReadOptions.html b/api/org/apache/datafusion/AvroReadOptions.html
index 4b00edf..87b4d20 100644
--- a/api/org/apache/datafusion/AvroReadOptions.html
+++ b/api/org/apache/datafusion/AvroReadOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>AvroReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>AvroReadOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: AvroReadOptions">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/NdJsonReadOptions.html b/api/org/apache/datafusion/CacheManagerOptions.Builder.html
similarity index 59%
copy from api/org/apache/datafusion/NdJsonReadOptions.html
copy to api/org/apache/datafusion/CacheManagerOptions.Builder.html
index ce1fe2d..1be2ab8 100644
--- a/api/org/apache/datafusion/NdJsonReadOptions.html
+++ b/api/org/apache/datafusion/CacheManagerOptions.Builder.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>NdJsonReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>CacheManagerOptions.Builder (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="declaration: package: org.apache.datafusion, class: NdJsonReadOptions">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: CacheManagerOptions, class: Builder">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
@@ -35,7 +35,7 @@ loadScripts(document, 'script');</script>
 <li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="nav-bar-cell1-rev">Class</li>
-<li><a href="class-use/NdJsonReadOptions.html">Use</a></li>
+<li><a href="class-use/CacheManagerOptions.Builder.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../index-all.html">Index</a></li>
 <li><a href="../../../help-doc.html#class">Help</a></li>
@@ -47,13 +47,13 @@ loadScripts(document, 'script');</script>
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method-summary">Method</a></li>
 </ul>
 <ul class="sub-nav-list">
 <li>Detail:&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method-detail">Method</a></li>
 </ul>
 </div>
@@ -70,37 +70,23 @@ loadScripts(document, 'script');</script>
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
-<h1 title="Class NdJsonReadOptions" class="title">Class NdJsonReadOptions</h1>
+<h1 title="Class CacheManagerOptions.Builder" class="title">Class CacheManagerOptions.Builder</h1>
 </div>
 <div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
-<div class="inheritance">org.apache.datafusion.NdJsonReadOptions</div>
+<div class="inheritance">org.apache.datafusion.CacheManagerOptions.Builder</div>
 </div>
 <section class="class-description" id="class-description">
+<dl class="notes">
+<dt>Enclosing class:</dt>
+<dd><a href="CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a></dd>
+</dl>
 <hr>
-<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">NdJsonReadOptions</span>
+<div class="type-signature"><span class="modifiers">public static final class </span><span class="element-name type-name-label">CacheManagerOptions.Builder</span>
 <span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
-<div class="block">Configuration knobs for newline-delimited JSON sources passed to <a href="SessionContext.html#registerJson(java.lang.String,java.lang.String,org.apache.datafusion.NdJsonReadOptions)"><code>SessionContext.registerJson(String, String, NdJsonReadOptions)</code></a> and <a href="SessionContext.html#readJson(java.lang.String,org.apache.datafusion.NdJsonReadOptions)"><code>SessionContext.readJson(String, NdJsonReadOptions)</code></a>.
-
- <p>Mirrors a subset of DataFusion's <code>NdJsonReadOptions</code>. All setters return <code>this</code>
- for fluent chaining. Defaults match the Rust struct: <code>fileExtension = ".json"</code>, <code>
- fileCompressionType = UNCOMPRESSED</code>; <code>schemaInferMaxRecords</code> unset (the DataFusion default
- is used).</div>
+<div class="block">Builder for <a href="CacheManagerOptions.html" title="class in org.apache.datafusion"><code>CacheManagerOptions</code></a>.</div>
 </section>
 <section class="summary">
 <ul class="summary-list">
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<li>
-<section class="constructor-summary" id="constructor-summary">
-<h2>Constructor Summary</h2>
-<div class="caption"><span>Constructors</span></div>
-<div class="summary-table two-column-summary">
-<div class="table-header col-first">Constructor</div>
-<div class="table-header col-last">Description</div>
-<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">NdJsonReadOptions</a>()</code></div>
-<div class="col-last even-row-color">&nbsp;</div>
-</div>
-</section>
-</li>
 <!-- ========== METHOD SUMMARY =========== -->
 <li>
 <section class="method-summary" id="method-summary">
@@ -112,18 +98,26 @@ loadScripts(document, 'script');</script>
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#fileCompressionType(org.apache.datafusion.FileCompressionType)" class="member-name-link">fileCompressionType</a><wbr>(<a href="FileCompressionType.html" title="enum class in org.apache.datafusion">FileCompressionType</a>&nbsp;t)</code></div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#build()" class="member-name-link">build</a>()</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#fileExtension(java.lang.String)" class="member-name-link">fileExtension</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;ext)</code></div>
-<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#schema(org.apache.arrow.vector.types.pojo.Schema)" class="member-name-link">schema</a><wbr>(org.apache.arrow.vector.types.pojo.Schema&nbsp;schema)</code></div>
-<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#schemaInferMaxRecords(long)" class="member-name-link">schemaInferMaxRecords</a><wbr>(long&nbsp;n)</code></div>
-<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#fileMetadataCache(long)" class="member-name-link">fileMetadataCache</a><wbr>(long&nbsp;maxBytes)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Enable the file-embedded metadata cache (parquet footers, page metadata) with the given byte
+ cap.</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#fileStatisticsCache(boolean)" class="member-name-link">fileStatisticsCache</a><wbr>(boolean&nbsp;enabled)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Enable the file-statistics cache (per-file row counts / column statistics).</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#listFilesCache(long,java.time.Duration)" class="member-name-link">listFilesCache</a><wbr>(long&nbsp;maxBytes,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;ttl)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Enable the list-files cache with the given byte cap and TTL.</div>
+</div>
 </div>
 </div>
 </div>
@@ -136,47 +130,53 @@ loadScripts(document, 'script');</script>
 </section>
 <section class="details">
 <ul class="details-list">
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<li>
-<section class="constructor-details" id="constructor-detail">
-<h2>Constructor Details</h2>
-<ul class="member-list">
-<li>
-<section class="detail" id="&lt;init&gt;()">
-<h3>NdJsonReadOptions</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NdJsonReadOptions</span>()</div>
-</section>
-</li>
-</ul>
-</section>
-</li>
 <!-- ============ METHOD DETAIL ========== -->
 <li>
 <section class="method-details" id="method-detail">
 <h2>Method Details</h2>
 <ul class="member-list">
 <li>
-<section class="detail" id="fileExtension(java.lang.String)">
-<h3>fileExtension</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></span>&nbsp;<span class="element-name">fileExtension</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;ext)</span></div>
+<section class="detail" id="fileMetadataCache(long)">
+<h3>fileMetadataCache</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></span>&nbsp;<span class="element-name">fileMetadataCache</span><wbr><span class="parameters">(long&nbsp;maxBytes)</span></div>
+<div class="block">Enable the file-embedded metadata cache (parquet footers, page metadata) with the given byte
+ cap. The cap is the budget the upstream <code>DefaultFilesMetadataCache</code> uses to evict
+ entries; <code>0</code> is legal and means "construct the cache but with a 0-byte budget"
+ (effectively disabled but observable in stats).</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>maxBytes</code> is negative.</dd>
+</dl>
 </section>
 </li>
 <li>
-<section class="detail" id="fileCompressionType(org.apache.datafusion.FileCompressionType)">
-<h3>fileCompressionType</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></span>&nbsp;<span class="element-name">fileCompressionType</span><wbr><span class="parameters">(<a href="FileCompressionType.html" title="enum class in org.apache.datafusion">FileCompressionType</a>&nbsp;t)</span></div>
+<section class="detail" id="listFilesCache(long,java.time.Duration)">
+<h3>listFilesCache</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></span>&nbsp;<span class="element-name">listFilesCache</span><wbr><span class="parameters">(long&nbsp;maxBytes,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;ttl)</span></div>
+<div class="block">Enable the list-files cache with the given byte cap and TTL. Pass <code>null</code> for <code>
+ ttl</code> to use upstream's "no expiration" semantics (entries are evicted only by capacity
+ pressure).</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>maxBytes</code> is negative or <code>ttl</code> is negative.</dd>
+</dl>
 </section>
 </li>
 <li>
-<section class="detail" id="schemaInferMaxRecords(long)">
-<h3>schemaInferMaxRecords</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></span>&nbsp;<span class="element-name">schemaInferMaxRecords</span><wbr><span class="parameters">(long&nbsp;n)</span></div>
+<section class="detail" id="fileStatisticsCache(boolean)">
+<h3>fileStatisticsCache</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></span>&nbsp;<span class="element-name">fileStatisticsCache</span><wbr><span class="parameters">(boolean&nbsp;enabled)</span></div>
+<div class="block">Enable the file-statistics cache (per-file row counts / column statistics). When <code>
+ enabled</code> is <code>true</code>, the upstream <code>DefaultFileStatisticsCache</code> is installed. When
+ <code>false</code>, the slot is explicitly set to disabled in the wire format — the same end-state
+ as never calling this setter, but distinguishable for testing.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="schema(org.apache.arrow.vector.types.pojo.Schema)">
-<h3>schema</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></span>&nbsp;<span class="element-name">schema</span><wbr><span class="parameters">(org.apache.arrow.vector.types.pojo.Schema&nbsp;schema)</span></div>
+<section class="detail" id="build()">
+<h3>build</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a></span>&nbsp;<span class="element-name">build</span>()</div>
 </section>
 </li>
 </ul>
diff --git a/api/org/apache/datafusion/NativeLibraryLoader.html b/api/org/apache/datafusion/CacheManagerOptions.html
similarity index 65%
copy from api/org/apache/datafusion/NativeLibraryLoader.html
copy to api/org/apache/datafusion/CacheManagerOptions.html
index 6ff22c2..c192956 100644
--- a/api/org/apache/datafusion/NativeLibraryLoader.html
+++ b/api/org/apache/datafusion/CacheManagerOptions.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>NativeLibraryLoader (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>CacheManagerOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="declaration: package: org.apache.datafusion, class: NativeLibraryLoader">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: CacheManagerOptions">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
@@ -35,7 +35,7 @@ loadScripts(document, 'script');</script>
 <li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="nav-bar-cell1-rev">Class</li>
-<li><a href="class-use/NativeLibraryLoader.html">Use</a></li>
+<li><a href="class-use/CacheManagerOptions.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../index-all.html">Index</a></li>
 <li><a href="../../../help-doc.html#class">Help</a></li>
@@ -45,7 +45,7 @@ loadScripts(document, 'script');</script>
 <div>
 <ul class="sub-nav-list">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method-summary">Method</a></li>
@@ -70,18 +70,56 @@ loadScripts(document, 'script');</script>
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
-<h1 title="Class NativeLibraryLoader" class="title">Class NativeLibraryLoader</h1>
+<h1 title="Class CacheManagerOptions" class="title">Class CacheManagerOptions</h1>
 </div>
 <div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
-<div class="inheritance">org.apache.datafusion.NativeLibraryLoader</div>
+<div class="inheritance">org.apache.datafusion.CacheManagerOptions</div>
 </div>
 <section class="class-description" id="class-description">
 <hr>
-<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">NativeLibraryLoader</span>
+<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">CacheManagerOptions</span>
 <span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
+<div class="block">Configuration for DataFusion's built-in <code>CacheManager</code>. Pass an instance to <a href="SessionContextBuilder.html#cacheManager(org.apache.datafusion.CacheManagerOptions)"><code>SessionContextBuilder.cacheManager(CacheManagerOptions)</code></a> to turn on any of the three
+ upstream-provided caches at session construction time.
+
+ <p>The three caches are independent; calling one setter does not affect the others. A setter that
+ is never called leaves the upstream default in place — so existing callers that don't touch this
+ builder see no behavioral change.
+
+ <ul>
+   <li><a href="CacheManagerOptions.Builder.html#fileMetadataCache(long)"><code>CacheManagerOptions.Builder.fileMetadataCache(long)</code></a> — caches file-embedded metadata (e.g. parquet
+       footers / page metadata). Backed by <code>DefaultFilesMetadataCache</code> with the supplied
+       byte cap.
+   <li><a href="CacheManagerOptions.Builder.html#listFilesCache(long,java.time.Duration)"><code>CacheManagerOptions.Builder.listFilesCache(long, Duration)</code></a> — caches results of object-store <code>
+       list</code> operations. Backed by <code>DefaultListFilesCache</code> with the supplied byte cap and
+       optional TTL (<code>null</code> = infinite).
+   <li><a href="CacheManagerOptions.Builder.html#fileStatisticsCache(boolean)"><code>CacheManagerOptions.Builder.fileStatisticsCache(boolean)</code></a> — caches per-file row counts and column
+       statistics. Backed by <code>DefaultFileStatisticsCache</code>; no bytewise cap exists upstream.
+ </ul>
+
+ <p>This v1 surface configures the <em>built-in</em> cache implementations. Plugging custom Java
+ cache implementations through a JNI upcall path is intentionally out of scope — every cache
+ lookup is a hot path during scans, and routing them through Java would defeat the cache.</div>
 </section>
 <section class="summary">
 <ul class="summary-list">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<li>
+<section class="nested-class-summary" id="nested-class-summary">
+<h2>Nested Class Summary</h2>
+<div class="caption"><span>Nested Classes</span></div>
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Class</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color"><code>static final class&nbsp;</code></div>
+<div class="col-second even-row-color"><code><a href="CacheManagerOptions.Builder.html" class="type-name-link" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></code></div>
+<div class="col-last even-row-color">
+<div class="block">Builder for <a href="CacheManagerOptions.html" title="class in org.apache.datafusion"><code>CacheManagerOptions</code></a>.</div>
+</div>
+</div>
+</section>
+</li>
 <!-- ========== METHOD SUMMARY =========== -->
 <li>
 <section class="method-summary" id="method-summary">
@@ -93,9 +131,11 @@ loadScripts(document, 'script');</script>
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#loadLibrary()" class="member-name-link">loadLibrary</a>()</code></div>
-<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#builder()" class="member-name-link">builder</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
+<div class="block">Begin building a <a href="CacheManagerOptions.html" title="class in org.apache.datafusion"><code>CacheManagerOptions</code></a> instance.</div>
+</div>
 </div>
 </div>
 </div>
@@ -114,9 +154,10 @@ loadScripts(document, 'script');</script>
 <h2>Method Details</h2>
 <ul class="member-list">
 <li>
-<section class="detail" id="loadLibrary()">
-<h3>loadLibrary</h3>
-<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">loadLibrary</span>()</div>
+<section class="detail" id="builder()">
+<h3>builder</h3>
+<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></span>&nbsp;<span class="element-name">builder</span>()</div>
+<div class="block">Begin building a <a href="CacheManagerOptions.html" title="class in org.apache.datafusion"><code>CacheManagerOptions</code></a> instance.</div>
 </section>
 </li>
 </ul>
diff --git a/api/org/apache/datafusion/ColumnarValue.Array.html b/api/org/apache/datafusion/ColumnarValue.Array.html
index c6f55ab..a46e68e 100644
--- a/api/org/apache/datafusion/ColumnarValue.Array.html
+++ b/api/org/apache/datafusion/ColumnarValue.Array.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ColumnarValue.Array (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ColumnarValue.Array (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, interface: ColumnarValue, record: Array">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ColumnarValue.Scalar.html b/api/org/apache/datafusion/ColumnarValue.Scalar.html
index db17587..ff5ae9a 100644
--- a/api/org/apache/datafusion/ColumnarValue.Scalar.html
+++ b/api/org/apache/datafusion/ColumnarValue.Scalar.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ColumnarValue.Scalar (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ColumnarValue.Scalar (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, interface: ColumnarValue, record: Scalar">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ColumnarValue.html b/api/org/apache/datafusion/ColumnarValue.html
index 67c5c0a..d89c7a9 100644
--- a/api/org/apache/datafusion/ColumnarValue.html
+++ b/api/org/apache/datafusion/ColumnarValue.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ColumnarValue (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ColumnarValue (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, interface: ColumnarValue">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ConfigurationException.html b/api/org/apache/datafusion/ConfigurationException.html
new file mode 100644
index 0000000..30c96ee
--- /dev/null
+++ b/api/org/apache/datafusion/ConfigurationException.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<html lang>
+<head>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ConfigurationException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: ConfigurationException">
+<meta name="generator" content="javadoc/ClassWriterImpl">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">var pathtoroot = "../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<div class="flex-box">
+<header role="banner" class="flex-header">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="nav-bar-cell1-rev">Class</li>
+<li><a href="class-use/ConfigurationException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html#class">Help</a></li>
+</ul>
+</div>
+<div class="sub-nav">
+<div>
+<ul class="sub-nav-list">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method-summary">Method</a></li>
+</ul>
+<ul class="sub-nav-list">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<div class="nav-list-search"><label for="search-input">SEARCH:</label>
+<input type="text" id="search-input" value="search" disabled="disabled">
+<input type="reset" id="reset-button" value="reset" disabled="disabled">
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="flex-content">
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
+<h1 title="Class ConfigurationException" class="title">Class ConfigurationException</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">java.lang.RuntimeException</a>
+<div class="inheritance"><a href="DataFusionException.html" title="class in org.apache.datafusion">org.apache.datafusion.DataFusionException</a>
+<div class="inheritance">org.apache.datafusion.ConfigurationException</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<section class="class-description" id="class-description">
+<dl class="notes">
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">ConfigurationException</span>
+<span class="extends-implements">extends <a href="DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a></span></div>
+<div class="block">Invalid or unrecognised DataFusion configuration option. Surfaces upstream <code>
+ DataFusionError::Configuration</code>.</div>
+<dl class="notes">
+<dt>See Also:</dt>
+<dd>
+<ul class="see-list">
+<li><a href="../../../serialized-form.html#org.apache.datafusion.ConfigurationException">Serialized Form</a></li>
+</ul>
+</dd>
+</dl>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<li>
+<section class="constructor-summary" id="constructor-summary">
+<h2>Constructor Summary</h2>
+<div class="caption"><span>Constructors</span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Constructor</div>
+<div class="table-header col-last">Description</div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.lang.String)" class="member-name-link">ConfigurationException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">ConfigurationException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</code></div>
+<div class="col-last odd-row-color">&nbsp;</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/ [...]
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or  [...]
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<li>
+<section class="constructor-details" id="constructor-detail">
+<h2>Constructor Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String)">
+<h3>ConfigurationException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ConfigurationException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</span></div>
+</section>
+</li>
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<h3>ConfigurationException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ConfigurationException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</span></div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+</main>
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
+</footer>
+</div>
+</div>
+</body>
+</html>
diff --git a/api/org/apache/datafusion/CsvReadOptions.html b/api/org/apache/datafusion/CsvReadOptions.html
index ba4d5ad..952a67c 100644
--- a/api/org/apache/datafusion/CsvReadOptions.html
+++ b/api/org/apache/datafusion/CsvReadOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>CsvReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>CsvReadOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: CsvReadOptions">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/CsvWriteOptions.html b/api/org/apache/datafusion/CsvWriteOptions.html
index 838d14e..ac97462 100644
--- a/api/org/apache/datafusion/CsvWriteOptions.html
+++ b/api/org/apache/datafusion/CsvWriteOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>CsvWriteOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>CsvWriteOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: CsvWriteOptions">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/DataFrame.html b/api/org/apache/datafusion/DataFrame.html
index af3ef8c..c30ffbc 100644
--- a/api/org/apache/datafusion/DataFrame.html
+++ b/api/org/apache/datafusion/DataFrame.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>DataFrame (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>DataFrame (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: DataFrame">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
@@ -139,6 +139,17 @@ implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
 <div class="block">Drop the named columns.</div>
 </div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#except(org.apache.datafusion.DataFrame)" class="member-name-link">except</a><wbr>(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Rows present in this DataFrame but not in <code>other</code>, keeping duplicates from the receiver
+ (SQL <code>EXCEPT ALL</code>).</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#exceptDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">exceptDistinct</a><wbr>(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Rows present in this DataFrame but not in <code>other</code>, deduplicated (SQL <code>EXCEPT</code>).</div>
+</div>
 <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.apache.arrow.vector.ipc.ArrowReader</code></div>
 <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#executeStream(org.apache.arrow.memory.BufferAllocator)" class="member-name-link">executeStream</a><wbr>(org.apache.arrow.memory.BufferAllocator&nbsp;allocator)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
@@ -156,6 +167,17 @@ implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base
 <div class="block">Apply a SQL predicate to produce a filtered DataFrame.</div>
 </div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#intersect(org.apache.datafusion.DataFrame)" class="member-name-link">intersect</a><wbr>(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Rows present in both this DataFrame and <code>other</code>, keeping duplicates from the receiver
+ (SQL <code>INTERSECT ALL</code>).</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#intersectDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">intersectDistinct</a><wbr>(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Rows present in both this DataFrame and <code>other</code>, deduplicated (SQL <code>INTERSECT</code>).</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
 <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#join(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String%5B%5D,java.lang.String%5B%5D)" class="member-name-link">join</a><wbr>(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;right,
  <a href="JoinType.html" title="enum class in org.apache.datafusion">JoinType</a>&nbsp;type,
  <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;leftCols,
@@ -193,6 +215,20 @@ implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
 <div class="block">Skip <code>skip</code> rows, then take the next <code>fetch</code> rows.</div>
 </div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#repartitionHash(int,java.lang.String...)" class="member-name-link">repartitionHash</a><wbr>(int&nbsp;numPartitions,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;columns)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Repartition this DataFrame by hashing the named columns into <code>numPartitions</code> output
+ partitions. v1 supports column-name keys only; expression keys are deferred until the Java
+ binding gains an <code>Expr</code> builder.</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#repartitionRoundRobin(int)" class="member-name-link">repartitionRoundRobin</a><wbr>(int&nbsp;numPartitions)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Repartition this DataFrame using a round-robin scheme across <code>numPartitions</code> output
+ partitions.</div>
+</div>
 <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.apache.arrow.vector.types.pojo.Schema</code></div>
 <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#schema()" class="member-name-link">schema</a>()</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
@@ -214,59 +250,86 @@ implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base
 <div class="block">Execute the plan and print the first <code>limit</code> rows to native stdout.</div>
 </div>
 <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#unnestColumns(java.lang.String...)" class="member-name-link">unnestColumns</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;columns)</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#sort(org.apache.datafusion.SortExpr...)" class="member-name-link">sort</a><wbr>(<a href="SortExpr.html" title="class in org.apache.datafusion">SortExpr</a>...&nbsp;exprs)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Expand list or struct columns into rows or fields, with default <a href="UnnestOptions.html" title="class in org.apache.datafusion"><code>UnnestOptions</code></a> (i.e.</div>
+<div class="block">Order the rows by the supplied sort keys.</div>
 </div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#unnestColumns(org.apache.datafusion.UnnestOptions,java.lang.String...)" class="member-name-link">unnestColumns</a><wbr>(<a href="UnnestOptions.html" title="class in org.apache.datafusion">UnnestOptions</a>&nbsp;options,
- <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;columns)</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#union(org.apache.datafusion.DataFrame)" class="member-name-link">union</a><wbr>(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Expand list or struct columns into rows or fields with the supplied <a href="UnnestOptions.html" title="class in org.apache.datafusion"><code>UnnestOptions</code></a>.</div>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column position, keeping all duplicates (SQL
+ <code>UNION ALL</code>).</div>
 </div>
 <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withColumn(java.lang.String,java.lang.String)" class="member-name-link">withColumn</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
- <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expr)</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#unionByName(org.apache.datafusion.DataFrame)" class="member-name-link">unionByName</a><wbr>(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Add a column to this DataFrame computed from a SQL expression.</div>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column name, keeping all duplicates.</div>
 </div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withColumnRenamed(java.lang.String,java.lang.String)" class="member-name-link">withColumnRenamed</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;oldName,
- <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;newName)</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#unionByNameDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">unionByNameDistinct</a><wbr>(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Rename a column.</div>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column name, removing duplicates.</div>
 </div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeCsv(java.lang.String)" class="member-name-link">writeCsv</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#unionDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">unionDistinct</a><wbr>(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Materialize this DataFrame as CSV at <code>path</code>.</div>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column position, removing duplicates (SQL
+ <code>UNION DISTINCT</code> -- equivalent to plain <code>UNION</code> in standard SQL).</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#unnestColumns(java.lang.String...)" class="member-name-link">unnestColumns</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;columns)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Expand list or struct columns into rows or fields, with default <a href="UnnestOptions.html" title="class in org.apache.datafusion"><code>UnnestOptions</code></a> (i.e.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#unnestColumns(org.apache.datafusion.UnnestOptions,java.lang.String...)" class="member-name-link">unnestColumns</a><wbr>(<a href="UnnestOptions.html" title="class in org.apache.datafusion">UnnestOptions</a>&nbsp;options,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;columns)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Expand list or struct columns into rows or fields with the supplied <a href="UnnestOptions.html" title="class in org.apache.datafusion"><code>UnnestOptions</code></a>.</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withColumn(java.lang.String,java.lang.String)" class="member-name-link">withColumn</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expr)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Add a column to this DataFrame computed from a SQL expression.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withColumnRenamed(java.lang.String,java.lang.String)" class="member-name-link">withColumnRenamed</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;oldName,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;newName)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Rename a column.</div>
 </div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeCsv(java.lang.String,org.apache.datafusion.CsvWriteOptions)" class="member-name-link">writeCsv</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
- <a href="CsvWriteOptions.html" title="class in org.apache.datafusion">CsvWriteOptions</a>&nbsp;options)</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeCsv(java.lang.String)" class="member-name-link">writeCsv</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Materialize this DataFrame as CSV at <code>path</code> with the supplied <a href="CsvWriteOptions.html" title="class in org.apache.datafusion"><code>CsvWriteOptions</code></a>.</div>
+<div class="block">Materialize this DataFrame as CSV at <code>path</code>.</div>
 </div>
 <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeJson(java.lang.String)" class="member-name-link">writeJson</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeCsv(java.lang.String,org.apache.datafusion.CsvWriteOptions)" class="member-name-link">writeCsv</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
+ <a href="CsvWriteOptions.html" title="class in org.apache.datafusion">CsvWriteOptions</a>&nbsp;options)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Materialize this DataFrame as newline-delimited JSON at <code>path</code>.</div>
+<div class="block">Materialize this DataFrame as CSV at <code>path</code> with the supplied <a href="CsvWriteOptions.html" title="class in org.apache.datafusion"><code>CsvWriteOptions</code></a>.</div>
 </div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeJson(java.lang.String,org.apache.datafusion.JsonWriteOptions)" class="member-name-link">writeJson</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
- <a href="JsonWriteOptions.html" title="class in org.apache.datafusion">JsonWriteOptions</a>&nbsp;options)</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeJson(java.lang.String)" class="member-name-link">writeJson</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Materialize this DataFrame as newline-delimited JSON at <code>path</code> with the supplied <a href="JsonWriteOptions.html" title="class in org.apache.datafusion"><code>JsonWriteOptions</code></a>.</div>
+<div class="block">Materialize this DataFrame as newline-delimited JSON at <code>path</code>.</div>
 </div>
 <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeParquet(java.lang.String)" class="member-name-link">writeParquet</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeJson(java.lang.String,org.apache.datafusion.JsonWriteOptions)" class="member-name-link">writeJson</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
+ <a href="JsonWriteOptions.html" title="class in org.apache.datafusion">JsonWriteOptions</a>&nbsp;options)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Materialize this DataFrame as Parquet at <code>path</code>.</div>
+<div class="block">Materialize this DataFrame as newline-delimited JSON at <code>path</code> with the supplied <a href="JsonWriteOptions.html" title="class in org.apache.datafusion"><code>JsonWriteOptions</code></a>.</div>
 </div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeParquet(java.lang.String,org.apache.datafusion.ParquetWriteOptions)" class="member-name-link">writeParquet</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
- <a href="ParquetWriteOptions.html" title="class in org.apache.datafusion">ParquetWriteOptions</a>&nbsp;options)</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeParquet(java.lang.String)" class="member-name-link">writeParquet</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Materialize this DataFrame as Parquet at <code>path</code>.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeParquet(java.lang.String,org.apache.datafusion.ParquetWriteOptions)" class="member-name-link">writeParquet</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
+ <a href="ParquetWriteOptions.html" title="class in org.apache.datafusion">ParquetWriteOptions</a>&nbsp;options)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
 <div class="block">Materialize this DataFrame as Parquet at <code>path</code> with the supplied <a href="ParquetWriteOptions.html" title="class in org.apache.datafusion"><code>ParquetWriteOptions</code></a>.</div>
 </div>
 </div>
@@ -490,6 +553,176 @@ implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base
 </section>
 </li>
 <li>
+<section class="detail" id="union(org.apache.datafusion.DataFrame)">
+<h3>union</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">union</span><wbr><span class="parameters">(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</span></div>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column position, keeping all duplicates (SQL
+ <code>UNION ALL</code>). The two schemas must match positionally. Both this DataFrame and <code>
+ other</code> remain usable after the call and must still be closed independently.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>other</code> is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if the schemas are incompatible.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="unionDistinct(org.apache.datafusion.DataFrame)">
+<h3>unionDistinct</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">unionDistinct</span><wbr><span class="parameters">(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</span></div>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column position, removing duplicates (SQL
+ <code>UNION DISTINCT</code> -- equivalent to plain <code>UNION</code> in standard SQL). Both DataFrames
+ remain usable.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>other</code> is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if the schemas are incompatible.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="unionByName(org.apache.datafusion.DataFrame)">
+<h3>unionByName</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">unionByName</span><wbr><span class="parameters">(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</span></div>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column name, keeping all duplicates. Columns
+ present in only one side are filled with NULL on the other. Both DataFrames remain usable.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>other</code> is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if column types disagree on a shared name.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="unionByNameDistinct(org.apache.datafusion.DataFrame)">
+<h3>unionByNameDistinct</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">unionByNameDistinct</span><wbr><span class="parameters">(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</span></div>
+<div class="block">Concatenate this DataFrame with <code>other</code> by column name, removing duplicates. Columns
+ present in only one side are filled with NULL on the other. Both DataFrames remain usable.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>other</code> is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if column types disagree on a shared name.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="intersect(org.apache.datafusion.DataFrame)">
+<h3>intersect</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">intersect</span><wbr><span class="parameters">(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</span></div>
+<div class="block">Rows present in both this DataFrame and <code>other</code>, keeping duplicates from the receiver
+ (SQL <code>INTERSECT ALL</code>). Both schemas must match positionally. Both DataFrames remain
+ usable.
+
+ <p><strong>Implementation note:</strong> DataFusion implements <code>INTERSECT ALL</code> as a
+ left-semi join on equality, not as standard SQL bag intersection. A left row is kept iff any
+ matching row exists in <code>other</code>. With <code>left = (1, 2, 2, 3)</code> and <code>right = (2,
+ 3)</code>, the result is <code>(2, 2, 3)</code> -- both copies of <code>2</code> survive because each finds a
+ match in <code>right</code>. PostgreSQL / Spark <code>INTERSECT ALL</code> would also yield <code>(2, 2,
+ 3)</code> here, but the two engines diverge when <code>other</code> has fewer copies than <code>this</code> of
+ a row that appears in both.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>other</code> is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if the schemas are incompatible.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="intersectDistinct(org.apache.datafusion.DataFrame)">
+<h3>intersectDistinct</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">intersectDistinct</span><wbr><span class="parameters">(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</span></div>
+<div class="block">Rows present in both this DataFrame and <code>other</code>, deduplicated (SQL <code>INTERSECT</code>).
+ Both schemas must match positionally. Both DataFrames remain usable.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>other</code> is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if the schemas are incompatible.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="except(org.apache.datafusion.DataFrame)">
+<h3>except</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">except</span><wbr><span class="parameters">(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</span></div>
+<div class="block">Rows present in this DataFrame but not in <code>other</code>, keeping duplicates from the receiver
+ (SQL <code>EXCEPT ALL</code>). Both schemas must match positionally. Both DataFrames remain usable.
+
+ <p><strong>Implementation note:</strong> DataFusion implements <code>EXCEPT ALL</code> as a
+ left-anti join on equality, not as standard SQL bag difference. A left row is kept iff
+ <em>no</em> matching row exists in <code>other</code> -- the multiplicity of matches is irrelevant.
+ With <code>left = (1, 1, 2, 2, 3)</code> and <code>right = (1, 3)</code>, the result is <code>(2, 2)</code>:
+ both copies of <code>2</code> survive (no match in <code>right</code>); both copies of <code>1</code> and the
+ <code>3</code> drop. PostgreSQL / Spark <code>EXCEPT ALL</code> would yield the same answer here, but the
+ two engines diverge when <code>right</code> contains fewer copies than <code>left</code> of a row that
+ appears in both.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>other</code> is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if the schemas are incompatible.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="exceptDistinct(org.apache.datafusion.DataFrame)">
+<h3>exceptDistinct</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">exceptDistinct</span><wbr><span class="parameters">(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</span></div>
+<div class="block">Rows present in this DataFrame but not in <code>other</code>, deduplicated (SQL <code>EXCEPT</code>).
+ Both schemas must match positionally. Both DataFrames remain usable.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>other</code> is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if the schemas are incompatible.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="sort(org.apache.datafusion.SortExpr...)">
+<h3>sort</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">sort</span><wbr><span class="parameters">(<a href="SortExpr.html" title="class in org.apache.datafusion">SortExpr</a>...&nbsp;exprs)</span></div>
+<div class="block">Order the rows by the supplied sort keys. Each <a href="SortExpr.html" title="class in org.apache.datafusion"><code>SortExpr</code></a> names a column and a direction
+ (<a href="SortExpr.html#asc(java.lang.String)"><code>SortExpr.asc(String)</code></a> / <a href="SortExpr.html#desc(java.lang.String)"><code>SortExpr.desc(String)</code></a>); call <a href="SortExpr.html#nullsFirst(boolean)"><code>SortExpr.nullsFirst(boolean)</code></a> to override null placement.
+
+ <p>An empty <code>exprs</code> array is a no-op (matches DataFusion's <code>sort(vec![])</code>). The
+ receiver remains usable and must still be closed independently.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>exprs</code> or any element is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if a sort column does not exist in this DataFrame's schema.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="repartitionRoundRobin(int)">
+<h3>repartitionRoundRobin</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">repartitionRoundRobin</span><wbr><span class="parameters">(int&nbsp;numPartitions)</span></div>
+<div class="block">Repartition this DataFrame using a round-robin scheme across <code>numPartitions</code> output
+ partitions. The receiver remains usable and must still be closed independently.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>numPartitions &lt;= 0</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if the underlying repartition plan rejects the request.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="repartitionHash(int,java.lang.String...)">
+<h3>repartitionHash</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">repartitionHash</span><wbr><span class="parameters">(int&nbsp;numPartitions,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;columns)</span></div>
+<div class="block">Repartition this DataFrame by hashing the named columns into <code>numPartitions</code> output
+ partitions. v1 supports column-name keys only; expression keys are deferred until the Java
+ binding gains an <code>Expr</code> builder. The receiver remains usable and must still be closed
+ independently.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>numPartitions &lt;= 0</code>, <code>columns</code> is <code>null</code>
+     or empty, or any element of <code>columns</code> is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if a partition column does not exist in this DataFrame's schema.</dd>
+</dl>
+</section>
+</li>
+<li>
 <section class="detail" id="join(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String[],java.lang.String[])">
 <h3>join</h3>
 <div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">join</span><wbr><span class="parameters">(<a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;right,
diff --git a/api/org/apache/datafusion/DataFusionException.html b/api/org/apache/datafusion/DataFusionException.html
new file mode 100644
index 0000000..774b466
--- /dev/null
+++ b/api/org/apache/datafusion/DataFusionException.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML>
+<html lang>
+<head>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>DataFusionException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: DataFusionException">
+<meta name="generator" content="javadoc/ClassWriterImpl">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">var pathtoroot = "../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<div class="flex-box">
+<header role="banner" class="flex-header">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="nav-bar-cell1-rev">Class</li>
+<li><a href="class-use/DataFusionException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html#class">Help</a></li>
+</ul>
+</div>
+<div class="sub-nav">
+<div>
+<ul class="sub-nav-list">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method-summary">Method</a></li>
+</ul>
+<ul class="sub-nav-list">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<div class="nav-list-search"><label for="search-input">SEARCH:</label>
+<input type="text" id="search-input" value="search" disabled="disabled">
+<input type="reset" id="reset-button" value="reset" disabled="disabled">
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="flex-content">
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
+<h1 title="Class DataFusionException" class="title">Class DataFusionException</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">java.lang.RuntimeException</a>
+<div class="inheritance">org.apache.datafusion.DataFusionException</div>
+</div>
+</div>
+</div>
+</div>
+<section class="class-description" id="class-description">
+<dl class="notes">
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
+</dl>
+<dl class="notes">
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="ConfigurationException.html" title="class in org.apache.datafusion">ConfigurationException</a></code>, <code><a href="ExecutionException.html" title="class in org.apache.datafusion">ExecutionException</a></code>, <code><a href="IoException.html" title="class in org.apache.datafusion">IoException</a></code>, <code><a href="NotImplementedException.html" title="class in org.apache.datafusion">NotImplementedException</a></code>, <code><a href="PlanException.html" title="cl [...]
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">DataFusionException</span>
+<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></span></div>
+<div class="block">Base unchecked exception for every error surfaced from the native DataFusion side.
+
+ <p>Concrete subclasses correspond to caller-relevant error categories (planning, execution, IO,
+ resources, configuration, not-implemented). Variants of <code>DataFusionError</code> on the Rust side
+ that don't fit a clean caller-facing category surface as the parent class itself.
+
+ <p>All subclasses extend <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link"><code>RuntimeException</code></a> so existing callers that <code>catch
+ (RuntimeException)</code> keep working unchanged. Callers that want to discriminate can <code>catch
+ (PlanException)</code> / <code>catch (ResourcesExhaustedException)</code> etc., or <code>catch
+ (DataFusionException)</code> for "anything from DataFusion".</div>
+<dl class="notes">
+<dt>See Also:</dt>
+<dd>
+<ul class="see-list">
+<li><a href="../../../serialized-form.html#org.apache.datafusion.DataFusionException">Serialized Form</a></li>
+</ul>
+</dd>
+</dl>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<li>
+<section class="constructor-summary" id="constructor-summary">
+<h2>Constructor Summary</h2>
+<div class="caption"><span>Constructors</span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Constructor</div>
+<div class="table-header col-last">Description</div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.lang.String)" class="member-name-link">DataFusionException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">DataFusionException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</code></div>
+<div class="col-last odd-row-color">&nbsp;</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/ [...]
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or  [...]
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<li>
+<section class="constructor-details" id="constructor-detail">
+<h2>Constructor Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String)">
+<h3>DataFusionException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">DataFusionException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</span></div>
+</section>
+</li>
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<h3>DataFusionException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">DataFusionException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</span></div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+</main>
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
+</footer>
+</div>
+</div>
+</body>
+</html>
diff --git a/api/org/apache/datafusion/ExecutionException.html b/api/org/apache/datafusion/ExecutionException.html
new file mode 100644
index 0000000..4d695ba
--- /dev/null
+++ b/api/org/apache/datafusion/ExecutionException.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML>
+<html lang>
+<head>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ExecutionException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: ExecutionException">
+<meta name="generator" content="javadoc/ClassWriterImpl">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">var pathtoroot = "../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<div class="flex-box">
+<header role="banner" class="flex-header">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="nav-bar-cell1-rev">Class</li>
+<li><a href="class-use/ExecutionException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html#class">Help</a></li>
+</ul>
+</div>
+<div class="sub-nav">
+<div>
+<ul class="sub-nav-list">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method-summary">Method</a></li>
+</ul>
+<ul class="sub-nav-list">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<div class="nav-list-search"><label for="search-input">SEARCH:</label>
+<input type="text" id="search-input" value="search" disabled="disabled">
+<input type="reset" id="reset-button" value="reset" disabled="disabled">
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="flex-content">
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
+<h1 title="Class ExecutionException" class="title">Class ExecutionException</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">java.lang.RuntimeException</a>
+<div class="inheritance"><a href="DataFusionException.html" title="class in org.apache.datafusion">org.apache.datafusion.DataFusionException</a>
+<div class="inheritance">org.apache.datafusion.ExecutionException</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<section class="class-description" id="class-description">
+<dl class="notes">
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">ExecutionException</span>
+<span class="extends-implements">extends <a href="DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a></span></div>
+<div class="block">Runtime execution failure: a UDF threw, a join task panicked, an external (non-DataFusion) error
+ propagated up, or an FFI-level failure surfaced. Surfaces upstream <code>
+ DataFusionError::Execution</code>, <code>ExecutionJoin</code>, <code>External</code>, and <code>Ffi</code>.
+
+ <p>Note: this is <code>org.apache.datafusion.ExecutionException</code>, distinct from <code>
+ java.util.concurrent.ExecutionException</code>. A file that needs both should fully-qualify one or
+ import them with care.</div>
+<dl class="notes">
+<dt>See Also:</dt>
+<dd>
+<ul class="see-list">
+<li><a href="../../../serialized-form.html#org.apache.datafusion.ExecutionException">Serialized Form</a></li>
+</ul>
+</dd>
+</dl>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<li>
+<section class="constructor-summary" id="constructor-summary">
+<h2>Constructor Summary</h2>
+<div class="caption"><span>Constructors</span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Constructor</div>
+<div class="table-header col-last">Description</div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.lang.String)" class="member-name-link">ExecutionException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">ExecutionException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</code></div>
+<div class="col-last odd-row-color">&nbsp;</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/ [...]
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or  [...]
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<li>
+<section class="constructor-details" id="constructor-detail">
+<h2>Constructor Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String)">
+<h3>ExecutionException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ExecutionException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</span></div>
+</section>
+</li>
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<h3>ExecutionException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ExecutionException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</span></div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+</main>
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
+</footer>
+</div>
+</div>
+</body>
+</html>
diff --git a/api/org/apache/datafusion/FileCompressionType.html b/api/org/apache/datafusion/FileCompressionType.html
index 74e5a29..142d9a0 100644
--- a/api/org/apache/datafusion/FileCompressionType.html
+++ b/api/org/apache/datafusion/FileCompressionType.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>FileCompressionType (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>FileCompressionType (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, enum: FileCompressionType">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/IoException.html b/api/org/apache/datafusion/IoException.html
new file mode 100644
index 0000000..352b236
--- /dev/null
+++ b/api/org/apache/datafusion/IoException.html
@@ -0,0 +1,174 @@
+<!DOCTYPE HTML>
+<html lang>
+<head>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>IoException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: IoException">
+<meta name="generator" content="javadoc/ClassWriterImpl">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">var pathtoroot = "../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<div class="flex-box">
+<header role="banner" class="flex-header">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="nav-bar-cell1-rev">Class</li>
+<li><a href="class-use/IoException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html#class">Help</a></li>
+</ul>
+</div>
+<div class="sub-nav">
+<div>
+<ul class="sub-nav-list">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method-summary">Method</a></li>
+</ul>
+<ul class="sub-nav-list">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<div class="nav-list-search"><label for="search-input">SEARCH:</label>
+<input type="text" id="search-input" value="search" disabled="disabled">
+<input type="reset" id="reset-button" value="reset" disabled="disabled">
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="flex-content">
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
+<h1 title="Class IoException" class="title">Class IoException</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">java.lang.RuntimeException</a>
+<div class="inheritance"><a href="DataFusionException.html" title="class in org.apache.datafusion">org.apache.datafusion.DataFusionException</a>
+<div class="inheritance">org.apache.datafusion.IoException</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<section class="class-description" id="class-description">
+<dl class="notes">
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">IoException</span>
+<span class="extends-implements">extends <a href="DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a></span></div>
+<div class="block">IO-shaped failure: a local filesystem read failed, an object store request failed, or a parquet /
+ arrow / avro decoder reported a malformed file. Surfaces upstream <code>
+ DataFusionError::IoError</code>, <code>ObjectStore</code>, <code>ArrowError</code>, <code>ParquetError</code>, and
+ <code>AvroError</code>.
+
+ <p>Note: this is <code>org.apache.datafusion.IoException</code> (lowercase <code>o</code>), distinct from
+ <code>java.io.IOException</code>. The <code>IoException</code> spelling matches the orthography of the
+ underlying <code>DataFusionError::IoError</code> variant; a file that needs both should fully-qualify
+ one.</div>
+<dl class="notes">
+<dt>See Also:</dt>
+<dd>
+<ul class="see-list">
+<li><a href="../../../serialized-form.html#org.apache.datafusion.IoException">Serialized Form</a></li>
+</ul>
+</dd>
+</dl>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<li>
+<section class="constructor-summary" id="constructor-summary">
+<h2>Constructor Summary</h2>
+<div class="caption"><span>Constructors</span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Constructor</div>
+<div class="table-header col-last">Description</div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.lang.String)" class="member-name-link">IoException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">IoException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</code></div>
+<div class="col-last odd-row-color">&nbsp;</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/ [...]
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or  [...]
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<li>
+<section class="constructor-details" id="constructor-detail">
+<h2>Constructor Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String)">
+<h3>IoException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">IoException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</span></div>
+</section>
+</li>
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<h3>IoException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">IoException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</span></div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+</main>
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
+</footer>
+</div>
+</div>
+</body>
+</html>
diff --git a/api/org/apache/datafusion/JoinType.html b/api/org/apache/datafusion/JoinType.html
index 172c02b..d1b5387 100644
--- a/api/org/apache/datafusion/JoinType.html
+++ b/api/org/apache/datafusion/JoinType.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>JoinType (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>JoinType (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, enum: JoinType">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/JsonWriteOptions.html b/api/org/apache/datafusion/JsonWriteOptions.html
index 34f2fcd..4c60003 100644
--- a/api/org/apache/datafusion/JsonWriteOptions.html
+++ b/api/org/apache/datafusion/JsonWriteOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>JsonWriteOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>JsonWriteOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: JsonWriteOptions">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/UnnestOptions.html b/api/org/apache/datafusion/MemoryUsage.html
similarity index 65%
copy from api/org/apache/datafusion/UnnestOptions.html
copy to api/org/apache/datafusion/MemoryUsage.html
index 64a6e9e..937268a 100644
--- a/api/org/apache/datafusion/UnnestOptions.html
+++ b/api/org/apache/datafusion/MemoryUsage.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>UnnestOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>MemoryUsage (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="declaration: package: org.apache.datafusion, class: UnnestOptions">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: MemoryUsage">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
@@ -35,7 +35,7 @@ loadScripts(document, 'script');</script>
 <li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="nav-bar-cell1-rev">Class</li>
-<li><a href="class-use/UnnestOptions.html">Use</a></li>
+<li><a href="class-use/MemoryUsage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../index-all.html">Index</a></li>
 <li><a href="../../../help-doc.html#class">Help</a></li>
@@ -70,20 +70,24 @@ loadScripts(document, 'script');</script>
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
-<h1 title="Class UnnestOptions" class="title">Class UnnestOptions</h1>
+<h1 title="Class MemoryUsage" class="title">Class MemoryUsage</h1>
 </div>
 <div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
-<div class="inheritance">org.apache.datafusion.UnnestOptions</div>
+<div class="inheritance">org.apache.datafusion.MemoryUsage</div>
 </div>
 <section class="class-description" id="class-description">
 <hr>
-<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">UnnestOptions</span>
+<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">MemoryUsage</span>
 <span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
-<div class="block">Configuration knobs for <a href="DataFrame.html#unnestColumns(org.apache.datafusion.UnnestOptions,java.lang.String...)"><code>DataFrame.unnestColumns(UnnestOptions, String...)</code></a>, mirroring
- DataFusion's <code>UnnestOptions</code>. Defaults match upstream: <code>preserveNulls = true</code>.
+<div class="block">Snapshot of session-wide memory usage from <a href="SessionContext.html#memoryUsage()"><code>SessionContext.memoryUsage()</code></a>. Returns the
+ total bytes currently reserved against the session's <code>MemoryPool</code> and the peak observed
+ since the session was created.
 
- <p>Per-column recursion (DataFusion's <code>recursions</code>) is intentionally not exposed yet — it
- needs a richer column-pair representation and is filed separately.</div>
+ <p>Multi-tenant attribution: place each tenant in its own <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a>. Sessions in
+ DataFusion are cheap; one per tenant is the standard pattern. Within a single session, the
+ snapshot is the sum across all in-flight queries' operator reservations -- see <a href="SessionContext.html#memoryUsage()"><code>SessionContext.memoryUsage()</code></a> for the precise definition of what is and is not counted.
+
+ <p>Instances are immutable.</div>
 </section>
 <section class="summary">
 <ul class="summary-list">
@@ -95,7 +99,8 @@ loadScripts(document, 'script');</script>
 <div class="summary-table two-column-summary">
 <div class="table-header col-first">Constructor</div>
 <div class="table-header col-last">Description</div>
-<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">UnnestOptions</a>()</code></div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(long,long)" class="member-name-link">MemoryUsage</a><wbr>(long&nbsp;currentBytes,
+ long&nbsp;peakBytes)</code></div>
 <div class="col-last even-row-color">&nbsp;</div>
 </div>
 </section>
@@ -111,23 +116,25 @@ loadScripts(document, 'script');</script>
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#preserveNulls()" class="member-name-link">preserveNulls</a>()</code></div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#currentBytes()" class="member-name-link">currentBytes</a>()</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">The current <code>preserveNulls</code> setting.</div>
+<div class="block">Bytes currently reserved against this session's <code>MemoryPool</code>.</div>
 </div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="UnnestOptions.html" title="class in org.apache.datafusion">UnnestOptions</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#preserveNulls(boolean)" class="member-name-link">preserveNulls</a><wbr>(boolean&nbsp;v)</code></div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#peakBytes()" class="member-name-link">peakBytes</a>()</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">When <code>true</code> (the default), nulls in the input column are preserved as null rows in the
- output.</div>
+<div class="block">Maximum value of <a href="#currentBytes()"><code>currentBytes()</code></a> observed since the session was created.</div>
 </div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
 </div>
 </div>
 </div>
 <div class="inherited-list">
 <h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
-<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or  [...]
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or  [...]
 </section>
 </li>
 </ul>
@@ -140,9 +147,10 @@ loadScripts(document, 'script');</script>
 <h2>Constructor Details</h2>
 <ul class="member-list">
 <li>
-<section class="detail" id="&lt;init&gt;()">
-<h3>UnnestOptions</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">UnnestOptions</span>()</div>
+<section class="detail" id="&lt;init&gt;(long,long)">
+<h3>MemoryUsage</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">MemoryUsage</span><wbr><span class="parameters">(long&nbsp;currentBytes,
+ long&nbsp;peakBytes)</span></div>
 </section>
 </li>
 </ul>
@@ -154,18 +162,28 @@ loadScripts(document, 'script');</script>
 <h2>Method Details</h2>
 <ul class="member-list">
 <li>
-<section class="detail" id="preserveNulls(boolean)">
-<h3>preserveNulls</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="UnnestOptions.html" title="class in org.apache.datafusion">UnnestOptions</a></span>&nbsp;<span class="element-name">preserveNulls</span><wbr><span class="parameters">(boolean&nbsp;v)</span></div>
-<div class="block">When <code>true</code> (the default), nulls in the input column are preserved as null rows in the
- output. When <code>false</code>, nulls and empty lists are dropped.</div>
+<section class="detail" id="currentBytes()">
+<h3>currentBytes</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">currentBytes</span>()</div>
+<div class="block">Bytes currently reserved against this session's <code>MemoryPool</code>.</div>
+</section>
+</li>
+<li>
+<section class="detail" id="peakBytes()">
+<h3>peakBytes</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">peakBytes</span>()</div>
+<div class="block">Maximum value of <a href="#currentBytes()"><code>currentBytes()</code></a> observed since the session was created. Monotonic:
+ never decreases for a given session.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="preserveNulls()">
-<h3>preserveNulls</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">preserveNulls</span>()</div>
-<div class="block">The current <code>preserveNulls</code> setting.</div>
+<section class="detail" id="toString()">
+<h3>toString</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
+<dl class="notes">
+<dt>Overrides:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
+</dl>
 </section>
 </li>
 </ul>
diff --git a/api/org/apache/datafusion/NativeLibraryLoader.html b/api/org/apache/datafusion/NativeLibraryLoader.html
index 6ff22c2..4faed54 100644
--- a/api/org/apache/datafusion/NativeLibraryLoader.html
+++ b/api/org/apache/datafusion/NativeLibraryLoader.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>NativeLibraryLoader (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>NativeLibraryLoader (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: NativeLibraryLoader">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
@@ -79,6 +79,18 @@ loadScripts(document, 'script');</script>
 <hr>
 <div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">NativeLibraryLoader</span>
 <span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
+<div class="block">Loads the <code>datafusion_jni</code> native library on demand.
+
+ <p>The loader first tries <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/System.html#loadLibrary(java.lang.String)" title="class or interface in java.lang" class="external-link"><code>System.loadLibrary(String)</code></a> so that operators can override the
+ bundled library by placing a build on <code>java.library.path</code> (for example via <code>
+ -Djava.library.path=...</code> or <code>LD_LIBRARY_PATH</code>). If that fails the loader extracts the
+ platform-specific library from the JAR resource tree and loads it via <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/System.html#load(java.lang.String)" title="class or interface in java.lang" class="external-link"><code>System.load(String)</code></a>.
+
+ <p>The bundled libraries live at the conventional path <code>
+ org/apache/datafusion/&amp;lt;os&amp;gt;/&amp;lt;arch&amp;gt;/&amp;lt;libfile&amp;gt;</code>. Each JVM extracts into its own
+ private temporary directory created with <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/file/Files.html#createTempDirectory(java.lang.String,java.nio.file.attribute.FileAttribute...)" title="class or interface in java.nio.file" class="external-link"><code>Files.createTempDirectory(String, java.nio.file.attribute.FileAttribute[])</code></a>, which is mode 0700 on POSIX and user-private under the
+ default Windows <code>TMP</code>. Keeping the directory private prevents another user on the host from
+ planting a same-named library for the JVM to pick up.</div>
 </section>
 <section class="summary">
 <ul class="summary-list">
diff --git a/api/org/apache/datafusion/NdJsonReadOptions.html b/api/org/apache/datafusion/NdJsonReadOptions.html
index ce1fe2d..b4e7755 100644
--- a/api/org/apache/datafusion/NdJsonReadOptions.html
+++ b/api/org/apache/datafusion/NdJsonReadOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>NdJsonReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>NdJsonReadOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: NdJsonReadOptions">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/NotImplementedException.html b/api/org/apache/datafusion/NotImplementedException.html
new file mode 100644
index 0000000..c969765
--- /dev/null
+++ b/api/org/apache/datafusion/NotImplementedException.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<html lang>
+<head>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>NotImplementedException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: NotImplementedException">
+<meta name="generator" content="javadoc/ClassWriterImpl">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">var pathtoroot = "../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<div class="flex-box">
+<header role="banner" class="flex-header">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="nav-bar-cell1-rev">Class</li>
+<li><a href="class-use/NotImplementedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html#class">Help</a></li>
+</ul>
+</div>
+<div class="sub-nav">
+<div>
+<ul class="sub-nav-list">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method-summary">Method</a></li>
+</ul>
+<ul class="sub-nav-list">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<div class="nav-list-search"><label for="search-input">SEARCH:</label>
+<input type="text" id="search-input" value="search" disabled="disabled">
+<input type="reset" id="reset-button" value="reset" disabled="disabled">
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="flex-content">
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
+<h1 title="Class NotImplementedException" class="title">Class NotImplementedException</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">java.lang.RuntimeException</a>
+<div class="inheritance"><a href="DataFusionException.html" title="class in org.apache.datafusion">org.apache.datafusion.DataFusionException</a>
+<div class="inheritance">org.apache.datafusion.NotImplementedException</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<section class="class-description" id="class-description">
+<dl class="notes">
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">NotImplementedException</span>
+<span class="extends-implements">extends <a href="DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a></span></div>
+<div class="block">The requested feature is recognised by DataFusion but not implemented yet. Surfaces upstream
+ <code>DataFusionError::NotImplemented</code>.</div>
+<dl class="notes">
+<dt>See Also:</dt>
+<dd>
+<ul class="see-list">
+<li><a href="../../../serialized-form.html#org.apache.datafusion.NotImplementedException">Serialized Form</a></li>
+</ul>
+</dd>
+</dl>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<li>
+<section class="constructor-summary" id="constructor-summary">
+<h2>Constructor Summary</h2>
+<div class="caption"><span>Constructors</span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Constructor</div>
+<div class="table-header col-last">Description</div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.lang.String)" class="member-name-link">NotImplementedException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">NotImplementedException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</code></div>
+<div class="col-last odd-row-color">&nbsp;</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/ [...]
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or  [...]
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<li>
+<section class="constructor-details" id="constructor-detail">
+<h2>Constructor Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String)">
+<h3>NotImplementedException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NotImplementedException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</span></div>
+</section>
+</li>
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<h3>NotImplementedException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NotImplementedException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</span></div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+</main>
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
+</footer>
+</div>
+</div>
+</body>
+</html>
diff --git a/api/org/apache/datafusion/ObjectStoreOptions.Gcs.Builder.html b/api/org/apache/datafusion/ObjectStoreOptions.Gcs.Builder.html
index c462a74..51070eb 100644
--- a/api/org/apache/datafusion/ObjectStoreOptions.Gcs.Builder.html
+++ b/api/org/apache/datafusion/ObjectStoreOptions.Gcs.Builder.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ObjectStoreOptions.Gcs.Builder (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ObjectStoreOptions.Gcs.Builder (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: ObjectStoreOptions, class: Gcs, class: Builder">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ObjectStoreOptions.Gcs.html b/api/org/apache/datafusion/ObjectStoreOptions.Gcs.html
index 37be583..8e715e8 100644
--- a/api/org/apache/datafusion/ObjectStoreOptions.Gcs.html
+++ b/api/org/apache/datafusion/ObjectStoreOptions.Gcs.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ObjectStoreOptions.Gcs (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ObjectStoreOptions.Gcs (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: ObjectStoreOptions, class: Gcs">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ObjectStoreOptions.Http.Builder.html b/api/org/apache/datafusion/ObjectStoreOptions.Http.Builder.html
index bfad613..ca93066 100644
--- a/api/org/apache/datafusion/ObjectStoreOptions.Http.Builder.html
+++ b/api/org/apache/datafusion/ObjectStoreOptions.Http.Builder.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ObjectStoreOptions.Http.Builder (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ObjectStoreOptions.Http.Builder (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: ObjectStoreOptions, class: Http, class: Builder">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ObjectStoreOptions.Http.html b/api/org/apache/datafusion/ObjectStoreOptions.Http.html
index 1776e9b..bcc8160 100644
--- a/api/org/apache/datafusion/ObjectStoreOptions.Http.html
+++ b/api/org/apache/datafusion/ObjectStoreOptions.Http.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ObjectStoreOptions.Http (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ObjectStoreOptions.Http (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: ObjectStoreOptions, class: Http">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ObjectStoreOptions.S3.Builder.html b/api/org/apache/datafusion/ObjectStoreOptions.S3.Builder.html
index 9381506..9e6d2bd 100644
--- a/api/org/apache/datafusion/ObjectStoreOptions.S3.Builder.html
+++ b/api/org/apache/datafusion/ObjectStoreOptions.S3.Builder.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ObjectStoreOptions.S3.Builder (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ObjectStoreOptions.S3.Builder (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: ObjectStoreOptions, class: S3, class: Builder">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ObjectStoreOptions.S3.html b/api/org/apache/datafusion/ObjectStoreOptions.S3.html
index fe0e0e1..3ac66ae 100644
--- a/api/org/apache/datafusion/ObjectStoreOptions.S3.html
+++ b/api/org/apache/datafusion/ObjectStoreOptions.S3.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ObjectStoreOptions.S3 (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ObjectStoreOptions.S3 (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: ObjectStoreOptions, class: S3">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ObjectStoreOptions.html b/api/org/apache/datafusion/ObjectStoreOptions.html
index 4407bc2..1d581b3 100644
--- a/api/org/apache/datafusion/ObjectStoreOptions.html
+++ b/api/org/apache/datafusion/ObjectStoreOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ObjectStoreOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ObjectStoreOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: ObjectStoreOptions">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ParquetReadOptions.html b/api/org/apache/datafusion/ParquetReadOptions.html
index a5dc187..34be4e6 100644
--- a/api/org/apache/datafusion/ParquetReadOptions.html
+++ b/api/org/apache/datafusion/ParquetReadOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ParquetReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ParquetReadOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: ParquetReadOptions">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ParquetWriteOptions.html b/api/org/apache/datafusion/ParquetWriteOptions.html
index c9c514a..3c76be7 100644
--- a/api/org/apache/datafusion/ParquetWriteOptions.html
+++ b/api/org/apache/datafusion/ParquetWriteOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ParquetWriteOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ParquetWriteOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: ParquetWriteOptions">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/PlanException.html b/api/org/apache/datafusion/PlanException.html
new file mode 100644
index 0000000..731e6db
--- /dev/null
+++ b/api/org/apache/datafusion/PlanException.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<html lang>
+<head>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>PlanException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: PlanException">
+<meta name="generator" content="javadoc/ClassWriterImpl">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">var pathtoroot = "../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<div class="flex-box">
+<header role="banner" class="flex-header">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="nav-bar-cell1-rev">Class</li>
+<li><a href="class-use/PlanException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html#class">Help</a></li>
+</ul>
+</div>
+<div class="sub-nav">
+<div>
+<ul class="sub-nav-list">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method-summary">Method</a></li>
+</ul>
+<ul class="sub-nav-list">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<div class="nav-list-search"><label for="search-input">SEARCH:</label>
+<input type="text" id="search-input" value="search" disabled="disabled">
+<input type="reset" id="reset-button" value="reset" disabled="disabled">
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="flex-content">
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
+<h1 title="Class PlanException" class="title">Class PlanException</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">java.lang.RuntimeException</a>
+<div class="inheritance"><a href="DataFusionException.html" title="class in org.apache.datafusion">org.apache.datafusion.DataFusionException</a>
+<div class="inheritance">org.apache.datafusion.PlanException</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<section class="class-description" id="class-description">
+<dl class="notes">
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">PlanException</span>
+<span class="extends-implements">extends <a href="DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a></span></div>
+<div class="block">SQL parsing, logical planning, or schema-resolution failure. Surfaces upstream <code>
+ DataFusionError::Plan</code>, <code>DataFusionError::SQL</code>, and <code>DataFusionError::SchemaError</code>.</div>
+<dl class="notes">
+<dt>See Also:</dt>
+<dd>
+<ul class="see-list">
+<li><a href="../../../serialized-form.html#org.apache.datafusion.PlanException">Serialized Form</a></li>
+</ul>
+</dd>
+</dl>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<li>
+<section class="constructor-summary" id="constructor-summary">
+<h2>Constructor Summary</h2>
+<div class="caption"><span>Constructors</span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Constructor</div>
+<div class="table-header col-last">Description</div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.lang.String)" class="member-name-link">PlanException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">PlanException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</code></div>
+<div class="col-last odd-row-color">&nbsp;</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/ [...]
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or  [...]
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<li>
+<section class="constructor-details" id="constructor-detail">
+<h2>Constructor Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String)">
+<h3>PlanException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PlanException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</span></div>
+</section>
+</li>
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<h3>PlanException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PlanException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</span></div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+</main>
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
+</footer>
+</div>
+</div>
+</body>
+</html>
diff --git a/api/org/apache/datafusion/ResourcesExhaustedException.html b/api/org/apache/datafusion/ResourcesExhaustedException.html
new file mode 100644
index 0000000..3b5f45a
--- /dev/null
+++ b/api/org/apache/datafusion/ResourcesExhaustedException.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML>
+<html lang>
+<head>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ResourcesExhaustedException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: ResourcesExhaustedException">
+<meta name="generator" content="javadoc/ClassWriterImpl">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">var pathtoroot = "../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<div class="flex-box">
+<header role="banner" class="flex-header">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="nav-bar-cell1-rev">Class</li>
+<li><a href="class-use/ResourcesExhaustedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html#class">Help</a></li>
+</ul>
+</div>
+<div class="sub-nav">
+<div>
+<ul class="sub-nav-list">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method-summary">Method</a></li>
+</ul>
+<ul class="sub-nav-list">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<div class="nav-list-search"><label for="search-input">SEARCH:</label>
+<input type="text" id="search-input" value="search" disabled="disabled">
+<input type="reset" id="reset-button" value="reset" disabled="disabled">
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="flex-content">
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
+<h1 title="Class ResourcesExhaustedException" class="title">Class ResourcesExhaustedException</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
+<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">java.lang.RuntimeException</a>
+<div class="inheritance"><a href="DataFusionException.html" title="class in org.apache.datafusion">org.apache.datafusion.DataFusionException</a>
+<div class="inheritance">org.apache.datafusion.ResourcesExhaustedException</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<section class="class-description" id="class-description">
+<dl class="notes">
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">ResourcesExhaustedException</span>
+<span class="extends-implements">extends <a href="DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a></span></div>
+<div class="block">The DataFusion runtime exhausted a configured resource budget — typically the memory pool, but
+ applies to any guard upstream surfaces as <code>DataFusionError::ResourcesExhausted</code>.
+
+ <p>Distinguishing this from <a href="ExecutionException.html" title="class in org.apache.datafusion"><code>ExecutionException</code></a> lets callers retry transient
+ resource-pressure failures without retrying genuine query bugs.</div>
+<dl class="notes">
+<dt>See Also:</dt>
+<dd>
+<ul class="see-list">
+<li><a href="../../../serialized-form.html#org.apache.datafusion.ResourcesExhaustedException">Serialized Form</a></li>
+</ul>
+</dd>
+</dl>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<li>
+<section class="constructor-summary" id="constructor-summary">
+<h2>Constructor Summary</h2>
+<div class="caption"><span>Constructors</span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Constructor</div>
+<div class="table-header col-last">Description</div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.lang.String)" class="member-name-link">ResourcesExhaustedException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)" class="member-name-link">ResourcesExhaustedException</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</code></div>
+<div class="col-last odd-row-color">&nbsp;</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/ [...]
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or  [...]
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<li>
+<section class="constructor-details" id="constructor-detail">
+<h2>Constructor Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String)">
+<h3>ResourcesExhaustedException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ResourcesExhaustedException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message)</span></div>
+</section>
+</li>
+<li>
+<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<h3>ResourcesExhaustedException</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ResourcesExhaustedException</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;message,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;cause)</span></div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+</main>
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
+</footer>
+</div>
+</div>
+</body>
+</html>
diff --git a/api/org/apache/datafusion/CsvReadOptions.html b/api/org/apache/datafusion/RuntimeStats.html
similarity index 52%
copy from api/org/apache/datafusion/CsvReadOptions.html
copy to api/org/apache/datafusion/RuntimeStats.html
index ba4d5ad..109b62a 100644
--- a/api/org/apache/datafusion/CsvReadOptions.html
+++ b/api/org/apache/datafusion/RuntimeStats.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>CsvReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>RuntimeStats (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="declaration: package: org.apache.datafusion, class: CsvReadOptions">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: RuntimeStats">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
@@ -35,7 +35,7 @@ loadScripts(document, 'script');</script>
 <li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="nav-bar-cell1-rev">Class</li>
-<li><a href="class-use/CsvReadOptions.html">Use</a></li>
+<li><a href="class-use/RuntimeStats.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../index-all.html">Index</a></li>
 <li><a href="../../../help-doc.html#class">Help</a></li>
@@ -70,22 +70,25 @@ loadScripts(document, 'script');</script>
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
-<h1 title="Class CsvReadOptions" class="title">Class CsvReadOptions</h1>
+<h1 title="Class RuntimeStats" class="title">Class RuntimeStats</h1>
 </div>
 <div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
-<div class="inheritance">org.apache.datafusion.CsvReadOptions</div>
+<div class="inheritance">org.apache.datafusion.RuntimeStats</div>
 </div>
 <section class="class-description" id="class-description">
 <hr>
-<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">CsvReadOptions</span>
+<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">RuntimeStats</span>
 <span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
-<div class="block">Configuration knobs for CSV sources passed to <a href="SessionContext.html#registerCsv(java.lang.String,java.lang.String,org.apache.datafusion.CsvReadOptions)"><code>SessionContext.registerCsv(String, String, CsvReadOptions)</code></a> and <a href="SessionContext.html#readCsv(java.lang.String,org.apache.datafusion.CsvReadOptions)"><code>SessionContext.readCsv(String, CsvReadOptions)</code></a>.
+<div class="block">Snapshot of the underlying Tokio runtime from <a href="SessionContext.html#runtimeStats()"><code>SessionContext.runtimeStats()</code></a>. Mirrors the
+ subset of <code>tokio_metrics::RuntimeMetrics</code> fields that node-level dashboards typically
+ surface (worker count, busy time, queue depth, etc.).
 
- <p>Mirrors a subset of DataFusion's <code>CsvReadOptions</code>. All setters return <code>this</code> for
- fluent chaining. Defaults match the Rust struct: <code>hasHeader = true</code>, <code>delimiter =
- ','</code>, <code>quote = '"'</code>, <code>fileExtension = ".csv"</code>, <code>fileCompressionType =
- UNCOMPRESSED</code>, all other fields <code>null</code> (meaning the DataFusion default is used, or the
- schema is inferred from the file).</div>
+ <p>Instances are immutable. The snapshot is process-wide rather than per-session because the JNI
+ library drives a single shared multi-threaded Tokio runtime; gating on the <code>SessionContext</code>
+ only ensures the caller still has a live handle.
+
+ <p>Requires the <code>runtime-metrics</code> Cargo feature on the native crate, plus <code>
+ RUSTFLAGS="--cfg tokio_unstable"</code> at build time.</div>
 </section>
 <section class="summary">
 <ul class="summary-list">
@@ -97,7 +100,17 @@ loadScripts(document, 'script');</script>
 <div class="summary-table two-column-summary">
 <div class="table-header col-first">Constructor</div>
 <div class="table-header col-last">Description</div>
-<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">CsvReadOptions</a>()</code></div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(int,long,long,long,long,long,long,long,long,long,long)" class="member-name-link">RuntimeStats</a><wbr>(int&nbsp;numWorkers,
+ long&nbsp;liveTasksCount,
+ long&nbsp;globalQueueDepth,
+ long&nbsp;elapsedNanos,
+ long&nbsp;totalBusyNanos,
+ long&nbsp;totalParkCount,
+ long&nbsp;totalPollsCount,
+ long&nbsp;totalNoopCount,
+ long&nbsp;totalStealCount,
+ long&nbsp;totalLocalScheduleCount,
+ long&nbsp;totalOverflowCount)</code></div>
 <div class="col-last even-row-color">&nbsp;</div>
 </div>
 </section>
@@ -113,45 +126,70 @@ loadScripts(document, 'script');</script>
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#comment(byte)" class="member-name-link">comment</a><wbr>(byte&nbsp;b)</code></div>
-<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#delimiter(byte)" class="member-name-link">delimiter</a><wbr>(byte&nbsp;b)</code></div>
-<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#escape(byte)" class="member-name-link">escape</a><wbr>(byte&nbsp;b)</code></div>
-<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#fileCompressionType(org.apache.datafusion.FileCompressionType)" class="member-name-link">fileCompressionType</a><wbr>(<a href="FileCompressionType.html" title="enum class in org.apache.datafusion">FileCompressionType</a>&nbsp;t)</code></div>
-<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#fileExtension(java.lang.String)" class="member-name-link">fileExtension</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;ext)</code></div>
-<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hasHeader(boolean)" class="member-name-link">hasHeader</a><wbr>(boolean&nbsp;v)</code></div>
-<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newlinesInValues(boolean)" class="member-name-link">newlinesInValues</a><wbr>(boolean&nbsp;v)</code></div>
-<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#quote(byte)" class="member-name-link">quote</a><wbr>(byte&nbsp;b)</code></div>
-<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#schema(org.apache.arrow.vector.types.pojo.Schema)" class="member-name-link">schema</a><wbr>(org.apache.arrow.vector.types.pojo.Schema&nbsp;schema)</code></div>
-<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#schemaInferMaxRecords(long)" class="member-name-link">schemaInferMaxRecords</a><wbr>(long&nbsp;n)</code></div>
-<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#terminator(byte)" class="member-name-link">terminator</a><wbr>(byte&nbsp;b)</code></div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#elapsedNanos()" class="member-name-link">elapsedNanos</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Wall-clock nanoseconds covered by this snapshot's interval (since runtime start).</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#globalQueueDepth()" class="member-name-link">globalQueueDepth</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Tasks waiting in the global injection queue, not yet picked up by a worker.</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#liveTasksCount()" class="member-name-link">liveTasksCount</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Number of tasks currently scheduled (alive) on the runtime.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#numWorkers()" class="member-name-link">numWorkers</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Number of OS worker threads driving the multi-threaded Tokio runtime.</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#totalBusyNanos()" class="member-name-link">totalBusyNanos</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Total nanoseconds workers spent doing work (sum across workers).</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#totalLocalScheduleCount()" class="member-name-link">totalLocalScheduleCount</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Tasks scheduled into a worker's local queue.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#totalNoopCount()" class="member-name-link">totalNoopCount</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Times a worker unparked but found no work (false wakeup).</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#totalOverflowCount()" class="member-name-link">totalOverflowCount</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Times a worker's local queue overflowed and pushed tasks to the injector.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#totalParkCount()" class="member-name-link">totalParkCount</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Times a worker has parked itself (gone idle waiting for work).</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#totalPollsCount()" class="member-name-link">totalPollsCount</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Total task polls completed across workers.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#totalStealCount()" class="member-name-link">totalStealCount</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Times a worker successfully stole tasks from another worker.</div>
+</div>
 </div>
 </div>
 </div>
 <div class="inherited-list">
 <h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
-<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or  [...]
+<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or  [...]
 </section>
 </li>
 </ul>
@@ -164,9 +202,19 @@ loadScripts(document, 'script');</script>
 <h2>Constructor Details</h2>
 <ul class="member-list">
 <li>
-<section class="detail" id="&lt;init&gt;()">
-<h3>CsvReadOptions</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">CsvReadOptions</span>()</div>
+<section class="detail" id="&lt;init&gt;(int,long,long,long,long,long,long,long,long,long,long)">
+<h3>RuntimeStats</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">RuntimeStats</span><wbr><span class="parameters">(int&nbsp;numWorkers,
+ long&nbsp;liveTasksCount,
+ long&nbsp;globalQueueDepth,
+ long&nbsp;elapsedNanos,
+ long&nbsp;totalBusyNanos,
+ long&nbsp;totalParkCount,
+ long&nbsp;totalPollsCount,
+ long&nbsp;totalNoopCount,
+ long&nbsp;totalStealCount,
+ long&nbsp;totalLocalScheduleCount,
+ long&nbsp;totalOverflowCount)</span></div>
 </section>
 </li>
 </ul>
@@ -178,69 +226,90 @@ loadScripts(document, 'script');</script>
 <h2>Method Details</h2>
 <ul class="member-list">
 <li>
-<section class="detail" id="hasHeader(boolean)">
-<h3>hasHeader</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></span>&nbsp;<span class="element-name">hasHeader</span><wbr><span class="parameters">(boolean&nbsp;v)</span></div>
+<section class="detail" id="numWorkers()">
+<h3>numWorkers</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">numWorkers</span>()</div>
+<div class="block">Number of OS worker threads driving the multi-threaded Tokio runtime.</div>
+</section>
+</li>
+<li>
+<section class="detail" id="liveTasksCount()">
+<h3>liveTasksCount</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">liveTasksCount</span>()</div>
+<div class="block">Number of tasks currently scheduled (alive) on the runtime.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="delimiter(byte)">
-<h3>delimiter</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></span>&nbsp;<span class="element-name">delimiter</span><wbr><span class="parameters">(byte&nbsp;b)</span></div>
+<section class="detail" id="globalQueueDepth()">
+<h3>globalQueueDepth</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">globalQueueDepth</span>()</div>
+<div class="block">Tasks waiting in the global injection queue, not yet picked up by a worker.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="quote(byte)">
-<h3>quote</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></span>&nbsp;<span class="element-name">quote</span><wbr><span class="parameters">(byte&nbsp;b)</span></div>
+<section class="detail" id="elapsedNanos()">
+<h3>elapsedNanos</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">elapsedNanos</span>()</div>
+<div class="block">Wall-clock nanoseconds covered by this snapshot's interval (since runtime start).</div>
 </section>
 </li>
 <li>
-<section class="detail" id="terminator(byte)">
-<h3>terminator</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></span>&nbsp;<span class="element-name">terminator</span><wbr><span class="parameters">(byte&nbsp;b)</span></div>
+<section class="detail" id="totalBusyNanos()">
+<h3>totalBusyNanos</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">totalBusyNanos</span>()</div>
+<div class="block">Total nanoseconds workers spent doing work (sum across workers).</div>
 </section>
 </li>
 <li>
-<section class="detail" id="escape(byte)">
-<h3>escape</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></span>&nbsp;<span class="element-name">escape</span><wbr><span class="parameters">(byte&nbsp;b)</span></div>
+<section class="detail" id="totalParkCount()">
+<h3>totalParkCount</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">totalParkCount</span>()</div>
+<div class="block">Times a worker has parked itself (gone idle waiting for work).</div>
 </section>
 </li>
 <li>
-<section class="detail" id="comment(byte)">
-<h3>comment</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></span>&nbsp;<span class="element-name">comment</span><wbr><span class="parameters">(byte&nbsp;b)</span></div>
+<section class="detail" id="totalPollsCount()">
+<h3>totalPollsCount</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">totalPollsCount</span>()</div>
+<div class="block">Total task polls completed across workers.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="newlinesInValues(boolean)">
-<h3>newlinesInValues</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></span>&nbsp;<span class="element-name">newlinesInValues</span><wbr><span class="parameters">(boolean&nbsp;v)</span></div>
+<section class="detail" id="totalNoopCount()">
+<h3>totalNoopCount</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">totalNoopCount</span>()</div>
+<div class="block">Times a worker unparked but found no work (false wakeup).</div>
 </section>
 </li>
 <li>
-<section class="detail" id="schemaInferMaxRecords(long)">
-<h3>schemaInferMaxRecords</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></span>&nbsp;<span class="element-name">schemaInferMaxRecords</span><wbr><span class="parameters">(long&nbsp;n)</span></div>
+<section class="detail" id="totalStealCount()">
+<h3>totalStealCount</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">totalStealCount</span>()</div>
+<div class="block">Times a worker successfully stole tasks from another worker.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="fileExtension(java.lang.String)">
-<h3>fileExtension</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></span>&nbsp;<span class="element-name">fileExtension</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;ext)</span></div>
+<section class="detail" id="totalLocalScheduleCount()">
+<h3>totalLocalScheduleCount</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">totalLocalScheduleCount</span>()</div>
+<div class="block">Tasks scheduled into a worker's local queue.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="fileCompressionType(org.apache.datafusion.FileCompressionType)">
-<h3>fileCompressionType</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></span>&nbsp;<span class="element-name">fileCompressionType</span><wbr><span class="parameters">(<a href="FileCompressionType.html" title="enum class in org.apache.datafusion">FileCompressionType</a>&nbsp;t)</span></div>
+<section class="detail" id="totalOverflowCount()">
+<h3>totalOverflowCount</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">totalOverflowCount</span>()</div>
+<div class="block">Times a worker's local queue overflowed and pushed tasks to the injector.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="schema(org.apache.arrow.vector.types.pojo.Schema)">
-<h3>schema</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></span>&nbsp;<span class="element-name">schema</span><wbr><span class="parameters">(org.apache.arrow.vector.types.pojo.Schema&nbsp;schema)</span></div>
+<section class="detail" id="toString()">
+<h3>toString</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
+<dl class="notes">
+<dt>Overrides:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
+</dl>
 </section>
 </li>
 </ul>
diff --git a/api/org/apache/datafusion/ScalarFunction.html b/api/org/apache/datafusion/ScalarFunction.html
index 90f0225..0bf6048 100644
--- a/api/org/apache/datafusion/ScalarFunction.html
+++ b/api/org/apache/datafusion/ScalarFunction.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ScalarFunction (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ScalarFunction (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, interface: ScalarFunction">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ScalarFunctionArgs.html b/api/org/apache/datafusion/ScalarFunctionArgs.html
index 9549793..b9a9fa4 100644
--- a/api/org/apache/datafusion/ScalarFunctionArgs.html
+++ b/api/org/apache/datafusion/ScalarFunctionArgs.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ScalarFunctionArgs (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ScalarFunctionArgs (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, record: ScalarFunctionArgs">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ScalarUdf.html b/api/org/apache/datafusion/ScalarUdf.html
index 2f47fbe..7d22def 100644
--- a/api/org/apache/datafusion/ScalarUdf.html
+++ b/api/org/apache/datafusion/ScalarUdf.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ScalarUdf (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>ScalarUdf (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: ScalarUdf">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/SessionContext.html b/api/org/apache/datafusion/SessionContext.html
index 3671c00..88fdc9d 100644
--- a/api/org/apache/datafusion/SessionContext.html
+++ b/api/org/apache/datafusion/SessionContext.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>SessionContext (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>SessionContext (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: SessionContext">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
@@ -130,11 +130,23 @@ implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
 <div class="block">Decode a DataFusion-Proto <code>LogicalPlanNode</code> and return a lazy <a href="DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a>.</div>
 </div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getOption(java.lang.String)" class="member-name-link">getOption</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;key)</code></div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#fromSubstrait(byte%5B%5D)" class="member-name-link">fromSubstrait</a><wbr>(byte[]&nbsp;planBytes)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Decode a <a href="https://substrait.io/">Substrait</a> <code>Plan</code> message and return a lazy
+ <a href="DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a>.</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getOption(java.lang.String)" class="member-name-link">getOption</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;key)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
 <div class="block">Read the current value of a <code>datafusion.*</code> config key.</div>
 </div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#memoryUsage()" class="member-name-link">memoryUsage</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Snapshot the session's memory pool: bytes currently held and the peak observed since this
+ session was created.</div>
+</div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
 <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#readArrow(java.lang.String)" class="member-name-link">readArrow</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
@@ -262,14 +274,20 @@ implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
 <div class="block">Register a Java-implemented scalar UDF.</div>
 </div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#sql(java.lang.String)" class="member-name-link">sql</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;query)</code></div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#runtimeStats()" class="member-name-link">runtimeStats</a>()</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Parse and plan <code>query</code>, returning a lazy <a href="DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a>.</div>
+<div class="block">Snapshot operational counters from the underlying Tokio runtime: worker count, busy time, queue
+ depth, etc.</div>
 </div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.apache.arrow.vector.types.pojo.Schema</code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#tableSchema(java.lang.String)" class="member-name-link">tableSchema</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;tableName)</code></div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#sql(java.lang.String)" class="member-name-link">sql</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;query)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Parse and plan <code>query</code>, returning a lazy <a href="DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a>.</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.apache.arrow.vector.types.pojo.Schema</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#tableSchema(java.lang.String)" class="member-name-link">tableSchema</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;tableName)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
 <div class="block">Return the Arrow <code>Schema</code> of a registered table.</div>
 </div>
 </div>
@@ -335,6 +353,95 @@ implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base
 </section>
 </li>
 <li>
+<section class="detail" id="fromSubstrait(byte[])">
+<h3>fromSubstrait</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></span>&nbsp;<span class="element-name">fromSubstrait</span><wbr><span class="parameters">(byte[]&nbsp;planBytes)</span></div>
+<div class="block">Decode a <a href="https://substrait.io/">Substrait</a> <code>Plan</code> message and return a lazy
+ <a href="DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a>. The plan is not executed until <a href="DataFrame.html#collect(org.apache.arrow.memory.BufferAllocator)"><code>DataFrame.collect(org.apache.arrow.memory.BufferAllocator)</code></a> or <a href="DataFrame.html#executeStream(org.apache.arrow.memory.BufferAllocator)"><code>DataFrame.executeStream(org.apache.arrow.memory.BufferAllocator)</code></a> is called.
+
+ <p><code>planBytes</code> must be a serialised <code>substrait.proto.Plan</code>. The plan is translated
+ to a DataFusion <a href="DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> against this context's catalog: any tables referenced by the
+ plan must already be registered (see <a href="#registerCsv(java.lang.String,java.lang.String)"><code>registerCsv(java.lang.String, java.lang.String)</code></a>, <a href="#registerParquet(java.lang.String,java.lang.String)"><code>registerParquet(java.lang.String, java.lang.String)</code></a>, etc.).
+
+ <p>This entry point lets Java callers compile plans elsewhere — Calcite via <a href="https://github.com/substrait-io/substrait-java">Isthmus</a>, custom planners, or any
+ other Substrait-emitting tool — and hand them to DataFusion without round-tripping through SQL.
+
+ <p>Substrait support is gated behind the <code>substrait</code> Cargo feature on the native crate
+ and is <strong>off by default</strong>. Rebuild the native crate with <code>cargo build
+ --features substrait</code> (or <code>cargo build --features substrait,protoc</code> for hermetic builds
+ that vendor <code>protoc</code> via <code>cmake</code>) to enable it. If invoked against a native binary
+ built without the feature, this method throws <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link"><code>RuntimeException</code></a> pointing at the flag.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>planBytes</code> is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - if this context is closed.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if the bytes are not a valid <code>substrait.proto.Plan</code>, if
+     Substrait→DataFusion translation fails (e.g. the plan references an unregistered table), or
+     if the native crate was built without the <code>substrait</code> feature.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="memoryUsage()">
+<h3>memoryUsage</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a></span>&nbsp;<span class="element-name">memoryUsage</span>()</div>
+<div class="block">Snapshot the session's memory pool: bytes currently held and the peak observed since this
+ session was created. Thread-safe; can be polled while queries run.
+
+ <p>For multi-tenant attribution, place each tenant in its own <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a>. Within a
+ single session, the snapshot is the sum across all in-flight queries -- there is no
+ per-DataFrame breakdown today.
+
+ <p>The session's <code>MemoryPool</code> is wrapped transparently with a tracking adapter at
+ construction time; the wrapper layers on top of whatever pool <a href="SessionContextBuilder.html#memoryLimit(long,double)"><code>SessionContextBuilder.memoryLimit(long, double)</code></a> produced (or DataFusion's default unbounded
+ pool) and does not change pool semantics (limits, eviction, spilling).
+
+ <p><b>What this counts:</b> bytes reserved against the <code>MemoryPool</code> -- operator state for
+ sorts, hash joins, aggregates, repartition buffers, and anything else that uses DataFusion's
+ <code>MemoryReservation</code> machinery during execution.
+
+ <p><b>What this does <i>not</i> count:</b> memory held outside the pool, including record-batch
+ buffers materialised by <a href="DataFrame.html#cache()"><code>DataFrame.cache()</code></a> (stored in an in-memory <code>MemTable</code> as
+ plain <code>Vec&lt;RecordBatch&gt;</code> with no reservation), record-batch buffers that have crossed the
+ FFI boundary into Arrow's Java allocator, and JVM-side allocations. Operator-level reservations
+ are released as the plan unwinds, so a query that runs to completion typically returns <code>
+ currentBytes</code> to ~0 even if the result set is large.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - if this context is closed.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if the native side has not registered a tracker for this handle
+     (should not happen in practice -- tracker registration is done by the constructor).</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="runtimeStats()">
+<h3>runtimeStats</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></span>&nbsp;<span class="element-name">runtimeStats</span>()</div>
+<div class="block">Snapshot operational counters from the underlying Tokio runtime: worker count, busy time, queue
+ depth, etc. Thread-safe; can be polled while queries run.
+
+ <p>The runtime is process-wide rather than per-session because the JNI library drives a single
+ shared multi-threaded Tokio runtime. The <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a> handle is checked only to
+ ensure the caller still has a live session; the values returned are not session-specific.
+
+ <p>Requires the <code>runtime-metrics</code> Cargo feature on the native crate (off by default).
+ Rebuild with:
+
+ <pre><code>
+ RUSTFLAGS="--cfg tokio_unstable" cargo build --features runtime-metrics
+ </code></pre>
+
+ <p>If invoked against a native binary built without the feature, this method throws <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link"><code>RuntimeException</code></a> with a message pointing at the rebuild command.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - if this context is closed.</dd>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if the native crate was built without the <code>runtime-metrics</code>
+     feature.</dd>
+</dl>
+</section>
+</li>
+<li>
 <section class="detail" id="tableSchema(java.lang.String)">
 <h3>tableSchema</h3>
 <div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">org.apache.arrow.vector.types.pojo.Schema</span>&nbsp;<span class="element-name">tableSchema</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;tableName)</span></div>
diff --git a/api/org/apache/datafusion/SessionContextBuilder.html b/api/org/apache/datafusion/SessionContextBuilder.html
index 9a8413d..29e623c 100644
--- a/api/org/apache/datafusion/SessionContextBuilder.html
+++ b/api/org/apache/datafusion/SessionContextBuilder.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>SessionContextBuilder (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>SessionContextBuilder (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: SessionContextBuilder">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
@@ -104,44 +104,59 @@ loadScripts(document, 'script');</script>
 <div class="block">Construct a <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a> with the configured options.</div>
 </div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#collectStatistics(boolean)" class="member-name-link">collectStatistics</a><wbr>(boolean&nbsp;collectStatistics)</code></div>
-<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#cacheManager(org.apache.datafusion.CacheManagerOptions)" class="member-name-link">cacheManager</a><wbr>(<a href="CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a>&nbsp;options)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Configure DataFusion's built-in <code>CacheManager</code> for the new context.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#collectStatistics(boolean)" class="member-name-link">collectStatistics</a><wbr>(boolean&nbsp;collectStatistics)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#disableSpill()" class="member-name-link">disableSpill</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Disable on-disk spill entirely.</div>
+</div>
 <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
 <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#informationSchema(boolean)" class="member-name-link">informationSchema</a><wbr>(boolean&nbsp;informationSchema)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#memoryLimit(long,double)" class="member-name-link">memoryLimit</a><wbr>(long&nbsp;maxMemoryBytes,
- double&nbsp;fraction)</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#maxTempDirectorySize(long)" class="member-name-link">maxTempDirectorySize</a><wbr>(long&nbsp;bytes)</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Cap the memory pool at <code>maxMemoryBytes</code>, reserving <code>fraction</code> of it for queries.</div>
+<div class="block">Cap the cumulative bytes used by spill files under <a href="#tempDirectory(java.lang.String)"><code>tempDirectory(String)</code></a>.</div>
 </div>
 <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#registerObjectStore(org.apache.datafusion.ObjectStoreOptions)" class="member-name-link">registerObjectStore</a><wbr>(<a href="ObjectStoreOptions.html" title="class in org.apache.datafusion">ObjectStoreOptions</a>&nbsp;options)</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#memoryLimit(long,double)" class="member-name-link">memoryLimit</a><wbr>(long&nbsp;maxMemoryBytes,
+ double&nbsp;fraction)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Register an <code>object_store::ObjectStore</code> backend on the new context's <code>RuntimeEnv</code>.</div>
+<div class="block">Cap the memory pool at <code>maxMemoryBytes</code>, reserving <code>fraction</code> of it for queries.</div>
 </div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setOption(java.lang.String,java.lang.String)" class="member-name-link">setOption</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;key,
- <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;value)</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#registerObjectStore(org.apache.datafusion.ObjectStoreOptions)" class="member-name-link">registerObjectStore</a><wbr>(<a href="ObjectStoreOptions.html" title="class in org.apache.datafusion">ObjectStoreOptions</a>&nbsp;options)</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Set an arbitrary <code>datafusion.*</code> config option by string key.</div>
+<div class="block">Register an <code>object_store::ObjectStore</code> backend on the new context's <code>RuntimeEnv</code>.</div>
 </div>
 <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setOptions(java.util.LinkedHashMap)" class="member-name-link">setOptions</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title=" [...]
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setOption(java.lang.String,java.lang.String)" class="member-name-link">setOption</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;key,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;value)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Apply every entry of <code>entries</code> via <a href="#setOption(java.lang.String,java.lang.String)"><code>setOption(String, String)</code></a>, in <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link"><code>LinkedHashMap</code></a> insertion order.</div>
+<div class="block">Set an arbitrary <code>datafusion.*</code> config option by string key.</div>
 </div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setOptions(java.util.Map)" class="member-name-link">setOptions</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.la [...]
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setOptions(java.util.LinkedHashMap)" class="member-name-link">setOptions</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title= [...]
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Apply every entry of <code>entries</code> via <a href="#setOption(java.lang.String,java.lang.String)"><code>setOption(String, String)</code></a>.</div>
+<div class="block">Apply every entry of <code>entries</code> via <a href="#setOption(java.lang.String,java.lang.String)"><code>setOption(String, String)</code></a>, in <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link"><code>LinkedHashMap</code></a> insertion order.</div>
 </div>
 <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#targetPartitions(int)" class="member-name-link">targetPartitions</a><wbr>(int&nbsp;targetPartitions)</code></div>
-<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setOptions(java.util.Map)" class="member-name-link">setOptions</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lan [...]
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Apply every entry of <code>entries</code> via <a href="#setOption(java.lang.String,java.lang.String)"><code>setOption(String, String)</code></a>.</div>
+</div>
 <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#tempDirectory(java.lang.String)" class="member-name-link">tempDirectory</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
-<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#targetPartitions(int)" class="member-name-link">targetPartitions</a><wbr>(int&nbsp;targetPartitions)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#tempDirectory(java.lang.String)" class="member-name-link">tempDirectory</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
 <div class="block">Directory the DiskManager uses for spill files.</div>
 </div>
 </div>
@@ -201,6 +216,34 @@ loadScripts(document, 'script');</script>
 </section>
 </li>
 <li>
+<section class="detail" id="disableSpill()">
+<h3>disableSpill</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></span>&nbsp;<span class="element-name">disableSpill</span>()</div>
+<div class="block">Disable on-disk spill entirely. Queries that need spill fail with a <a href="ResourcesExhaustedException.html" title="class in org.apache.datafusion"><code>ResourcesExhaustedException</code></a> rather than going to disk; useful for memory-only execution
+ profiles or environments without writable disk.
+
+ <p>Mutually exclusive with <a href="#tempDirectory(java.lang.String)"><code>tempDirectory(String)</code></a> — the combination throws at <a href="#build()"><code>build()</code></a> time. <a href="#maxTempDirectorySize(long)"><code>maxTempDirectorySize(long)</code></a> is allowed alongside this setter but is a
+ no-op (no directory to cap).</div>
+</section>
+</li>
+<li>
+<section class="detail" id="maxTempDirectorySize(long)">
+<h3>maxTempDirectorySize</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></span>&nbsp;<span class="element-name">maxTempDirectorySize</span><wbr><span class="parameters">(long&nbsp;bytes)</span></div>
+<div class="block">Cap the cumulative bytes used by spill files under <a href="#tempDirectory(java.lang.String)"><code>tempDirectory(String)</code></a>. Mirrors
+ upstream <code>RuntimeEnvBuilder::with_max_temp_directory_size</code> 1:1. Once exceeded, queries
+ that need more spill space fail with a <a href="ResourcesExhaustedException.html" title="class in org.apache.datafusion"><code>ResourcesExhaustedException</code></a>. Combinable with
+ <a href="#disableSpill()"><code>disableSpill()</code></a> but a no-op there.
+
+ <p><code>0</code> is accepted — upstream documents zero as legal and equivalent to "no spill
+ allowed". Negative values are rejected.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>bytes</code> is negative.</dd>
+</dl>
+</section>
+</li>
+<li>
 <section class="detail" id="setOption(java.lang.String,java.lang.String)">
 <h3>setOption</h3>
 <div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></span>&nbsp;<span class="element-name">setOption</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;key,
@@ -253,6 +296,22 @@ loadScripts(document, 'script');</script>
 </section>
 </li>
 <li>
+<section class="detail" id="cacheManager(org.apache.datafusion.CacheManagerOptions)">
+<h3>cacheManager</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></span>&nbsp;<span class="element-name">cacheManager</span><wbr><span class="parameters">(<a href="CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a>&nbsp;options)</span></div>
+<div class="block">Configure DataFusion's built-in <code>CacheManager</code> for the new context. Build the <a href="CacheManagerOptions.html" title="class in org.apache.datafusion"><code>CacheManagerOptions</code></a> via <a href="CacheManagerOptions.html#builder()"><code>CacheManagerOptions.builder()</code></a>; each cache slot is independent,
+ so leaving a setter unset keeps the upstream default in place.
+
+ <p>Calling this setter twice replaces the previous configuration — there is no incremental
+ merge between calls. If you need a different cache configuration, build a new <code>
+ CacheManagerOptions</code> from scratch.</div>
+<dl class="notes">
+<dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>options</code> is <code>null</code>.</dd>
+</dl>
+</section>
+</li>
+<li>
 <section class="detail" id="registerObjectStore(org.apache.datafusion.ObjectStoreOptions)">
 <h3>registerObjectStore</h3>
 <div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></span>&nbsp;<span class="element-name">registerObjectStore</span><wbr><span class="parameters">(<a href="ObjectStoreOptions.html" title="class in org.apache.datafusion">ObjectStoreOptions</a>&nbsp;options)</span></div>
@@ -282,6 +341,7 @@ loadScripts(document, 'script');</script>
 <div class="block">Construct a <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a> with the configured options.</div>
 <dl class="notes">
 <dt>Throws:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - if <a href="#disableSpill()"><code>disableSpill()</code></a> was called alongside <a href="#tempDirectory(java.lang.String)"><code>tempDirectory(String)</code></a> — the combination is contradictory.</dd>
 <dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a></code> - if the native side fails to construct the context.</dd>
 </dl>
 </section>
diff --git a/api/org/apache/datafusion/SimpleTableProvider.html b/api/org/apache/datafusion/SimpleTableProvider.html
index 2d5084c..ac2ee1e 100644
--- a/api/org/apache/datafusion/SimpleTableProvider.html
+++ b/api/org/apache/datafusion/SimpleTableProvider.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>SimpleTableProvider (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>SimpleTableProvider (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: SimpleTableProvider">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/ScalarUdf.html b/api/org/apache/datafusion/SortExpr.html
similarity index 55%
copy from api/org/apache/datafusion/ScalarUdf.html
copy to api/org/apache/datafusion/SortExpr.html
index 2f47fbe..3ce05a6 100644
--- a/api/org/apache/datafusion/ScalarUdf.html
+++ b/api/org/apache/datafusion/SortExpr.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>ScalarUdf (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>SortExpr (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="declaration: package: org.apache.datafusion, class: ScalarUdf">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="declaration: package: org.apache.datafusion, class: SortExpr">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
@@ -35,7 +35,7 @@ loadScripts(document, 'script');</script>
 <li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="nav-bar-cell1-rev">Class</li>
-<li><a href="class-use/ScalarUdf.html">Use</a></li>
+<li><a href="class-use/SortExpr.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../index-all.html">Index</a></li>
 <li><a href="../../../help-doc.html#class">Help</a></li>
@@ -47,13 +47,13 @@ loadScripts(document, 'script');</script>
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method-summary">Method</a></li>
 </ul>
 <ul class="sub-nav-list">
 <li>Detail:&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method-detail">Method</a></li>
 </ul>
 </div>
@@ -70,38 +70,27 @@ loadScripts(document, 'script');</script>
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.datafusion</a></div>
-<h1 title="Class ScalarUdf" class="title">Class ScalarUdf</h1>
+<h1 title="Class SortExpr" class="title">Class SortExpr</h1>
 </div>
 <div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
-<div class="inheritance">org.apache.datafusion.ScalarUdf</div>
+<div class="inheritance">org.apache.datafusion.SortExpr</div>
 </div>
 <section class="class-description" id="class-description">
 <hr>
-<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">ScalarUdf</span>
+<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">SortExpr</span>
 <span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
-<div class="block">A scalar UDF registration handle: pairs a <a href="ScalarFunction.html" title="interface in org.apache.datafusion"><code>ScalarFunction</code></a> implementation with the metadata
- DataFusion needs to dispatch SQL calls to it.
+<div class="block">A single sort key passed to <a href="DataFrame.html#sort(org.apache.datafusion.SortExpr...)"><code>DataFrame.sort(SortExpr...)</code></a>, mirroring DataFusion's <code>
+ expr::Sort{ expr, asc, nulls_first }</code>. Build via <a href="#asc(java.lang.String)"><code>asc(String)</code></a> or <a href="#desc(java.lang.String)"><code>desc(String)</code></a>;
+ tweak null placement via <a href="#nullsFirst(boolean)"><code>nullsFirst(boolean)</code></a>.
 
- <p>Mirrors DataFusion's <code>ScalarUDF</code> struct. Construct one from a <a href="ScalarFunction.html" title="interface in org.apache.datafusion"><code>ScalarFunction</code></a> via
- <a href="#fromImpl(org.apache.datafusion.ScalarFunction)"><code>fromImpl(ScalarFunction)</code></a> (or the public constructor) and pass it to <a href="SessionContext.html#registerUdf(org.apache.datafusion.ScalarUdf)"><code>SessionContext.registerUdf(ScalarUdf)</code></a>.</div>
+ <p>v1 accepts column names only -- the <code>column</code> string is interpreted as a column
+ reference, not a SQL expression. Complex sort keys (e.g. <code>"a + b"</code>) are intentionally
+ deferred until the Java binding gains an <code>Expr</code> builder.
+
+ <p>Defaults match DataFusion: <a href="#asc(java.lang.String)"><code>asc(String)</code></a> sorts ascending with NULLs last; <a href="#desc(java.lang.String)"><code>desc(String)</code></a> sorts descending with NULLs first.</div>
 </section>
 <section class="summary">
 <ul class="summary-list">
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<li>
-<section class="constructor-summary" id="constructor-summary">
-<h2>Constructor Summary</h2>
-<div class="caption"><span>Constructors</span></div>
-<div class="summary-table two-column-summary">
-<div class="table-header col-first">Constructor</div>
-<div class="table-header col-last">Description</div>
-<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.apache.datafusion.ScalarFunction)" class="member-name-link">ScalarUdf</a><wbr>(<a href="ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a>&nbsp;impl)</code></div>
-<div class="col-last even-row-color">
-<div class="block">Wrap a <a href="ScalarFunction.html" title="interface in org.apache.datafusion"><code>ScalarFunction</code></a> for registration.</div>
-</div>
-</div>
-</section>
-</li>
 <!-- ========== METHOD SUMMARY =========== -->
 <li>
 <section class="method-summary" id="method-summary">
@@ -113,35 +102,35 @@ loadScripts(document, 'script');</script>
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;org.apache.arrow.vector.types.pojo.Field&gt;</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#argFields()" class="member-name-link">argFields</a>()</code></div>
-<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Declared argument fields; cached from <a href="ScalarFunction.html#argFields()"><code>ScalarFunction.argFields()</code></a>.</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#asc(java.lang.String)" class="member-name-link">asc</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;column)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
+<div class="block">Sort the given column ascending, with NULLs placed last.</div>
 </div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#fromImpl(org.apache.datafusion.ScalarFunction)" class="member-name-link">fromImpl</a><wbr>(<a href="ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a>&nbsp;impl)</code></div>
-<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
-<div class="block">Equivalent to <code>new ScalarUdf(impl)</code>; mirrors Rust's <code>ScalarUDF::new_from_impl</code>.</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#ascending()" class="member-name-link">ascending</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block"><code>true</code> if ascending, <code>false</code> if descending.</div>
 </div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a></code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#impl()" class="member-name-link">impl</a>()</code></div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#column()" class="member-name-link">column</a>()</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">The wrapped implementation.</div>
+<div class="block">The column name this sort key references.</div>
 </div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#name()" class="member-name-link">name</a>()</code></div>
-<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">SQL name; cached from <a href="ScalarFunction.html#name()"><code>ScalarFunction.name()</code></a>.</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#desc(java.lang.String)" class="member-name-link">desc</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;column)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
+<div class="block">Sort the given column descending, with NULLs placed first.</div>
 </div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.apache.arrow.vector.types.pojo.Field</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#returnField()" class="member-name-link">returnField</a>()</code></div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#nullsFirst()" class="member-name-link">nullsFirst</a>()</code></div>
 <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Declared return field; cached from <a href="ScalarFunction.html#returnField()"><code>ScalarFunction.returnField()</code></a>.</div>
+<div class="block"><code>true</code> if NULLs are placed first, <code>false</code> if last.</div>
 </div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Volatility.html" title="enum class in org.apache.datafusion">Volatility</a></code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#volatility()" class="member-name-link">volatility</a>()</code></div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#nullsFirst(boolean)" class="member-name-link">nullsFirst</a><wbr>(boolean&nbsp;v)</code></div>
 <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
-<div class="block">Volatility classification; cached from <a href="ScalarFunction.html#volatility()"><code>ScalarFunction.volatility()</code></a>.</div>
+<div class="block">Override the default NULL placement.</div>
 </div>
 </div>
 </div>
@@ -155,71 +144,51 @@ loadScripts(document, 'script');</script>
 </section>
 <section class="details">
 <ul class="details-list">
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<li>
-<section class="constructor-details" id="constructor-detail">
-<h2>Constructor Details</h2>
-<ul class="member-list">
-<li>
-<section class="detail" id="&lt;init&gt;(org.apache.datafusion.ScalarFunction)">
-<h3>ScalarUdf</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ScalarUdf</span><wbr><span class="parameters">(<a href="ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a>&nbsp;impl)</span></div>
-<div class="block">Wrap a <a href="ScalarFunction.html" title="interface in org.apache.datafusion"><code>ScalarFunction</code></a> for registration. Each metadata getter is invoked once here and
- cached, so a user impl that allocates per call won't be double-evaluated at registration.</div>
-<dl class="notes">
-<dt>Throws:</dt>
-<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if <code>impl</code> or any of its declared metadata is null</dd>
-</dl>
-</section>
-</li>
-</ul>
-</section>
-</li>
 <!-- ============ METHOD DETAIL ========== -->
 <li>
 <section class="method-details" id="method-detail">
 <h2>Method Details</h2>
 <ul class="member-list">
 <li>
-<section class="detail" id="fromImpl(org.apache.datafusion.ScalarFunction)">
-<h3>fromImpl</h3>
-<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a></span>&nbsp;<span class="element-name">fromImpl</span><wbr><span class="parameters">(<a href="ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a>&nbsp;impl)</span></div>
-<div class="block">Equivalent to <code>new ScalarUdf(impl)</code>; mirrors Rust's <code>ScalarUDF::new_from_impl</code>.</div>
+<section class="detail" id="asc(java.lang.String)">
+<h3>asc</h3>
+<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></span>&nbsp;<span class="element-name">asc</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;column)</span></div>
+<div class="block">Sort the given column ascending, with NULLs placed last.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="impl()">
-<h3>impl</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a></span>&nbsp;<span class="element-name">impl</span>()</div>
-<div class="block">The wrapped implementation.</div>
+<section class="detail" id="desc(java.lang.String)">
+<h3>desc</h3>
+<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></span>&nbsp;<span class="element-name">desc</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;column)</span></div>
+<div class="block">Sort the given column descending, with NULLs placed first.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="name()">
-<h3>name</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">name</span>()</div>
-<div class="block">SQL name; cached from <a href="ScalarFunction.html#name()"><code>ScalarFunction.name()</code></a>.</div>
+<section class="detail" id="nullsFirst(boolean)">
+<h3>nullsFirst</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></span>&nbsp;<span class="element-name">nullsFirst</span><wbr><span class="parameters">(boolean&nbsp;v)</span></div>
+<div class="block">Override the default NULL placement. <code>true</code> = NULLs first, <code>false</code> = last.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="argFields()">
-<h3>argFields</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;org.apache.arrow.vector.types.pojo.Field&gt;</span>&nbsp;<span class="element-name">argFields</span>()</div>
-<div class="block">Declared argument fields; cached from <a href="ScalarFunction.html#argFields()"><code>ScalarFunction.argFields()</code></a>.</div>
+<section class="detail" id="column()">
+<h3>column</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">column</span>()</div>
+<div class="block">The column name this sort key references.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="returnField()">
-<h3>returnField</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">org.apache.arrow.vector.types.pojo.Field</span>&nbsp;<span class="element-name">returnField</span>()</div>
-<div class="block">Declared return field; cached from <a href="ScalarFunction.html#returnField()"><code>ScalarFunction.returnField()</code></a>.</div>
+<section class="detail" id="ascending()">
+<h3>ascending</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">ascending</span>()</div>
+<div class="block"><code>true</code> if ascending, <code>false</code> if descending.</div>
 </section>
 </li>
 <li>
-<section class="detail" id="volatility()">
-<h3>volatility</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Volatility.html" title="enum class in org.apache.datafusion">Volatility</a></span>&nbsp;<span class="element-name">volatility</span>()</div>
-<div class="block">Volatility classification; cached from <a href="ScalarFunction.html#volatility()"><code>ScalarFunction.volatility()</code></a>.</div>
+<section class="detail" id="nullsFirst()">
+<h3>nullsFirst</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">nullsFirst</span>()</div>
+<div class="block"><code>true</code> if NULLs are placed first, <code>false</code> if last.</div>
 </section>
 </li>
 </ul>
diff --git a/api/org/apache/datafusion/TableProvider.html b/api/org/apache/datafusion/TableProvider.html
index bceff00..4699dae 100644
--- a/api/org/apache/datafusion/TableProvider.html
+++ b/api/org/apache/datafusion/TableProvider.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>TableProvider (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>TableProvider (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, interface: TableProvider">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/UnnestOptions.html b/api/org/apache/datafusion/UnnestOptions.html
index 64a6e9e..026380f 100644
--- a/api/org/apache/datafusion/UnnestOptions.html
+++ b/api/org/apache/datafusion/UnnestOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>UnnestOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>UnnestOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, class: UnnestOptions">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/Volatility.html b/api/org/apache/datafusion/Volatility.html
index ae2fc7f..c1fe8a8 100644
--- a/api/org/apache/datafusion/Volatility.html
+++ b/api/org/apache/datafusion/Volatility.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Volatility (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Volatility (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion, enum: Volatility">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ArrowReadOptions.html b/api/org/apache/datafusion/class-use/ArrowReadOptions.html
index 23f9cf7..94d3497 100644
--- a/api/org/apache/datafusion/class-use/ArrowReadOptions.html
+++ b/api/org/apache/datafusion/class-use/ArrowReadOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ArrowReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ArrowReadOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: ArrowReadOptions">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/AvroReadOptions.html b/api/org/apache/datafusion/class-use/AvroReadOptions.html
index 8c0fc9c..d8732c5 100644
--- a/api/org/apache/datafusion/class-use/AvroReadOptions.html
+++ b/api/org/apache/datafusion/class-use/AvroReadOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.AvroReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.AvroReadOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: AvroReadOptions">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/Volatility.html b/api/org/apache/datafusion/class-use/CacheManagerOptions.Builder.html
similarity index 52%
copy from api/org/apache/datafusion/class-use/Volatility.html
copy to api/org/apache/datafusion/class-use/CacheManagerOptions.Builder.html
index a2dc6e8..3a5b555 100644
--- a/api/org/apache/datafusion/class-use/Volatility.html
+++ b/api/org/apache/datafusion/class-use/CacheManagerOptions.Builder.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Enum Class org.apache.datafusion.Volatility (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.CacheManagerOptions.Builder (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="use: package: org.apache.datafusion, enum: Volatility">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: CacheManagerOptions, class: Builder">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
@@ -30,7 +30,7 @@ loadScripts(document, 'script');</script>
 <ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
 <li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../Volatility.html" title="enum class in org.apache.datafusion">Class</a></li>
+<li><a href="../CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">Class</a></li>
 <li class="nav-bar-cell1-rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,9 +49,9 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 title="Uses of Enum Class org.apache.datafusion.Volatility" class="title">Uses of Enum Class<br>org.apache.datafusion.Volatility</h1>
+<h1 title="Uses of Class org.apache.datafusion.CacheManagerOptions.Builder" class="title">Uses of Class<br>org.apache.datafusion.CacheManagerOptions.Builder</h1>
 </div>
-<div class="caption"><span>Packages that use <a href="../Volatility.html" title="enum class in org.apache.datafusion">Volatility</a></span></div>
+<div class="caption"><span>Packages that use <a href="../CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></span></div>
 <div class="summary-table two-column-summary">
 <div class="table-header col-first">Package</div>
 <div class="table-header col-last">Description</div>
@@ -62,32 +62,33 @@ loadScripts(document, 'script');</script>
 <ul class="block-list">
 <li>
 <section class="detail" id="org.apache.datafusion">
-<h2>Uses of <a href="../Volatility.html" title="enum class in org.apache.datafusion">Volatility</a> in <a href="../package-summary.html">org.apache.datafusion</a></h2>
-<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> that return <a href="../Volatility.html" title="enum class in org.apache.datafusion">Volatility</a></span></div>
+<h2>Uses of <a href="../CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a> in <a href="../package-summary.html">org.apache.datafusion</a></h2>
+<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> that return <a href="../CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></span></div>
 <div class="summary-table three-column-summary">
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
-<div class="col-first even-row-color"><code>static <a href="../Volatility.html" title="enum class in org.apache.datafusion">Volatility</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">Volatility.</span><code><a href="../Volatility.html#valueOf(java.lang.String)" class="member-name-link">valueOf</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
+<div class="col-first even-row-color"><code>static <a href="../CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">CacheManagerOptions.</span><code><a href="../CacheManagerOptions.html#builder()" class="member-name-link">builder</a>()</code></div>
 <div class="col-last even-row-color">
-<div class="block">Returns the enum constant of this class with the specified name.</div>
+<div class="block">Begin building a <a href="../CacheManagerOptions.html" title="class in org.apache.datafusion"><code>CacheManagerOptions</code></a> instance.</div>
 </div>
-<div class="col-first odd-row-color"><code>static <a href="../Volatility.html" title="enum class in org.apache.datafusion">Volatility</a>[]</code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">Volatility.</span><code><a href="../Volatility.html#values()" class="member-name-link">values</a>()</code></div>
+<div class="col-first odd-row-color"><code><a href="../CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">CacheManagerOptions.Builder.</span><code><a href="../CacheManagerOptions.Builder.html#fileMetadataCache(long)" class="member-name-link">fileMetadataCache</a><wbr>(long&nbsp;maxBytes)</code></div>
 <div class="col-last odd-row-color">
-<div class="block">Returns an array containing the constants of this enum class, in
-the order they are declared.</div>
+<div class="block">Enable the file-embedded metadata cache (parquet footers, page metadata) with the given byte
+ cap.</div>
 </div>
-<div class="col-first even-row-color"><code><a href="../Volatility.html" title="enum class in org.apache.datafusion">Volatility</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">ScalarFunction.</span><code><a href="../ScalarFunction.html#volatility()" class="member-name-link">volatility</a>()</code></div>
+<div class="col-first even-row-color"><code><a href="../CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">CacheManagerOptions.Builder.</span><code><a href="../CacheManagerOptions.Builder.html#fileStatisticsCache(boolean)" class="member-name-link">fileStatisticsCache</a><wbr>(boolean&nbsp;enabled)</code></div>
 <div class="col-last even-row-color">
-<div class="block">Volatility classification.</div>
+<div class="block">Enable the file-statistics cache (per-file row counts / column statistics).</div>
 </div>
-<div class="col-first odd-row-color"><code><a href="../Volatility.html" title="enum class in org.apache.datafusion">Volatility</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">ScalarUdf.</span><code><a href="../ScalarUdf.html#volatility()" class="member-name-link">volatility</a>()</code></div>
+<div class="col-first odd-row-color"><code><a href="../CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">CacheManagerOptions.Builder.</span><code><a href="../CacheManagerOptions.Builder.html#listFilesCache(long,java.time.Duration)" class="member-name-link">listFilesCache</a><wbr>(long&nbsp;maxBytes,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;ttl)</code></div>
 <div class="col-last odd-row-color">
-<div class="block">Volatility classification; cached from <a href="../ScalarFunction.html#volatility()"><code>ScalarFunction.volatility()</code></a>.</div>
+<div class="block">Enable the list-files cache with the given byte cap and TTL.</div>
 </div>
 </div>
 </section>
diff --git a/api/org/apache/datafusion/class-use/ScalarUdf.html b/api/org/apache/datafusion/class-use/CacheManagerOptions.html
similarity index 63%
copy from api/org/apache/datafusion/class-use/ScalarUdf.html
copy to api/org/apache/datafusion/class-use/CacheManagerOptions.html
index 177fde8..3592f21 100644
--- a/api/org/apache/datafusion/class-use/ScalarUdf.html
+++ b/api/org/apache/datafusion/class-use/CacheManagerOptions.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ScalarUdf (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.CacheManagerOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="use: package: org.apache.datafusion, class: ScalarUdf">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: CacheManagerOptions">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
@@ -30,7 +30,7 @@ loadScripts(document, 'script');</script>
 <ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
 <li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../ScalarUdf.html" title="class in org.apache.datafusion">Class</a></li>
+<li><a href="../CacheManagerOptions.html" title="class in org.apache.datafusion">Class</a></li>
 <li class="nav-bar-cell1-rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,9 +49,9 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 title="Uses of Class org.apache.datafusion.ScalarUdf" class="title">Uses of Class<br>org.apache.datafusion.ScalarUdf</h1>
+<h1 title="Uses of Class org.apache.datafusion.CacheManagerOptions" class="title">Uses of Class<br>org.apache.datafusion.CacheManagerOptions</h1>
 </div>
-<div class="caption"><span>Packages that use <a href="../ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a></span></div>
+<div class="caption"><span>Packages that use <a href="../CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a></span></div>
 <div class="summary-table two-column-summary">
 <div class="table-header col-first">Package</div>
 <div class="table-header col-last">Description</div>
@@ -62,27 +62,25 @@ loadScripts(document, 'script');</script>
 <ul class="block-list">
 <li>
 <section class="detail" id="org.apache.datafusion">
-<h2>Uses of <a href="../ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a> in <a href="../package-summary.html">org.apache.datafusion</a></h2>
-<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> that return <a href="../ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a></span></div>
+<h2>Uses of <a href="../CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a> in <a href="../package-summary.html">org.apache.datafusion</a></h2>
+<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> that return <a href="../CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a></span></div>
 <div class="summary-table three-column-summary">
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
-<div class="col-first even-row-color"><code>static <a href="../ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">ScalarUdf.</span><code><a href="../ScalarUdf.html#fromImpl(org.apache.datafusion.ScalarFunction)" class="member-name-link">fromImpl</a><wbr>(<a href="../ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a>&nbsp;impl)</code></div>
-<div class="col-last even-row-color">
-<div class="block">Equivalent to <code>new ScalarUdf(impl)</code>; mirrors Rust's <code>ScalarUDF::new_from_impl</code>.</div>
-</div>
+<div class="col-first even-row-color"><code><a href="../CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">CacheManagerOptions.Builder.</span><code><a href="../CacheManagerOptions.Builder.html#build()" class="member-name-link">build</a>()</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
 </div>
-<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> with parameters of type <a href="../ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a></span></div>
+<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> with parameters of type <a href="../CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a></span></div>
 <div class="summary-table three-column-summary">
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
-<div class="col-first even-row-color"><code>void</code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#registerUdf(org.apache.datafusion.ScalarUdf)" class="member-name-link">registerUdf</a><wbr>(<a href="../ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a>&nbsp;udf)</code></div>
+<div class="col-first even-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#cacheManager(org.apache.datafusion.CacheManagerOptions)" class="member-name-link">cacheManager</a><wbr>(<a href="../CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a>&nbsp;options)</code></div>
 <div class="col-last even-row-color">
-<div class="block">Register a Java-implemented scalar UDF.</div>
+<div class="block">Configure DataFusion's built-in <code>CacheManager</code> for the new context.</div>
 </div>
 </div>
 </section>
diff --git a/api/org/apache/datafusion/class-use/ColumnarValue.Array.html b/api/org/apache/datafusion/class-use/ColumnarValue.Array.html
index 94fc634..d28b311 100644
--- a/api/org/apache/datafusion/class-use/ColumnarValue.Array.html
+++ b/api/org/apache/datafusion/class-use/ColumnarValue.Array.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Record Class org.apache.datafusion.ColumnarValue.Array (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Record Class org.apache.datafusion.ColumnarValue.Array (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, interface: ColumnarValue, record: Array">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ColumnarValue.Scalar.html b/api/org/apache/datafusion/class-use/ColumnarValue.Scalar.html
index e74b192..f87243d 100644
--- a/api/org/apache/datafusion/class-use/ColumnarValue.Scalar.html
+++ b/api/org/apache/datafusion/class-use/ColumnarValue.Scalar.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Record Class org.apache.datafusion.ColumnarValue.Scalar (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Record Class org.apache.datafusion.ColumnarValue.Scalar (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, interface: ColumnarValue, record: Scalar">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ColumnarValue.html b/api/org/apache/datafusion/class-use/ColumnarValue.html
index bb651d1..2af1dac 100644
--- a/api/org/apache/datafusion/class-use/ColumnarValue.html
+++ b/api/org/apache/datafusion/class-use/ColumnarValue.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Interface org.apache.datafusion.ColumnarValue (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Interface org.apache.datafusion.ColumnarValue (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, interface: ColumnarValue">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/SimpleTableProvider.html b/api/org/apache/datafusion/class-use/ConfigurationException.html
similarity index 80%
copy from api/org/apache/datafusion/class-use/SimpleTableProvider.html
copy to api/org/apache/datafusion/class-use/ConfigurationException.html
index 134f0d2..3a03ad0 100644
--- a/api/org/apache/datafusion/class-use/SimpleTableProvider.html
+++ b/api/org/apache/datafusion/class-use/ConfigurationException.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.SimpleTableProvider (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ConfigurationException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="use: package: org.apache.datafusion, class: SimpleTableProvider">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: ConfigurationException">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
@@ -30,7 +30,7 @@ loadScripts(document, 'script');</script>
 <ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
 <li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../SimpleTableProvider.html" title="class in org.apache.datafusion">Class</a></li>
+<li><a href="../ConfigurationException.html" title="class in org.apache.datafusion">Class</a></li>
 <li class="nav-bar-cell1-rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,9 +49,9 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 title="Uses of Class org.apache.datafusion.SimpleTableProvider" class="title">Uses of Class<br>org.apache.datafusion.SimpleTableProvider</h1>
+<h1 title="Uses of Class org.apache.datafusion.ConfigurationException" class="title">Uses of Class<br>org.apache.datafusion.ConfigurationException</h1>
 </div>
-No usage of org.apache.datafusion.SimpleTableProvider</main>
+No usage of org.apache.datafusion.ConfigurationException</main>
 <footer role="contentinfo">
 <hr>
 <p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
diff --git a/api/org/apache/datafusion/class-use/CsvReadOptions.html b/api/org/apache/datafusion/class-use/CsvReadOptions.html
index 7508218..def8405 100644
--- a/api/org/apache/datafusion/class-use/CsvReadOptions.html
+++ b/api/org/apache/datafusion/class-use/CsvReadOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.CsvReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.CsvReadOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: CsvReadOptions">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/CsvWriteOptions.html b/api/org/apache/datafusion/class-use/CsvWriteOptions.html
index f40e641..e9172ba 100644
--- a/api/org/apache/datafusion/class-use/CsvWriteOptions.html
+++ b/api/org/apache/datafusion/class-use/CsvWriteOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.CsvWriteOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.CsvWriteOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: CsvWriteOptions">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/DataFrame.html b/api/org/apache/datafusion/class-use/DataFrame.html
index 3d92f97..2d2da99 100644
--- a/api/org/apache/datafusion/class-use/DataFrame.html
+++ b/api/org/apache/datafusion/class-use/DataFrame.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.DataFrame (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.DataFrame (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: DataFrame">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
@@ -90,6 +90,17 @@ loadScripts(document, 'script');</script>
 <div class="block">Drop the named columns.</div>
 </div>
 <div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#except(org.apache.datafusion.DataFrame)" class="member-name-link">except</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Rows present in this DataFrame but not in <code>other</code>, keeping duplicates from the receiver
+ (SQL <code>EXCEPT ALL</code>).</div>
+</div>
+<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#exceptDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">exceptDistinct</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last odd-row-color">
+<div class="block">Rows present in this DataFrame but not in <code>other</code>, deduplicated (SQL <code>EXCEPT</code>).</div>
+</div>
+<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
 <div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#explain(boolean,boolean)" class="member-name-link">explain</a><wbr>(boolean&nbsp;verbose,
  boolean&nbsp;analyze)</code></div>
 <div class="col-last even-row-color">
@@ -106,109 +117,167 @@ loadScripts(document, 'script');</script>
 <div class="block">Decode a DataFusion-Proto <code>LogicalPlanNode</code> and return a lazy <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a>.</div>
 </div>
 <div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#join(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String%5B%5D,java.lang.String%5B%5D)" class="member-name-link">join</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;right,
+<div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#fromSubstrait(byte%5B%5D)" class="member-name-link">fromSubstrait</a><wbr>(byte[]&nbsp;planBytes)</code></div>
+<div class="col-last odd-row-color">
+<div class="block">Decode a <a href="https://substrait.io/">Substrait</a> <code>Plan</code> message and return a lazy
+ <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a>.</div>
+</div>
+<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#intersect(org.apache.datafusion.DataFrame)" class="member-name-link">intersect</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Rows present in both this DataFrame and <code>other</code>, keeping duplicates from the receiver
+ (SQL <code>INTERSECT ALL</code>).</div>
+</div>
+<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#intersectDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">intersectDistinct</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last odd-row-color">
+<div class="block">Rows present in both this DataFrame and <code>other</code>, deduplicated (SQL <code>INTERSECT</code>).</div>
+</div>
+<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#join(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String%5B%5D,java.lang.String%5B%5D)" class="member-name-link">join</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;right,
  <a href="../JoinType.html" title="enum class in org.apache.datafusion">JoinType</a>&nbsp;type,
  <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;leftCols,
  <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;rightCols)</code></div>
-<div class="col-last odd-row-color">
+<div class="col-last even-row-color">
 <div class="block">Equi-join this DataFrame with <code>right</code> on the named columns, using the given <a href="../JoinType.html" title="enum class in org.apache.datafusion"><code>JoinType</code></a>.</div>
 </div>
-<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#join(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String%5B%5D,java.lang.String%5B%5D,java.lang.String)" class="member-name-link">join</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;right,
+<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#join(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String%5B%5D,java.lang.String%5B%5D,java.lang.String)" class="member-name-link">join</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;right,
  <a href="../JoinType.html" title="enum class in org.apache.datafusion">JoinType</a>&nbsp;type,
  <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;leftCols,
  <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;rightCols,
  <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filter)</code></div>
-<div class="col-last even-row-color">
+<div class="col-last odd-row-color">
 <div class="block">Equi-join this DataFrame with <code>right</code>, restricting the result with a residual SQL filter
  parsed against the <em>combined</em> schema (left columns followed by right columns; columns
  may be qualified with the relation alias when ambiguous).</div>
 </div>
-<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#joinOn(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String...)" class="member-name-link">joinOn</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;right,
+<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#joinOn(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String...)" class="member-name-link">joinOn</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;right,
  <a href="../JoinType.html" title="enum class in org.apache.datafusion">JoinType</a>&nbsp;type,
  <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;predicates)</code></div>
-<div class="col-last odd-row-color">
+<div class="col-last even-row-color">
 <div class="block">Join this DataFrame with <code>right</code> using arbitrary SQL predicates parsed against the
  <em>combined</em> schema.</div>
 </div>
+<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#limit(int)" class="member-name-link">limit</a><wbr>(int&nbsp;fetch)</code></div>
+<div class="col-last odd-row-color">
+<div class="block">Take the first <code>fetch</code> rows.</div>
+</div>
 <div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#limit(int)" class="member-name-link">limit</a><wbr>(int&nbsp;fetch)</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#limit(int,int)" class="member-name-link">limit</a><wbr>(int&nbsp;skip,
+ int&nbsp;fetch)</code></div>
 <div class="col-last even-row-color">
-<div class="block">Take the first <code>fetch</code> rows.</div>
+<div class="block">Skip <code>skip</code> rows, then take the next <code>fetch</code> rows.</div>
 </div>
 <div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#limit(int,int)" class="member-name-link">limit</a><wbr>(int&nbsp;skip,
- int&nbsp;fetch)</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readArrow(java.lang.String)" class="member-name-link">readArrow</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
 <div class="col-last odd-row-color">
-<div class="block">Skip <code>skip</code> rows, then take the next <code>fetch</code> rows.</div>
+<div class="block">Read an Arrow IPC file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> without registering it.</div>
 </div>
 <div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readArrow(java.lang.String)" class="member-name-link">readArrow</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readArrow(java.lang.String,org.apache.datafusion.ArrowReadOptions)" class="member-name-link">readArrow</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
+ <a href="../ArrowReadOptions.html" title="class in org.apache.datafusion">ArrowReadOptions</a>&nbsp;options)</code></div>
 <div class="col-last even-row-color">
-<div class="block">Read an Arrow IPC file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> without registering it.</div>
+<div class="block">Read an Arrow IPC file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> with the supplied <a href="../ArrowReadOptions.html" title="class in org.apache.datafusion"><code>ArrowReadOptions</code></a>.</div>
 </div>
 <div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readArrow(java.lang.String,org.apache.datafusion.ArrowReadOptions)" class="member-name-link">readArrow</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
- <a href="../ArrowReadOptions.html" title="class in org.apache.datafusion">ArrowReadOptions</a>&nbsp;options)</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readAvro(java.lang.String)" class="member-name-link">readAvro</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
 <div class="col-last odd-row-color">
-<div class="block">Read an Arrow IPC file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> with the supplied <a href="../ArrowReadOptions.html" title="class in org.apache.datafusion"><code>ArrowReadOptions</code></a>.</div>
+<div class="block">Read an Avro file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> without registering it.</div>
 </div>
 <div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readAvro(java.lang.String)" class="member-name-link">readAvro</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readAvro(java.lang.String,org.apache.datafusion.AvroReadOptions)" class="member-name-link">readAvro</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
+ <a href="../AvroReadOptions.html" title="class in org.apache.datafusion">AvroReadOptions</a>&nbsp;options)</code></div>
 <div class="col-last even-row-color">
-<div class="block">Read an Avro file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> without registering it.</div>
+<div class="block">Read an Avro file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> with the supplied <a href="../AvroReadOptions.html" title="class in org.apache.datafusion"><code>AvroReadOptions</code></a>.</div>
 </div>
 <div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readAvro(java.lang.String,org.apache.datafusion.AvroReadOptions)" class="member-name-link">readAvro</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
- <a href="../AvroReadOptions.html" title="class in org.apache.datafusion">AvroReadOptions</a>&nbsp;options)</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readCsv(java.lang.String)" class="member-name-link">readCsv</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
 <div class="col-last odd-row-color">
-<div class="block">Read an Avro file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> with the supplied <a href="../AvroReadOptions.html" title="class in org.apache.datafusion"><code>AvroReadOptions</code></a>.</div>
+<div class="block">Read a CSV file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> without registering it.</div>
 </div>
 <div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readCsv(java.lang.String)" class="member-name-link">readCsv</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readCsv(java.lang.String,org.apache.datafusion.CsvReadOptions)" class="member-name-link">readCsv</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
+ <a href="../CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a>&nbsp;options)</code></div>
 <div class="col-last even-row-color">
-<div class="block">Read a CSV file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> without registering it.</div>
+<div class="block">Read a CSV file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> with the supplied <a href="../CsvReadOptions.html" title="class in org.apache.datafusion"><code>CsvReadOptions</code></a>.</div>
 </div>
 <div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readCsv(java.lang.String,org.apache.datafusion.CsvReadOptions)" class="member-name-link">readCsv</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
- <a href="../CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a>&nbsp;options)</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readJson(java.lang.String)" class="member-name-link">readJson</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
 <div class="col-last odd-row-color">
-<div class="block">Read a CSV file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> with the supplied <a href="../CsvReadOptions.html" title="class in org.apache.datafusion"><code>CsvReadOptions</code></a>.</div>
+<div class="block">Read a newline-delimited JSON file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> without registering it.</div>
 </div>
 <div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readJson(java.lang.String)" class="member-name-link">readJson</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readJson(java.lang.String,org.apache.datafusion.NdJsonReadOptions)" class="member-name-link">readJson</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
+ <a href="../NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a>&nbsp;options)</code></div>
 <div class="col-last even-row-color">
-<div class="block">Read a newline-delimited JSON file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> without registering it.</div>
+<div class="block">Read a newline-delimited JSON file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> with the supplied <a href="../NdJsonReadOptions.html" title="class in org.apache.datafusion"><code>NdJsonReadOptions</code></a>.</div>
 </div>
 <div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readJson(java.lang.String,org.apache.datafusion.NdJsonReadOptions)" class="member-name-link">readJson</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
- <a href="../NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a>&nbsp;options)</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readParquet(java.lang.String)" class="member-name-link">readParquet</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
 <div class="col-last odd-row-color">
-<div class="block">Read a newline-delimited JSON file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> with the supplied <a href="../NdJsonReadOptions.html" title="class in org.apache.datafusion"><code>NdJsonReadOptions</code></a>.</div>
+<div class="block">Read a parquet file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> without registering it.</div>
 </div>
 <div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readParquet(java.lang.String)" class="member-name-link">readParquet</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readParquet(java.lang.String,org.apache.datafusion.ParquetReadOptions)" class="member-name-link">readParquet</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
+ <a href="../ParquetReadOptions.html" title="class in org.apache.datafusion">ParquetReadOptions</a>&nbsp;options)</code></div>
 <div class="col-last even-row-color">
-<div class="block">Read a parquet file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> without registering it.</div>
+<div class="block">Read a parquet file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> with the supplied <a href="../ParquetReadOptions.html" title="class in org.apache.datafusion"><code>ParquetReadOptions</code></a>.</div>
 </div>
 <div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#readParquet(java.lang.String,org.apache.datafusion.ParquetReadOptions)" class="member-name-link">readParquet</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
- <a href="../ParquetReadOptions.html" title="class in org.apache.datafusion">ParquetReadOptions</a>&nbsp;options)</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#repartitionHash(int,java.lang.String...)" class="member-name-link">repartitionHash</a><wbr>(int&nbsp;numPartitions,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;columns)</code></div>
 <div class="col-last odd-row-color">
-<div class="block">Read a parquet file as a <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a> with the supplied <a href="../ParquetReadOptions.html" title="class in org.apache.datafusion"><code>ParquetReadOptions</code></a>.</div>
+<div class="block">Repartition this DataFrame by hashing the named columns into <code>numPartitions</code> output
+ partitions. v1 supports column-name keys only; expression keys are deferred until the Java
+ binding gains an <code>Expr</code> builder.</div>
 </div>
 <div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#select(java.lang.String...)" class="member-name-link">select</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;columnNames)</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#repartitionRoundRobin(int)" class="member-name-link">repartitionRoundRobin</a><wbr>(int&nbsp;numPartitions)</code></div>
 <div class="col-last even-row-color">
+<div class="block">Repartition this DataFrame using a round-robin scheme across <code>numPartitions</code> output
+ partitions.</div>
+</div>
+<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#select(java.lang.String...)" class="member-name-link">select</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;columnNames)</code></div>
+<div class="col-last odd-row-color">
 <div class="block">Project the listed columns into a new DataFrame.</div>
 </div>
+<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#sort(org.apache.datafusion.SortExpr...)" class="member-name-link">sort</a><wbr>(<a href="../SortExpr.html" title="class in org.apache.datafusion">SortExpr</a>...&nbsp;exprs)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Order the rows by the supplied sort keys.</div>
+</div>
 <div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
 <div class="col-second odd-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#sql(java.lang.String)" class="member-name-link">sql</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;query)</code></div>
 <div class="col-last odd-row-color">
 <div class="block">Parse and plan <code>query</code>, returning a lazy <a href="../DataFrame.html" title="class in org.apache.datafusion"><code>DataFrame</code></a>.</div>
 </div>
 <div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#union(org.apache.datafusion.DataFrame)" class="member-name-link">union</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Concatenate this DataFrame with <code>other</code> by column position, keeping all duplicates (SQL
+ <code>UNION ALL</code>).</div>
+</div>
+<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#unionByName(org.apache.datafusion.DataFrame)" class="member-name-link">unionByName</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last odd-row-color">
+<div class="block">Concatenate this DataFrame with <code>other</code> by column name, keeping all duplicates.</div>
+</div>
+<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#unionByNameDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">unionByNameDistinct</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Concatenate this DataFrame with <code>other</code> by column name, removing duplicates.</div>
+</div>
+<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#unionDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">unionDistinct</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last odd-row-color">
+<div class="block">Concatenate this DataFrame with <code>other</code> by column position, removing duplicates (SQL
+ <code>UNION DISTINCT</code> -- equivalent to plain <code>UNION</code> in standard SQL).</div>
+</div>
+<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
 <div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#unnestColumns(java.lang.String...)" class="member-name-link">unnestColumns</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;columns)</code></div>
 <div class="col-last even-row-color">
 <div class="block">Expand list or struct columns into rows or fields, with default <a href="../UnnestOptions.html" title="class in org.apache.datafusion"><code>UnnestOptions</code></a> (i.e.</div>
@@ -238,6 +307,28 @@ loadScripts(document, 'script');</script>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
 <div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#except(org.apache.datafusion.DataFrame)" class="member-name-link">except</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Rows present in this DataFrame but not in <code>other</code>, keeping duplicates from the receiver
+ (SQL <code>EXCEPT ALL</code>).</div>
+</div>
+<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#exceptDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">exceptDistinct</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last odd-row-color">
+<div class="block">Rows present in this DataFrame but not in <code>other</code>, deduplicated (SQL <code>EXCEPT</code>).</div>
+</div>
+<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#intersect(org.apache.datafusion.DataFrame)" class="member-name-link">intersect</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Rows present in both this DataFrame and <code>other</code>, keeping duplicates from the receiver
+ (SQL <code>INTERSECT ALL</code>).</div>
+</div>
+<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#intersectDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">intersectDistinct</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last odd-row-color">
+<div class="block">Rows present in both this DataFrame and <code>other</code>, deduplicated (SQL <code>INTERSECT</code>).</div>
+</div>
+<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
 <div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#join(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String%5B%5D,java.lang.String%5B%5D)" class="member-name-link">join</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;right,
  <a href="../JoinType.html" title="enum class in org.apache.datafusion">JoinType</a>&nbsp;type,
  <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;leftCols,
@@ -264,6 +355,28 @@ loadScripts(document, 'script');</script>
 <div class="block">Join this DataFrame with <code>right</code> using arbitrary SQL predicates parsed against the
  <em>combined</em> schema.</div>
 </div>
+<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#union(org.apache.datafusion.DataFrame)" class="member-name-link">union</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last odd-row-color">
+<div class="block">Concatenate this DataFrame with <code>other</code> by column position, keeping all duplicates (SQL
+ <code>UNION ALL</code>).</div>
+</div>
+<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#unionByName(org.apache.datafusion.DataFrame)" class="member-name-link">unionByName</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Concatenate this DataFrame with <code>other</code> by column name, keeping all duplicates.</div>
+</div>
+<div class="col-first odd-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#unionByNameDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">unionByNameDistinct</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last odd-row-color">
+<div class="block">Concatenate this DataFrame with <code>other</code> by column name, removing duplicates.</div>
+</div>
+<div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#unionDistinct(org.apache.datafusion.DataFrame)" class="member-name-link">unionDistinct</a><wbr>(<a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a>&nbsp;other)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Concatenate this DataFrame with <code>other</code> by column position, removing duplicates (SQL
+ <code>UNION DISTINCT</code> -- equivalent to plain <code>UNION</code> in standard SQL).</div>
+</div>
 </div>
 </section>
 </li>
diff --git a/api/org/apache/datafusion/class-use/DataFusionException.html b/api/org/apache/datafusion/class-use/DataFusionException.html
new file mode 100644
index 0000000..3c7c89d
--- /dev/null
+++ b/api/org/apache/datafusion/class-use/DataFusionException.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML>
+<html lang>
+<head>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.DataFusionException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: DataFusionException">
+<meta name="generator" content="javadoc/ClassUseWriter">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
+</head>
+<body class="class-use-page">
+<script type="text/javascript">var pathtoroot = "../../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<div class="flex-box">
+<header role="banner" class="flex-header">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DataFusionException.html" title="class in org.apache.datafusion">Class</a></li>
+<li class="nav-bar-cell1-rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html#use">Help</a></li>
+</ul>
+</div>
+<div class="sub-nav">
+<div class="nav-list-search"><label for="search-input">SEARCH:</label>
+<input type="text" id="search-input" value="search" disabled="disabled">
+<input type="reset" id="reset-button" value="reset" disabled="disabled">
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="flex-content">
+<main role="main">
+<div class="header">
+<h1 title="Uses of Class org.apache.datafusion.DataFusionException" class="title">Uses of Class<br>org.apache.datafusion.DataFusionException</h1>
+</div>
+<div class="caption"><span>Packages that use <a href="../DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a></span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Package</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color"><a href="#org.apache.datafusion">org.apache.datafusion</a></div>
+<div class="col-last even-row-color">&nbsp;</div>
+</div>
+<section class="class-uses">
+<ul class="block-list">
+<li>
+<section class="detail" id="org.apache.datafusion">
+<h2>Uses of <a href="../DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a> in <a href="../package-summary.html">org.apache.datafusion</a></h2>
+<div class="caption"><span>Subclasses of <a href="../DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a> in <a href="../package-summary.html">org.apache.datafusion</a></span></div>
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Class</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color"><code>class&nbsp;</code></div>
+<div class="col-second even-row-color"><code><a href="../ConfigurationException.html" class="type-name-link" title="class in org.apache.datafusion">ConfigurationException</a></code></div>
+<div class="col-last even-row-color">
+<div class="block">Invalid or unrecognised DataFusion configuration option.</div>
+</div>
+<div class="col-first odd-row-color"><code>class&nbsp;</code></div>
+<div class="col-second odd-row-color"><code><a href="../ExecutionException.html" class="type-name-link" title="class in org.apache.datafusion">ExecutionException</a></code></div>
+<div class="col-last odd-row-color">
+<div class="block">Runtime execution failure: a UDF threw, a join task panicked, an external (non-DataFusion) error
+ propagated up, or an FFI-level failure surfaced.</div>
+</div>
+<div class="col-first even-row-color"><code>class&nbsp;</code></div>
+<div class="col-second even-row-color"><code><a href="../IoException.html" class="type-name-link" title="class in org.apache.datafusion">IoException</a></code></div>
+<div class="col-last even-row-color">
+<div class="block">IO-shaped failure: a local filesystem read failed, an object store request failed, or a parquet /
+ arrow / avro decoder reported a malformed file.</div>
+</div>
+<div class="col-first odd-row-color"><code>class&nbsp;</code></div>
+<div class="col-second odd-row-color"><code><a href="../NotImplementedException.html" class="type-name-link" title="class in org.apache.datafusion">NotImplementedException</a></code></div>
+<div class="col-last odd-row-color">
+<div class="block">The requested feature is recognised by DataFusion but not implemented yet.</div>
+</div>
+<div class="col-first even-row-color"><code>class&nbsp;</code></div>
+<div class="col-second even-row-color"><code><a href="../PlanException.html" class="type-name-link" title="class in org.apache.datafusion">PlanException</a></code></div>
+<div class="col-last even-row-color">
+<div class="block">SQL parsing, logical planning, or schema-resolution failure.</div>
+</div>
+<div class="col-first odd-row-color"><code>class&nbsp;</code></div>
+<div class="col-second odd-row-color"><code><a href="../ResourcesExhaustedException.html" class="type-name-link" title="class in org.apache.datafusion">ResourcesExhaustedException</a></code></div>
+<div class="col-last odd-row-color">
+<div class="block">The DataFusion runtime exhausted a configured resource budget — typically the memory pool, but
+ applies to any guard upstream surfaces as <code>DataFusionError::ResourcesExhausted</code>.</div>
+</div>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</main>
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
+</footer>
+</div>
+</div>
+</body>
+</html>
diff --git a/api/org/apache/datafusion/class-use/SimpleTableProvider.html b/api/org/apache/datafusion/class-use/ExecutionException.html
similarity index 80%
copy from api/org/apache/datafusion/class-use/SimpleTableProvider.html
copy to api/org/apache/datafusion/class-use/ExecutionException.html
index 134f0d2..548a8bd 100644
--- a/api/org/apache/datafusion/class-use/SimpleTableProvider.html
+++ b/api/org/apache/datafusion/class-use/ExecutionException.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.SimpleTableProvider (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ExecutionException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="use: package: org.apache.datafusion, class: SimpleTableProvider">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: ExecutionException">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
@@ -30,7 +30,7 @@ loadScripts(document, 'script');</script>
 <ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
 <li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../SimpleTableProvider.html" title="class in org.apache.datafusion">Class</a></li>
+<li><a href="../ExecutionException.html" title="class in org.apache.datafusion">Class</a></li>
 <li class="nav-bar-cell1-rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,9 +49,9 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 title="Uses of Class org.apache.datafusion.SimpleTableProvider" class="title">Uses of Class<br>org.apache.datafusion.SimpleTableProvider</h1>
+<h1 title="Uses of Class org.apache.datafusion.ExecutionException" class="title">Uses of Class<br>org.apache.datafusion.ExecutionException</h1>
 </div>
-No usage of org.apache.datafusion.SimpleTableProvider</main>
+No usage of org.apache.datafusion.ExecutionException</main>
 <footer role="contentinfo">
 <hr>
 <p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
diff --git a/api/org/apache/datafusion/class-use/FileCompressionType.html b/api/org/apache/datafusion/class-use/FileCompressionType.html
index aca7efe..6851d0e 100644
--- a/api/org/apache/datafusion/class-use/FileCompressionType.html
+++ b/api/org/apache/datafusion/class-use/FileCompressionType.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Enum Class org.apache.datafusion.FileCompressionType (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Enum Class org.apache.datafusion.FileCompressionType (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, enum: FileCompressionType">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/SimpleTableProvider.html b/api/org/apache/datafusion/class-use/IoException.html
similarity index 80%
copy from api/org/apache/datafusion/class-use/SimpleTableProvider.html
copy to api/org/apache/datafusion/class-use/IoException.html
index 134f0d2..ec05406 100644
--- a/api/org/apache/datafusion/class-use/SimpleTableProvider.html
+++ b/api/org/apache/datafusion/class-use/IoException.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.SimpleTableProvider (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.IoException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="use: package: org.apache.datafusion, class: SimpleTableProvider">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: IoException">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
@@ -30,7 +30,7 @@ loadScripts(document, 'script');</script>
 <ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
 <li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../SimpleTableProvider.html" title="class in org.apache.datafusion">Class</a></li>
+<li><a href="../IoException.html" title="class in org.apache.datafusion">Class</a></li>
 <li class="nav-bar-cell1-rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,9 +49,9 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 title="Uses of Class org.apache.datafusion.SimpleTableProvider" class="title">Uses of Class<br>org.apache.datafusion.SimpleTableProvider</h1>
+<h1 title="Uses of Class org.apache.datafusion.IoException" class="title">Uses of Class<br>org.apache.datafusion.IoException</h1>
 </div>
-No usage of org.apache.datafusion.SimpleTableProvider</main>
+No usage of org.apache.datafusion.IoException</main>
 <footer role="contentinfo">
 <hr>
 <p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
diff --git a/api/org/apache/datafusion/class-use/JoinType.html b/api/org/apache/datafusion/class-use/JoinType.html
index e084895..f4601b3 100644
--- a/api/org/apache/datafusion/class-use/JoinType.html
+++ b/api/org/apache/datafusion/class-use/JoinType.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Enum Class org.apache.datafusion.JoinType (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Enum Class org.apache.datafusion.JoinType (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, enum: JoinType">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/JsonWriteOptions.html b/api/org/apache/datafusion/class-use/JsonWriteOptions.html
index 5efbefb..7e76f0f 100644
--- a/api/org/apache/datafusion/class-use/JsonWriteOptions.html
+++ b/api/org/apache/datafusion/class-use/JsonWriteOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.JsonWriteOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.JsonWriteOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: JsonWriteOptions">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/SessionContext.html b/api/org/apache/datafusion/class-use/MemoryUsage.html
similarity index 69%
copy from api/org/apache/datafusion/class-use/SessionContext.html
copy to api/org/apache/datafusion/class-use/MemoryUsage.html
index 09c4b83..a114f8a 100644
--- a/api/org/apache/datafusion/class-use/SessionContext.html
+++ b/api/org/apache/datafusion/class-use/MemoryUsage.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.SessionContext (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.MemoryUsage (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="use: package: org.apache.datafusion, class: SessionContext">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: MemoryUsage">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
@@ -30,7 +30,7 @@ loadScripts(document, 'script');</script>
 <ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
 <li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../SessionContext.html" title="class in org.apache.datafusion">Class</a></li>
+<li><a href="../MemoryUsage.html" title="class in org.apache.datafusion">Class</a></li>
 <li class="nav-bar-cell1-rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,9 +49,9 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 title="Uses of Class org.apache.datafusion.SessionContext" class="title">Uses of Class<br>org.apache.datafusion.SessionContext</h1>
+<h1 title="Uses of Class org.apache.datafusion.MemoryUsage" class="title">Uses of Class<br>org.apache.datafusion.MemoryUsage</h1>
 </div>
-<div class="caption"><span>Packages that use <a href="../SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></span></div>
+<div class="caption"><span>Packages that use <a href="../MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a></span></div>
 <div class="summary-table two-column-summary">
 <div class="table-header col-first">Package</div>
 <div class="table-header col-last">Description</div>
@@ -62,16 +62,17 @@ loadScripts(document, 'script');</script>
 <ul class="block-list">
 <li>
 <section class="detail" id="org.apache.datafusion">
-<h2>Uses of <a href="../SessionContext.html" title="class in org.apache.datafusion">SessionContext</a> in <a href="../package-summary.html">org.apache.datafusion</a></h2>
-<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> that return <a href="../SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></span></div>
+<h2>Uses of <a href="../MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a> in <a href="../package-summary.html">org.apache.datafusion</a></h2>
+<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> that return <a href="../MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a></span></div>
 <div class="summary-table three-column-summary">
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
-<div class="col-first even-row-color"><code><a href="../SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#build()" class="member-name-link">build</a>()</code></div>
+<div class="col-first even-row-color"><code><a href="../MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#memoryUsage()" class="member-name-link">memoryUsage</a>()</code></div>
 <div class="col-last even-row-color">
-<div class="block">Construct a <a href="../SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a> with the configured options.</div>
+<div class="block">Snapshot the session's memory pool: bytes currently held and the peak observed since this
+ session was created.</div>
 </div>
 </div>
 </section>
diff --git a/api/org/apache/datafusion/class-use/NativeLibraryLoader.html b/api/org/apache/datafusion/class-use/NativeLibraryLoader.html
index 88ea193..3254201 100644
--- a/api/org/apache/datafusion/class-use/NativeLibraryLoader.html
+++ b/api/org/apache/datafusion/class-use/NativeLibraryLoader.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.NativeLibraryLoader (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.NativeLibraryLoader (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: NativeLibraryLoader">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/NdJsonReadOptions.html b/api/org/apache/datafusion/class-use/NdJsonReadOptions.html
index 70eca9f..3872a98 100644
--- a/api/org/apache/datafusion/class-use/NdJsonReadOptions.html
+++ b/api/org/apache/datafusion/class-use/NdJsonReadOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.NdJsonReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.NdJsonReadOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: NdJsonReadOptions">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/NativeLibraryLoader.html b/api/org/apache/datafusion/class-use/NotImplementedException.html
similarity index 79%
copy from api/org/apache/datafusion/class-use/NativeLibraryLoader.html
copy to api/org/apache/datafusion/class-use/NotImplementedException.html
index 88ea193..b6a34ee 100644
--- a/api/org/apache/datafusion/class-use/NativeLibraryLoader.html
+++ b/api/org/apache/datafusion/class-use/NotImplementedException.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.NativeLibraryLoader (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.NotImplementedException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="use: package: org.apache.datafusion, class: NativeLibraryLoader">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: NotImplementedException">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
@@ -30,7 +30,7 @@ loadScripts(document, 'script');</script>
 <ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
 <li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../NativeLibraryLoader.html" title="class in org.apache.datafusion">Class</a></li>
+<li><a href="../NotImplementedException.html" title="class in org.apache.datafusion">Class</a></li>
 <li class="nav-bar-cell1-rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,9 +49,9 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 title="Uses of Class org.apache.datafusion.NativeLibraryLoader" class="title">Uses of Class<br>org.apache.datafusion.NativeLibraryLoader</h1>
+<h1 title="Uses of Class org.apache.datafusion.NotImplementedException" class="title">Uses of Class<br>org.apache.datafusion.NotImplementedException</h1>
 </div>
-No usage of org.apache.datafusion.NativeLibraryLoader</main>
+No usage of org.apache.datafusion.NotImplementedException</main>
 <footer role="contentinfo">
 <hr>
 <p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
diff --git a/api/org/apache/datafusion/class-use/ObjectStoreOptions.Gcs.Builder.html b/api/org/apache/datafusion/class-use/ObjectStoreOptions.Gcs.Builder.html
index 72125db..eebc54e 100644
--- a/api/org/apache/datafusion/class-use/ObjectStoreOptions.Gcs.Builder.html
+++ b/api/org/apache/datafusion/class-use/ObjectStoreOptions.Gcs.Builder.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.Gcs.Builder (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.Gcs.Builder (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: ObjectStoreOptions, class: Gcs, class: Builder">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ObjectStoreOptions.Gcs.html b/api/org/apache/datafusion/class-use/ObjectStoreOptions.Gcs.html
index 4ec417b..4d7c1af 100644
--- a/api/org/apache/datafusion/class-use/ObjectStoreOptions.Gcs.html
+++ b/api/org/apache/datafusion/class-use/ObjectStoreOptions.Gcs.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.Gcs (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.Gcs (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: ObjectStoreOptions, class: Gcs">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ObjectStoreOptions.Http.Builder.html b/api/org/apache/datafusion/class-use/ObjectStoreOptions.Http.Builder.html
index 443e6d6..136feb3 100644
--- a/api/org/apache/datafusion/class-use/ObjectStoreOptions.Http.Builder.html
+++ b/api/org/apache/datafusion/class-use/ObjectStoreOptions.Http.Builder.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.Http.Builder (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.Http.Builder (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: ObjectStoreOptions, class: Http, class: Builder">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ObjectStoreOptions.Http.html b/api/org/apache/datafusion/class-use/ObjectStoreOptions.Http.html
index c26164c..1d6dbf9 100644
--- a/api/org/apache/datafusion/class-use/ObjectStoreOptions.Http.html
+++ b/api/org/apache/datafusion/class-use/ObjectStoreOptions.Http.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.Http (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.Http (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: ObjectStoreOptions, class: Http">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ObjectStoreOptions.S3.Builder.html b/api/org/apache/datafusion/class-use/ObjectStoreOptions.S3.Builder.html
index cda3747..2df0918 100644
--- a/api/org/apache/datafusion/class-use/ObjectStoreOptions.S3.Builder.html
+++ b/api/org/apache/datafusion/class-use/ObjectStoreOptions.S3.Builder.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.S3.Builder (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.S3.Builder (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: ObjectStoreOptions, class: S3, class: Builder">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ObjectStoreOptions.S3.html b/api/org/apache/datafusion/class-use/ObjectStoreOptions.S3.html
index 8b18b1c..7f485d7 100644
--- a/api/org/apache/datafusion/class-use/ObjectStoreOptions.S3.html
+++ b/api/org/apache/datafusion/class-use/ObjectStoreOptions.S3.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.S3 (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ObjectStoreOptions.S3 (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: ObjectStoreOptions, class: S3">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ObjectStoreOptions.html b/api/org/apache/datafusion/class-use/ObjectStoreOptions.html
index f80e5db..e1bfd50 100644
--- a/api/org/apache/datafusion/class-use/ObjectStoreOptions.html
+++ b/api/org/apache/datafusion/class-use/ObjectStoreOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ObjectStoreOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ObjectStoreOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: ObjectStoreOptions">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ParquetReadOptions.html b/api/org/apache/datafusion/class-use/ParquetReadOptions.html
index d374e62..ccac49d 100644
--- a/api/org/apache/datafusion/class-use/ParquetReadOptions.html
+++ b/api/org/apache/datafusion/class-use/ParquetReadOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ParquetReadOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ParquetReadOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: ParquetReadOptions">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ParquetWriteOptions.html b/api/org/apache/datafusion/class-use/ParquetWriteOptions.html
index 720a9df..6fcf6b5 100644
--- a/api/org/apache/datafusion/class-use/ParquetWriteOptions.html
+++ b/api/org/apache/datafusion/class-use/ParquetWriteOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ParquetWriteOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ParquetWriteOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: ParquetWriteOptions">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/SimpleTableProvider.html b/api/org/apache/datafusion/class-use/PlanException.html
similarity index 80%
copy from api/org/apache/datafusion/class-use/SimpleTableProvider.html
copy to api/org/apache/datafusion/class-use/PlanException.html
index 134f0d2..2791145 100644
--- a/api/org/apache/datafusion/class-use/SimpleTableProvider.html
+++ b/api/org/apache/datafusion/class-use/PlanException.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.SimpleTableProvider (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.PlanException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="use: package: org.apache.datafusion, class: SimpleTableProvider">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: PlanException">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
@@ -30,7 +30,7 @@ loadScripts(document, 'script');</script>
 <ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
 <li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../SimpleTableProvider.html" title="class in org.apache.datafusion">Class</a></li>
+<li><a href="../PlanException.html" title="class in org.apache.datafusion">Class</a></li>
 <li class="nav-bar-cell1-rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,9 +49,9 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 title="Uses of Class org.apache.datafusion.SimpleTableProvider" class="title">Uses of Class<br>org.apache.datafusion.SimpleTableProvider</h1>
+<h1 title="Uses of Class org.apache.datafusion.PlanException" class="title">Uses of Class<br>org.apache.datafusion.PlanException</h1>
 </div>
-No usage of org.apache.datafusion.SimpleTableProvider</main>
+No usage of org.apache.datafusion.PlanException</main>
 <footer role="contentinfo">
 <hr>
 <p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
diff --git a/api/org/apache/datafusion/class-use/SimpleTableProvider.html b/api/org/apache/datafusion/class-use/ResourcesExhaustedException.html
similarity index 79%
copy from api/org/apache/datafusion/class-use/SimpleTableProvider.html
copy to api/org/apache/datafusion/class-use/ResourcesExhaustedException.html
index 134f0d2..7e409d0 100644
--- a/api/org/apache/datafusion/class-use/SimpleTableProvider.html
+++ b/api/org/apache/datafusion/class-use/ResourcesExhaustedException.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.SimpleTableProvider (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ResourcesExhaustedException (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="use: package: org.apache.datafusion, class: SimpleTableProvider">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: ResourcesExhaustedException">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
@@ -30,7 +30,7 @@ loadScripts(document, 'script');</script>
 <ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
 <li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../SimpleTableProvider.html" title="class in org.apache.datafusion">Class</a></li>
+<li><a href="../ResourcesExhaustedException.html" title="class in org.apache.datafusion">Class</a></li>
 <li class="nav-bar-cell1-rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,9 +49,9 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 title="Uses of Class org.apache.datafusion.SimpleTableProvider" class="title">Uses of Class<br>org.apache.datafusion.SimpleTableProvider</h1>
+<h1 title="Uses of Class org.apache.datafusion.ResourcesExhaustedException" class="title">Uses of Class<br>org.apache.datafusion.ResourcesExhaustedException</h1>
 </div>
-No usage of org.apache.datafusion.SimpleTableProvider</main>
+No usage of org.apache.datafusion.ResourcesExhaustedException</main>
 <footer role="contentinfo">
 <hr>
 <p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
diff --git a/api/org/apache/datafusion/class-use/SessionContext.html b/api/org/apache/datafusion/class-use/RuntimeStats.html
similarity index 69%
copy from api/org/apache/datafusion/class-use/SessionContext.html
copy to api/org/apache/datafusion/class-use/RuntimeStats.html
index 09c4b83..b22aded 100644
--- a/api/org/apache/datafusion/class-use/SessionContext.html
+++ b/api/org/apache/datafusion/class-use/RuntimeStats.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.SessionContext (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.RuntimeStats (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="use: package: org.apache.datafusion, class: SessionContext">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: RuntimeStats">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
@@ -30,7 +30,7 @@ loadScripts(document, 'script');</script>
 <ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
 <li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../SessionContext.html" title="class in org.apache.datafusion">Class</a></li>
+<li><a href="../RuntimeStats.html" title="class in org.apache.datafusion">Class</a></li>
 <li class="nav-bar-cell1-rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,9 +49,9 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 title="Uses of Class org.apache.datafusion.SessionContext" class="title">Uses of Class<br>org.apache.datafusion.SessionContext</h1>
+<h1 title="Uses of Class org.apache.datafusion.RuntimeStats" class="title">Uses of Class<br>org.apache.datafusion.RuntimeStats</h1>
 </div>
-<div class="caption"><span>Packages that use <a href="../SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></span></div>
+<div class="caption"><span>Packages that use <a href="../RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></span></div>
 <div class="summary-table two-column-summary">
 <div class="table-header col-first">Package</div>
 <div class="table-header col-last">Description</div>
@@ -62,16 +62,17 @@ loadScripts(document, 'script');</script>
 <ul class="block-list">
 <li>
 <section class="detail" id="org.apache.datafusion">
-<h2>Uses of <a href="../SessionContext.html" title="class in org.apache.datafusion">SessionContext</a> in <a href="../package-summary.html">org.apache.datafusion</a></h2>
-<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> that return <a href="../SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></span></div>
+<h2>Uses of <a href="../RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a> in <a href="../package-summary.html">org.apache.datafusion</a></h2>
+<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> that return <a href="../RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></span></div>
 <div class="summary-table three-column-summary">
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
-<div class="col-first even-row-color"><code><a href="../SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#build()" class="member-name-link">build</a>()</code></div>
+<div class="col-first even-row-color"><code><a href="../RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContext.</span><code><a href="../SessionContext.html#runtimeStats()" class="member-name-link">runtimeStats</a>()</code></div>
 <div class="col-last even-row-color">
-<div class="block">Construct a <a href="../SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a> with the configured options.</div>
+<div class="block">Snapshot operational counters from the underlying Tokio runtime: worker count, busy time, queue
+ depth, etc.</div>
 </div>
 </div>
 </section>
diff --git a/api/org/apache/datafusion/class-use/ScalarFunction.html b/api/org/apache/datafusion/class-use/ScalarFunction.html
index 512315e..35959c2 100644
--- a/api/org/apache/datafusion/class-use/ScalarFunction.html
+++ b/api/org/apache/datafusion/class-use/ScalarFunction.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Interface org.apache.datafusion.ScalarFunction (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Interface org.apache.datafusion.ScalarFunction (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, interface: ScalarFunction">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ScalarFunctionArgs.html b/api/org/apache/datafusion/class-use/ScalarFunctionArgs.html
index 575d4d2..a6f8c80 100644
--- a/api/org/apache/datafusion/class-use/ScalarFunctionArgs.html
+++ b/api/org/apache/datafusion/class-use/ScalarFunctionArgs.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Record Class org.apache.datafusion.ScalarFunctionArgs (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Record Class org.apache.datafusion.ScalarFunctionArgs (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, record: ScalarFunctionArgs">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/ScalarUdf.html b/api/org/apache/datafusion/class-use/ScalarUdf.html
index 177fde8..61c82cc 100644
--- a/api/org/apache/datafusion/class-use/ScalarUdf.html
+++ b/api/org/apache/datafusion/class-use/ScalarUdf.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.ScalarUdf (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.ScalarUdf (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: ScalarUdf">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/SessionContext.html b/api/org/apache/datafusion/class-use/SessionContext.html
index 09c4b83..2e4bfa8 100644
--- a/api/org/apache/datafusion/class-use/SessionContext.html
+++ b/api/org/apache/datafusion/class-use/SessionContext.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.SessionContext (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.SessionContext (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: SessionContext">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/SessionContextBuilder.html b/api/org/apache/datafusion/class-use/SessionContextBuilder.html
index 3604702..23b36e3 100644
--- a/api/org/apache/datafusion/class-use/SessionContextBuilder.html
+++ b/api/org/apache/datafusion/class-use/SessionContextBuilder.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.SessionContextBuilder (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.SessionContextBuilder (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: SessionContextBuilder">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
@@ -77,44 +77,59 @@ loadScripts(document, 'script');</script>
 <div class="block">Start configuring a <a href="../SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a>.</div>
 </div>
 <div class="col-first even-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#collectStatistics(boolean)" class="member-name-link">collectStatistics</a><wbr>(boolean&nbsp;collectStatistics)</code></div>
-<div class="col-last even-row-color">&nbsp;</div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#cacheManager(org.apache.datafusion.CacheManagerOptions)" class="member-name-link">cacheManager</a><wbr>(<a href="../CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a>&nbsp;options)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Configure DataFusion's built-in <code>CacheManager</code> for the new context.</div>
+</div>
+<div class="col-first odd-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#collectStatistics(boolean)" class="member-name-link">collectStatistics</a><wbr>(boolean&nbsp;collectStatistics)</code></div>
+<div class="col-last odd-row-color">&nbsp;</div>
+<div class="col-first even-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#disableSpill()" class="member-name-link">disableSpill</a>()</code></div>
+<div class="col-last even-row-color">
+<div class="block">Disable on-disk spill entirely.</div>
+</div>
 <div class="col-first odd-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
 <div class="col-second odd-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#informationSchema(boolean)" class="member-name-link">informationSchema</a><wbr>(boolean&nbsp;informationSchema)</code></div>
 <div class="col-last odd-row-color">&nbsp;</div>
 <div class="col-first even-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#memoryLimit(long,double)" class="member-name-link">memoryLimit</a><wbr>(long&nbsp;maxMemoryBytes,
- double&nbsp;fraction)</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#maxTempDirectorySize(long)" class="member-name-link">maxTempDirectorySize</a><wbr>(long&nbsp;bytes)</code></div>
 <div class="col-last even-row-color">
-<div class="block">Cap the memory pool at <code>maxMemoryBytes</code>, reserving <code>fraction</code> of it for queries.</div>
+<div class="block">Cap the cumulative bytes used by spill files under <a href="../SessionContextBuilder.html#tempDirectory(java.lang.String)"><code>tempDirectory(String)</code></a>.</div>
 </div>
 <div class="col-first odd-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#registerObjectStore(org.apache.datafusion.ObjectStoreOptions)" class="member-name-link">registerObjectStore</a><wbr>(<a href="../ObjectStoreOptions.html" title="class in org.apache.datafusion">ObjectStoreOptions</a>&nbsp;options)</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#memoryLimit(long,double)" class="member-name-link">memoryLimit</a><wbr>(long&nbsp;maxMemoryBytes,
+ double&nbsp;fraction)</code></div>
 <div class="col-last odd-row-color">
-<div class="block">Register an <code>object_store::ObjectStore</code> backend on the new context's <code>RuntimeEnv</code>.</div>
+<div class="block">Cap the memory pool at <code>maxMemoryBytes</code>, reserving <code>fraction</code> of it for queries.</div>
 </div>
 <div class="col-first even-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#setOption(java.lang.String,java.lang.String)" class="member-name-link">setOption</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;key,
- <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;value)</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#registerObjectStore(org.apache.datafusion.ObjectStoreOptions)" class="member-name-link">registerObjectStore</a><wbr>(<a href="../ObjectStoreOptions.html" title="class in org.apache.datafusion">ObjectStoreOptions</a>&nbsp;options)</code></div>
 <div class="col-last even-row-color">
-<div class="block">Set an arbitrary <code>datafusion.*</code> config option by string key.</div>
+<div class="block">Register an <code>object_store::ObjectStore</code> backend on the new context's <code>RuntimeEnv</code>.</div>
 </div>
 <div class="col-first odd-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#setOptions(java.util.LinkedHashMap)" class="member-name-link">setOptions</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Strin [...]
+<div class="col-second odd-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#setOption(java.lang.String,java.lang.String)" class="member-name-link">setOption</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;key,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;value)</code></div>
 <div class="col-last odd-row-color">
-<div class="block">Apply every entry of <code>entries</code> via <a href="../SessionContextBuilder.html#setOption(java.lang.String,java.lang.String)"><code>setOption(String, String)</code></a>, in <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link"><code>LinkedHashMap</code></a> insertion order.</div>
+<div class="block">Set an arbitrary <code>datafusion.*</code> config option by string key.</div>
 </div>
 <div class="col-first even-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#setOptions(java.util.Map)" class="member-name-link">setOptions</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or inter [...]
+<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#setOptions(java.util.LinkedHashMap)" class="member-name-link">setOptions</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Stri [...]
 <div class="col-last even-row-color">
-<div class="block">Apply every entry of <code>entries</code> via <a href="../SessionContextBuilder.html#setOption(java.lang.String,java.lang.String)"><code>setOption(String, String)</code></a>.</div>
+<div class="block">Apply every entry of <code>entries</code> via <a href="../SessionContextBuilder.html#setOption(java.lang.String,java.lang.String)"><code>setOption(String, String)</code></a>, in <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link"><code>LinkedHashMap</code></a> insertion order.</div>
 </div>
 <div class="col-first odd-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#targetPartitions(int)" class="member-name-link">targetPartitions</a><wbr>(int&nbsp;targetPartitions)</code></div>
-<div class="col-last odd-row-color">&nbsp;</div>
+<div class="col-second odd-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#setOptions(java.util.Map)" class="member-name-link">setOptions</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interf [...]
+<div class="col-last odd-row-color">
+<div class="block">Apply every entry of <code>entries</code> via <a href="../SessionContextBuilder.html#setOption(java.lang.String,java.lang.String)"><code>setOption(String, String)</code></a>.</div>
+</div>
 <div class="col-first even-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#tempDirectory(java.lang.String)" class="member-name-link">tempDirectory</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
-<div class="col-last even-row-color">
+<div class="col-second even-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#targetPartitions(int)" class="member-name-link">targetPartitions</a><wbr>(int&nbsp;targetPartitions)</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+<div class="col-first odd-row-color"><code><a href="../SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">SessionContextBuilder.</span><code><a href="../SessionContextBuilder.html#tempDirectory(java.lang.String)" class="member-name-link">tempDirectory</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
+<div class="col-last odd-row-color">
 <div class="block">Directory the DiskManager uses for spill files.</div>
 </div>
 </div>
diff --git a/api/org/apache/datafusion/class-use/SimpleTableProvider.html b/api/org/apache/datafusion/class-use/SimpleTableProvider.html
index 134f0d2..6bb2931 100644
--- a/api/org/apache/datafusion/class-use/SimpleTableProvider.html
+++ b/api/org/apache/datafusion/class-use/SimpleTableProvider.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.SimpleTableProvider (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.SimpleTableProvider (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: SimpleTableProvider">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/UnnestOptions.html b/api/org/apache/datafusion/class-use/SortExpr.html
similarity index 56%
copy from api/org/apache/datafusion/class-use/UnnestOptions.html
copy to api/org/apache/datafusion/class-use/SortExpr.html
index eebd370..fc6e42c 100644
--- a/api/org/apache/datafusion/class-use/UnnestOptions.html
+++ b/api/org/apache/datafusion/class-use/SortExpr.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.UnnestOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.SortExpr (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
-<meta name="description" content="use: package: org.apache.datafusion, class: UnnestOptions">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="use: package: org.apache.datafusion, class: SortExpr">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
@@ -30,7 +30,7 @@ loadScripts(document, 'script');</script>
 <ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
 <li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../UnnestOptions.html" title="class in org.apache.datafusion">Class</a></li>
+<li><a href="../SortExpr.html" title="class in org.apache.datafusion">Class</a></li>
 <li class="nav-bar-cell1-rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,9 +49,9 @@ loadScripts(document, 'script');</script>
 <div class="flex-content">
 <main role="main">
 <div class="header">
-<h1 title="Uses of Class org.apache.datafusion.UnnestOptions" class="title">Uses of Class<br>org.apache.datafusion.UnnestOptions</h1>
+<h1 title="Uses of Class org.apache.datafusion.SortExpr" class="title">Uses of Class<br>org.apache.datafusion.SortExpr</h1>
 </div>
-<div class="caption"><span>Packages that use <a href="../UnnestOptions.html" title="class in org.apache.datafusion">UnnestOptions</a></span></div>
+<div class="caption"><span>Packages that use <a href="../SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></span></div>
 <div class="summary-table two-column-summary">
 <div class="table-header col-first">Package</div>
 <div class="table-header col-last">Description</div>
@@ -62,29 +62,37 @@ loadScripts(document, 'script');</script>
 <ul class="block-list">
 <li>
 <section class="detail" id="org.apache.datafusion">
-<h2>Uses of <a href="../UnnestOptions.html" title="class in org.apache.datafusion">UnnestOptions</a> in <a href="../package-summary.html">org.apache.datafusion</a></h2>
-<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> that return <a href="../UnnestOptions.html" title="class in org.apache.datafusion">UnnestOptions</a></span></div>
+<h2>Uses of <a href="../SortExpr.html" title="class in org.apache.datafusion">SortExpr</a> in <a href="../package-summary.html">org.apache.datafusion</a></h2>
+<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> that return <a href="../SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></span></div>
 <div class="summary-table three-column-summary">
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
-<div class="col-first even-row-color"><code><a href="../UnnestOptions.html" title="class in org.apache.datafusion">UnnestOptions</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">UnnestOptions.</span><code><a href="../UnnestOptions.html#preserveNulls(boolean)" class="member-name-link">preserveNulls</a><wbr>(boolean&nbsp;v)</code></div>
+<div class="col-first even-row-color"><code>static <a href="../SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SortExpr.</span><code><a href="../SortExpr.html#asc(java.lang.String)" class="member-name-link">asc</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;column)</code></div>
 <div class="col-last even-row-color">
-<div class="block">When <code>true</code> (the default), nulls in the input column are preserved as null rows in the
- output.</div>
+<div class="block">Sort the given column ascending, with NULLs placed last.</div>
 </div>
+<div class="col-first odd-row-color"><code>static <a href="../SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">SortExpr.</span><code><a href="../SortExpr.html#desc(java.lang.String)" class="member-name-link">desc</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;column)</code></div>
+<div class="col-last odd-row-color">
+<div class="block">Sort the given column descending, with NULLs placed first.</div>
 </div>
-<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> with parameters of type <a href="../UnnestOptions.html" title="class in org.apache.datafusion">UnnestOptions</a></span></div>
+<div class="col-first even-row-color"><code><a href="../SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></code></div>
+<div class="col-second even-row-color"><span class="type-name-label">SortExpr.</span><code><a href="../SortExpr.html#nullsFirst(boolean)" class="member-name-link">nullsFirst</a><wbr>(boolean&nbsp;v)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Override the default NULL placement.</div>
+</div>
+</div>
+<div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.datafusion</a> with parameters of type <a href="../SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></span></div>
 <div class="summary-table three-column-summary">
 <div class="table-header col-first">Modifier and Type</div>
 <div class="table-header col-second">Method</div>
 <div class="table-header col-last">Description</div>
 <div class="col-first even-row-color"><code><a href="../DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></code></div>
-<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#unnestColumns(org.apache.datafusion.UnnestOptions,java.lang.String...)" class="member-name-link">unnestColumns</a><wbr>(<a href="../UnnestOptions.html" title="class in org.apache.datafusion">UnnestOptions</a>&nbsp;options,
- <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;columns)</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">DataFrame.</span><code><a href="../DataFrame.html#sort(org.apache.datafusion.SortExpr...)" class="member-name-link">sort</a><wbr>(<a href="../SortExpr.html" title="class in org.apache.datafusion">SortExpr</a>...&nbsp;exprs)</code></div>
 <div class="col-last even-row-color">
-<div class="block">Expand list or struct columns into rows or fields with the supplied <a href="../UnnestOptions.html" title="class in org.apache.datafusion"><code>UnnestOptions</code></a>.</div>
+<div class="block">Order the rows by the supplied sort keys.</div>
 </div>
 </div>
 </section>
diff --git a/api/org/apache/datafusion/class-use/TableProvider.html b/api/org/apache/datafusion/class-use/TableProvider.html
index 9010934..0243a1f 100644
--- a/api/org/apache/datafusion/class-use/TableProvider.html
+++ b/api/org/apache/datafusion/class-use/TableProvider.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Interface org.apache.datafusion.TableProvider (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Interface org.apache.datafusion.TableProvider (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, interface: TableProvider">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/UnnestOptions.html b/api/org/apache/datafusion/class-use/UnnestOptions.html
index eebd370..b9c7364 100644
--- a/api/org/apache/datafusion/class-use/UnnestOptions.html
+++ b/api/org/apache/datafusion/class-use/UnnestOptions.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.UnnestOptions (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.UnnestOptions (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, class: UnnestOptions">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/class-use/Volatility.html b/api/org/apache/datafusion/class-use/Volatility.html
index a2dc6e8..b78b7f0 100644
--- a/api/org/apache/datafusion/class-use/Volatility.html
+++ b/api/org/apache/datafusion/class-use/Volatility.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Enum Class org.apache.datafusion.Volatility (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Enum Class org.apache.datafusion.Volatility (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion, enum: Volatility">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/internal/JniBridge.html b/api/org/apache/datafusion/internal/JniBridge.html
index cbcd40b..22a0b10 100644
--- a/api/org/apache/datafusion/internal/JniBridge.html
+++ b/api/org/apache/datafusion/internal/JniBridge.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>JniBridge (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>JniBridge (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion.internal, class: JniBridge">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/internal/class-use/JniBridge.html b/api/org/apache/datafusion/internal/class-use/JniBridge.html
index 364e6fc..1e09b92 100644
--- a/api/org/apache/datafusion/internal/class-use/JniBridge.html
+++ b/api/org/apache/datafusion/internal/class-use/JniBridge.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.internal.JniBridge (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.internal.JniBridge (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion.internal, class: JniBridge">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/internal/package-summary.html b/api/org/apache/datafusion/internal/package-summary.html
index c745189..692b645 100644
--- a/api/org/apache/datafusion/internal/package-summary.html
+++ b/api/org/apache/datafusion/internal/package-summary.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>org.apache.datafusion.internal (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>org.apache.datafusion.internal (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion.internal">
 <meta name="generator" content="javadoc/PackageWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/internal/package-tree.html b/api/org/apache/datafusion/internal/package-tree.html
index 499c21c..5becb2b 100644
--- a/api/org/apache/datafusion/internal/package-tree.html
+++ b/api/org/apache/datafusion/internal/package-tree.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>org.apache.datafusion.internal Class Hierarchy (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>org.apache.datafusion.internal Class Hierarchy (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="tree: package: org.apache.datafusion.internal">
 <meta name="generator" content="javadoc/PackageTreeWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/internal/package-use.html b/api/org/apache/datafusion/internal/package-use.html
index 236ef63..0456390 100644
--- a/api/org/apache/datafusion/internal/package-use.html
+++ b/api/org/apache/datafusion/internal/package-use.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Package org.apache.datafusion.internal (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Package org.apache.datafusion.internal (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion.internal">
 <meta name="generator" content="javadoc/PackageUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/package-summary.html b/api/org/apache/datafusion/package-summary.html
index e84c102..20381d5 100644
--- a/api/org/apache/datafusion/package-summary.html
+++ b/api/org/apache/datafusion/package-summary.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>org.apache.datafusion (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>org.apache.datafusion (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion">
 <meta name="generator" content="javadoc/PackageWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
@@ -82,7 +82,7 @@ loadScripts(document, 'script');</script>
 </li>
 <li>
 <div id="class-summary">
-<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="class-summary-tab0" role="tab" aria-selected="true" aria-controls="class-summary.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="class-summary-tab1" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('clas [...]
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="class-summary-tab0" role="tab" aria-selected="true" aria-controls="class-summary.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="class-summary-tab1" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('clas [...]
 <div id="class-summary.tabpanel" role="tabpanel" aria-labelledby="class-summary-tab0">
 <div class="summary-table two-column-summary">
 <div class="table-header col-first">Class</div>
@@ -95,6 +95,14 @@ loadScripts(document, 'script');</script>
 <div class="col-last odd-row-color class-summary class-summary-tab2">
 <div class="block">Configuration knobs for Avro sources passed to <a href="SessionContext.html#registerAvro(java.lang.String,java.lang.String,org.apache.datafusion.AvroReadOptions)"><code>SessionContext.registerAvro(String, String, AvroReadOptions)</code></a> and <a href="SessionContext.html#readAvro(java.lang.String,org.apache.datafusion.AvroReadOptions)"><code>SessionContext.readAvro(String, AvroReadOptions)</code></a>.</div>
 </div>
+<div class="col-first even-row-color class-summary class-summary-tab2"><a href="CacheManagerOptions.html" title="class in org.apache.datafusion">CacheManagerOptions</a></div>
+<div class="col-last even-row-color class-summary class-summary-tab2">
+<div class="block">Configuration for DataFusion's built-in <code>CacheManager</code>.</div>
+</div>
+<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="CacheManagerOptions.Builder.html" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></div>
+<div class="col-last odd-row-color class-summary class-summary-tab2">
+<div class="block">Builder for <a href="CacheManagerOptions.html" title="class in org.apache.datafusion"><code>CacheManagerOptions</code></a>.</div>
+</div>
 <div class="col-first even-row-color class-summary class-summary-tab1"><a href="ColumnarValue.html" title="interface in org.apache.datafusion">ColumnarValue</a></div>
 <div class="col-last even-row-color class-summary class-summary-tab1">
 <div class="block">The value of a scalar UDF argument or result: either a per-row <a href="ColumnarValue.Array.html" title="class in org.apache.datafusion"><code>ColumnarValue.Array</code></a> of length <code>
@@ -108,22 +116,40 @@ loadScripts(document, 'script');</script>
 <div class="col-last even-row-color class-summary class-summary-tab4">
 <div class="block">Length-1 Arrow vector representing a single value broadcast across all rows.</div>
 </div>
-<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></div>
-<div class="col-last odd-row-color class-summary class-summary-tab2">
-<div class="block">Configuration knobs for CSV sources passed to <a href="SessionContext.html#registerCsv(java.lang.String,java.lang.String,org.apache.datafusion.CsvReadOptions)"><code>SessionContext.registerCsv(String, String, CsvReadOptions)</code></a> and <a href="SessionContext.html#readCsv(java.lang.String,org.apache.datafusion.CsvReadOptions)"><code>SessionContext.readCsv(String, CsvReadOptions)</code></a>.</div>
+<div class="col-first odd-row-color class-summary class-summary-tab5"><a href="ConfigurationException.html" title="class in org.apache.datafusion">ConfigurationException</a></div>
+<div class="col-last odd-row-color class-summary class-summary-tab5">
+<div class="block">Invalid or unrecognised DataFusion configuration option.</div>
 </div>
-<div class="col-first even-row-color class-summary class-summary-tab2"><a href="CsvWriteOptions.html" title="class in org.apache.datafusion">CsvWriteOptions</a></div>
+<div class="col-first even-row-color class-summary class-summary-tab2"><a href="CsvReadOptions.html" title="class in org.apache.datafusion">CsvReadOptions</a></div>
 <div class="col-last even-row-color class-summary class-summary-tab2">
-<div class="block">Configuration knobs for writing CSV, passed to <a href="DataFrame.html#writeCsv(java.lang.String,org.apache.datafusion.CsvWriteOptions)"><code>DataFrame.writeCsv(String, CsvWriteOptions)</code></a>.</div>
+<div class="block">Configuration knobs for CSV sources passed to <a href="SessionContext.html#registerCsv(java.lang.String,java.lang.String,org.apache.datafusion.CsvReadOptions)"><code>SessionContext.registerCsv(String, String, CsvReadOptions)</code></a> and <a href="SessionContext.html#readCsv(java.lang.String,org.apache.datafusion.CsvReadOptions)"><code>SessionContext.readCsv(String, CsvReadOptions)</code></a>.</div>
 </div>
-<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></div>
+<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="CsvWriteOptions.html" title="class in org.apache.datafusion">CsvWriteOptions</a></div>
 <div class="col-last odd-row-color class-summary class-summary-tab2">
+<div class="block">Configuration knobs for writing CSV, passed to <a href="DataFrame.html#writeCsv(java.lang.String,org.apache.datafusion.CsvWriteOptions)"><code>DataFrame.writeCsv(String, CsvWriteOptions)</code></a>.</div>
+</div>
+<div class="col-first even-row-color class-summary class-summary-tab2"><a href="DataFrame.html" title="class in org.apache.datafusion">DataFrame</a></div>
+<div class="col-last even-row-color class-summary class-summary-tab2">
 <div class="block">A lazy representation of a query plan, mirroring the Rust DataFusion <code>DataFrame</code>.</div>
 </div>
-<div class="col-first even-row-color class-summary class-summary-tab3"><a href="FileCompressionType.html" title="enum class in org.apache.datafusion">FileCompressionType</a></div>
-<div class="col-last even-row-color class-summary class-summary-tab3">
+<div class="col-first odd-row-color class-summary class-summary-tab5"><a href="DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a></div>
+<div class="col-last odd-row-color class-summary class-summary-tab5">
+<div class="block">Base unchecked exception for every error surfaced from the native DataFusion side.</div>
+</div>
+<div class="col-first even-row-color class-summary class-summary-tab5"><a href="ExecutionException.html" title="class in org.apache.datafusion">ExecutionException</a></div>
+<div class="col-last even-row-color class-summary class-summary-tab5">
+<div class="block">Runtime execution failure: a UDF threw, a join task panicked, an external (non-DataFusion) error
+ propagated up, or an FFI-level failure surfaced.</div>
+</div>
+<div class="col-first odd-row-color class-summary class-summary-tab3"><a href="FileCompressionType.html" title="enum class in org.apache.datafusion">FileCompressionType</a></div>
+<div class="col-last odd-row-color class-summary class-summary-tab3">
 <div class="block">Compression of a file-format source.</div>
 </div>
+<div class="col-first even-row-color class-summary class-summary-tab5"><a href="IoException.html" title="class in org.apache.datafusion">IoException</a></div>
+<div class="col-last even-row-color class-summary class-summary-tab5">
+<div class="block">IO-shaped failure: a local filesystem read failed, an object store request failed, or a parquet /
+ arrow / avro decoder reported a malformed file.</div>
+</div>
 <div class="col-first odd-row-color class-summary class-summary-tab3"><a href="JoinType.html" title="enum class in org.apache.datafusion">JoinType</a></div>
 <div class="col-last odd-row-color class-summary class-summary-tab3">
 <div class="block">Join algorithm requested for <a href="DataFrame.html#join(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String%5B%5D,java.lang.String%5B%5D)"><code>DataFrame.join(org.apache.datafusion.DataFrame, org.apache.datafusion.JoinType, java.lang.String[], java.lang.String[])</code></a> / <a href="DataFrame.html#joinOn(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String...)"><code>DataFrame.joinOn(org.apache.datafusion.Data [...]
@@ -132,12 +158,22 @@ loadScripts(document, 'script');</script>
 <div class="col-last even-row-color class-summary class-summary-tab2">
 <div class="block">Configuration knobs for writing JSON, passed to <a href="DataFrame.html#writeJson(java.lang.String,org.apache.datafusion.JsonWriteOptions)"><code>DataFrame.writeJson(String, JsonWriteOptions)</code></a>.</div>
 </div>
-<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="NativeLibraryLoader.html" title="class in org.apache.datafusion">NativeLibraryLoader</a></div>
-<div class="col-last odd-row-color class-summary class-summary-tab2">&nbsp;</div>
-<div class="col-first even-row-color class-summary class-summary-tab2"><a href="NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></div>
+<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="MemoryUsage.html" title="class in org.apache.datafusion">MemoryUsage</a></div>
+<div class="col-last odd-row-color class-summary class-summary-tab2">
+<div class="block">Snapshot of session-wide memory usage from <a href="SessionContext.html#memoryUsage()"><code>SessionContext.memoryUsage()</code></a>.</div>
+</div>
+<div class="col-first even-row-color class-summary class-summary-tab2"><a href="NativeLibraryLoader.html" title="class in org.apache.datafusion">NativeLibraryLoader</a></div>
 <div class="col-last even-row-color class-summary class-summary-tab2">
+<div class="block">Loads the <code>datafusion_jni</code> native library on demand.</div>
+</div>
+<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="NdJsonReadOptions.html" title="class in org.apache.datafusion">NdJsonReadOptions</a></div>
+<div class="col-last odd-row-color class-summary class-summary-tab2">
 <div class="block">Configuration knobs for newline-delimited JSON sources passed to <a href="SessionContext.html#registerJson(java.lang.String,java.lang.String,org.apache.datafusion.NdJsonReadOptions)"><code>SessionContext.registerJson(String, String, NdJsonReadOptions)</code></a> and <a href="SessionContext.html#readJson(java.lang.String,org.apache.datafusion.NdJsonReadOptions)"><code>SessionContext.readJson(String, NdJsonReadOptions)</code></a>.</div>
 </div>
+<div class="col-first even-row-color class-summary class-summary-tab5"><a href="NotImplementedException.html" title="class in org.apache.datafusion">NotImplementedException</a></div>
+<div class="col-last even-row-color class-summary class-summary-tab5">
+<div class="block">The requested feature is recognised by DataFusion but not implemented yet.</div>
+</div>
 <div class="col-first odd-row-color class-summary class-summary-tab2"><a href="ObjectStoreOptions.html" title="class in org.apache.datafusion">ObjectStoreOptions</a></div>
 <div class="col-last odd-row-color class-summary class-summary-tab2">
 <div class="block">Description of an <code>object_store::ObjectStore</code> backend to register on a <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a>'s <code>RuntimeEnv</code>.</div>
@@ -168,33 +204,51 @@ loadScripts(document, 'script');</script>
 <div class="col-last odd-row-color class-summary class-summary-tab2">
 <div class="block">Configuration knobs for writing parquet, passed to <a href="DataFrame.html#writeParquet(java.lang.String,org.apache.datafusion.ParquetWriteOptions)"><code>DataFrame.writeParquet(String, ParquetWriteOptions)</code></a>.</div>
 </div>
-<div class="col-first even-row-color class-summary class-summary-tab1"><a href="ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a></div>
-<div class="col-last even-row-color class-summary class-summary-tab1">
+<div class="col-first even-row-color class-summary class-summary-tab5"><a href="PlanException.html" title="class in org.apache.datafusion">PlanException</a></div>
+<div class="col-last even-row-color class-summary class-summary-tab5">
+<div class="block">SQL parsing, logical planning, or schema-resolution failure.</div>
+</div>
+<div class="col-first odd-row-color class-summary class-summary-tab5"><a href="ResourcesExhaustedException.html" title="class in org.apache.datafusion">ResourcesExhaustedException</a></div>
+<div class="col-last odd-row-color class-summary class-summary-tab5">
+<div class="block">The DataFusion runtime exhausted a configured resource budget — typically the memory pool, but
+ applies to any guard upstream surfaces as <code>DataFusionError::ResourcesExhausted</code>.</div>
+</div>
+<div class="col-first even-row-color class-summary class-summary-tab2"><a href="RuntimeStats.html" title="class in org.apache.datafusion">RuntimeStats</a></div>
+<div class="col-last even-row-color class-summary class-summary-tab2">
+<div class="block">Snapshot of the underlying Tokio runtime from <a href="SessionContext.html#runtimeStats()"><code>SessionContext.runtimeStats()</code></a>.</div>
+</div>
+<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="ScalarFunction.html" title="interface in org.apache.datafusion">ScalarFunction</a></div>
+<div class="col-last odd-row-color class-summary class-summary-tab1">
 <div class="block">A Java-implemented scalar SQL function.</div>
 </div>
-<div class="col-first odd-row-color class-summary class-summary-tab4"><a href="ScalarFunctionArgs.html" title="class in org.apache.datafusion">ScalarFunctionArgs</a></div>
-<div class="col-last odd-row-color class-summary class-summary-tab4">
+<div class="col-first even-row-color class-summary class-summary-tab4"><a href="ScalarFunctionArgs.html" title="class in org.apache.datafusion">ScalarFunctionArgs</a></div>
+<div class="col-last even-row-color class-summary class-summary-tab4">
 <div class="block">Bundle of inputs passed to <a href="ScalarFunction.html#evaluate(org.apache.arrow.memory.BufferAllocator,org.apache.datafusion.ScalarFunctionArgs)"><code>ScalarFunction.evaluate(org.apache.arrow.memory.BufferAllocator, org.apache.datafusion.ScalarFunctionArgs)</code></a>: the per-arg <a href="ColumnarValue.html" title="interface in org.apache.datafusion"><code>ColumnarValue</code></a>s
  (in declared order) and the batch row count DataFusion is driving.</div>
 </div>
-<div class="col-first even-row-color class-summary class-summary-tab2"><a href="ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a></div>
-<div class="col-last even-row-color class-summary class-summary-tab2">
+<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="ScalarUdf.html" title="class in org.apache.datafusion">ScalarUdf</a></div>
+<div class="col-last odd-row-color class-summary class-summary-tab2">
 <div class="block">A scalar UDF registration handle: pairs a <a href="ScalarFunction.html" title="interface in org.apache.datafusion"><code>ScalarFunction</code></a> implementation with the metadata
  DataFusion needs to dispatch SQL calls to it.</div>
 </div>
-<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></div>
-<div class="col-last odd-row-color class-summary class-summary-tab2">
+<div class="col-first even-row-color class-summary class-summary-tab2"><a href="SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></div>
+<div class="col-last even-row-color class-summary class-summary-tab2">
 <div class="block">A DataFusion session context.</div>
 </div>
-<div class="col-first even-row-color class-summary class-summary-tab2"><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></div>
-<div class="col-last even-row-color class-summary class-summary-tab2">
+<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="SessionContextBuilder.html" title="class in org.apache.datafusion">SessionContextBuilder</a></div>
+<div class="col-last odd-row-color class-summary class-summary-tab2">
 <div class="block">Builder for a configured <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a>.</div>
 </div>
-<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="SimpleTableProvider.html" title="class in org.apache.datafusion">SimpleTableProvider</a></div>
-<div class="col-last odd-row-color class-summary class-summary-tab2">
+<div class="col-first even-row-color class-summary class-summary-tab2"><a href="SimpleTableProvider.html" title="class in org.apache.datafusion">SimpleTableProvider</a></div>
+<div class="col-last even-row-color class-summary class-summary-tab2">
 <div class="block">A <a href="TableProvider.html" title="interface in org.apache.datafusion"><code>TableProvider</code></a> that pairs a fixed <code>Schema</code> with a function that opens a fresh
  <code>ArrowReader</code> for each scan.</div>
 </div>
+<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="SortExpr.html" title="class in org.apache.datafusion">SortExpr</a></div>
+<div class="col-last odd-row-color class-summary class-summary-tab2">
+<div class="block">A single sort key passed to <a href="DataFrame.html#sort(org.apache.datafusion.SortExpr...)"><code>DataFrame.sort(SortExpr...)</code></a>, mirroring DataFusion's <code>
+ expr::Sort{ expr, asc, nulls_first }</code>.</div>
+</div>
 <div class="col-first even-row-color class-summary class-summary-tab1"><a href="TableProvider.html" title="interface in org.apache.datafusion">TableProvider</a></div>
 <div class="col-last even-row-color class-summary class-summary-tab1">
 <div class="block">A Java-implemented table that can be registered with a <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a> via <a href="SessionContext.html#registerTable(java.lang.String,org.apache.datafusion.TableProvider)"><code>SessionContext.registerTable(String, TableProvider)</code></a>.</div>
diff --git a/api/org/apache/datafusion/package-tree.html b/api/org/apache/datafusion/package-tree.html
index 762f2e2..82a6f68 100644
--- a/api/org/apache/datafusion/package-tree.html
+++ b/api/org/apache/datafusion/package-tree.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>org.apache.datafusion Class Hierarchy (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>org.apache.datafusion Class Hierarchy (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="tree: package: org.apache.datafusion">
 <meta name="generator" content="javadoc/PackageTreeWriter">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
@@ -62,10 +62,13 @@ loadScripts(document, 'script');</script>
 <ul>
 <li class="circle">org.apache.datafusion.<a href="ArrowReadOptions.html" class="type-name-link" title="class in org.apache.datafusion">ArrowReadOptions</a></li>
 <li class="circle">org.apache.datafusion.<a href="AvroReadOptions.html" class="type-name-link" title="class in org.apache.datafusion">AvroReadOptions</a></li>
+<li class="circle">org.apache.datafusion.<a href="CacheManagerOptions.html" class="type-name-link" title="class in org.apache.datafusion">CacheManagerOptions</a></li>
+<li class="circle">org.apache.datafusion.<a href="CacheManagerOptions.Builder.html" class="type-name-link" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></li>
 <li class="circle">org.apache.datafusion.<a href="CsvReadOptions.html" class="type-name-link" title="class in org.apache.datafusion">CsvReadOptions</a></li>
 <li class="circle">org.apache.datafusion.<a href="CsvWriteOptions.html" class="type-name-link" title="class in org.apache.datafusion">CsvWriteOptions</a></li>
 <li class="circle">org.apache.datafusion.<a href="DataFrame.html" class="type-name-link" title="class in org.apache.datafusion">DataFrame</a> (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">AutoCloseable</a>)</li>
 <li class="circle">org.apache.datafusion.<a href="JsonWriteOptions.html" class="type-name-link" title="class in org.apache.datafusion">JsonWriteOptions</a></li>
+<li class="circle">org.apache.datafusion.<a href="MemoryUsage.html" class="type-name-link" title="class in org.apache.datafusion">MemoryUsage</a></li>
 <li class="circle">org.apache.datafusion.<a href="NativeLibraryLoader.html" class="type-name-link" title="class in org.apache.datafusion">NativeLibraryLoader</a></li>
 <li class="circle">org.apache.datafusion.<a href="NdJsonReadOptions.html" class="type-name-link" title="class in org.apache.datafusion">NdJsonReadOptions</a></li>
 <li class="circle">org.apache.datafusion.<a href="ObjectStoreOptions.html" class="type-name-link" title="class in org.apache.datafusion">ObjectStoreOptions</a>
@@ -87,10 +90,34 @@ loadScripts(document, 'script');</script>
 <li class="circle">org.apache.datafusion.<a href="ScalarFunctionArgs.html" class="type-name-link" title="class in org.apache.datafusion">ScalarFunctionArgs</a></li>
 </ul>
 </li>
+<li class="circle">org.apache.datafusion.<a href="RuntimeStats.html" class="type-name-link" title="class in org.apache.datafusion">RuntimeStats</a></li>
 <li class="circle">org.apache.datafusion.<a href="ScalarUdf.html" class="type-name-link" title="class in org.apache.datafusion">ScalarUdf</a></li>
 <li class="circle">org.apache.datafusion.<a href="SessionContext.html" class="type-name-link" title="class in org.apache.datafusion">SessionContext</a> (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">AutoCloseable</a>)</li>
 <li class="circle">org.apache.datafusion.<a href="SessionContextBuilder.html" class="type-name-link" title="class in org.apache.datafusion">SessionContextBuilder</a></li>
 <li class="circle">org.apache.datafusion.<a href="SimpleTableProvider.html" class="type-name-link" title="class in org.apache.datafusion">SimpleTableProvider</a> (implements org.apache.datafusion.<a href="TableProvider.html" title="interface in org.apache.datafusion">TableProvider</a>)</li>
+<li class="circle">org.apache.datafusion.<a href="SortExpr.html" class="type-name-link" title="class in org.apache.datafusion">SortExpr</a></li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" class="type-name-link external-link" title="class or interface in java.lang">Throwable</a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" class="type-name-link external-link" title="class or interface in java.lang">Exception</a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" class="type-name-link external-link" title="class or interface in java.lang">RuntimeException</a>
+<ul>
+<li class="circle">org.apache.datafusion.<a href="DataFusionException.html" class="type-name-link" title="class in org.apache.datafusion">DataFusionException</a>
+<ul>
+<li class="circle">org.apache.datafusion.<a href="ConfigurationException.html" class="type-name-link" title="class in org.apache.datafusion">ConfigurationException</a></li>
+<li class="circle">org.apache.datafusion.<a href="ExecutionException.html" class="type-name-link" title="class in org.apache.datafusion">ExecutionException</a></li>
+<li class="circle">org.apache.datafusion.<a href="IoException.html" class="type-name-link" title="class in org.apache.datafusion">IoException</a></li>
+<li class="circle">org.apache.datafusion.<a href="NotImplementedException.html" class="type-name-link" title="class in org.apache.datafusion">NotImplementedException</a></li>
+<li class="circle">org.apache.datafusion.<a href="PlanException.html" class="type-name-link" title="class in org.apache.datafusion">PlanException</a></li>
+<li class="circle">org.apache.datafusion.<a href="ResourcesExhaustedException.html" class="type-name-link" title="class in org.apache.datafusion">ResourcesExhaustedException</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
 <li class="circle">org.apache.datafusion.<a href="UnnestOptions.html" class="type-name-link" title="class in org.apache.datafusion">UnnestOptions</a></li>
 </ul>
 </li>
diff --git a/api/org/apache/datafusion/package-use.html b/api/org/apache/datafusion/package-use.html
index 962d7e9..b12a987 100644
--- a/api/org/apache/datafusion/package-use.html
+++ b/api/org/apache/datafusion/package-use.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Package org.apache.datafusion (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Package org.apache.datafusion (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion">
 <meta name="generator" content="javadoc/PackageUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
@@ -76,6 +76,14 @@ loadScripts(document, 'script');</script>
 <div class="col-last odd-row-color">
 <div class="block">Configuration knobs for Avro sources passed to <a href="SessionContext.html#registerAvro(java.lang.String,java.lang.String,org.apache.datafusion.AvroReadOptions)"><code>SessionContext.registerAvro(String, String, AvroReadOptions)</code></a> and <a href="SessionContext.html#readAvro(java.lang.String,org.apache.datafusion.AvroReadOptions)"><code>SessionContext.readAvro(String, AvroReadOptions)</code></a>.</div>
 </div>
+<div class="col-first even-row-color"><a href="class-use/CacheManagerOptions.html#org.apache.datafusion">CacheManagerOptions</a></div>
+<div class="col-last even-row-color">
+<div class="block">Configuration for DataFusion's built-in <code>CacheManager</code>.</div>
+</div>
+<div class="col-first odd-row-color"><a href="class-use/CacheManagerOptions.Builder.html#org.apache.datafusion">CacheManagerOptions.Builder</a></div>
+<div class="col-last odd-row-color">
+<div class="block">Builder for <a href="CacheManagerOptions.html" title="class in org.apache.datafusion"><code>CacheManagerOptions</code></a>.</div>
+</div>
 <div class="col-first even-row-color"><a href="class-use/ColumnarValue.html#org.apache.datafusion">ColumnarValue</a></div>
 <div class="col-last even-row-color">
 <div class="block">The value of a scalar UDF argument or result: either a per-row <a href="ColumnarValue.Array.html" title="class in org.apache.datafusion"><code>ColumnarValue.Array</code></a> of length <code>
@@ -93,18 +101,26 @@ loadScripts(document, 'script');</script>
 <div class="col-last odd-row-color">
 <div class="block">A lazy representation of a query plan, mirroring the Rust DataFusion <code>DataFrame</code>.</div>
 </div>
-<div class="col-first even-row-color"><a href="class-use/FileCompressionType.html#org.apache.datafusion">FileCompressionType</a></div>
+<div class="col-first even-row-color"><a href="class-use/DataFusionException.html#org.apache.datafusion">DataFusionException</a></div>
 <div class="col-last even-row-color">
-<div class="block">Compression of a file-format source.</div>
+<div class="block">Base unchecked exception for every error surfaced from the native DataFusion side.</div>
 </div>
-<div class="col-first odd-row-color"><a href="class-use/JoinType.html#org.apache.datafusion">JoinType</a></div>
+<div class="col-first odd-row-color"><a href="class-use/FileCompressionType.html#org.apache.datafusion">FileCompressionType</a></div>
 <div class="col-last odd-row-color">
-<div class="block">Join algorithm requested for <a href="DataFrame.html#join(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String%5B%5D,java.lang.String%5B%5D)"><code>DataFrame.join(org.apache.datafusion.DataFrame, org.apache.datafusion.JoinType, java.lang.String[], java.lang.String[])</code></a> / <a href="DataFrame.html#joinOn(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String...)"><code>DataFrame.joinOn(org.apache.datafusion.Data [...]
+<div class="block">Compression of a file-format source.</div>
 </div>
-<div class="col-first even-row-color"><a href="class-use/JsonWriteOptions.html#org.apache.datafusion">JsonWriteOptions</a></div>
+<div class="col-first even-row-color"><a href="class-use/JoinType.html#org.apache.datafusion">JoinType</a></div>
 <div class="col-last even-row-color">
+<div class="block">Join algorithm requested for <a href="DataFrame.html#join(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String%5B%5D,java.lang.String%5B%5D)"><code>DataFrame.join(org.apache.datafusion.DataFrame, org.apache.datafusion.JoinType, java.lang.String[], java.lang.String[])</code></a> / <a href="DataFrame.html#joinOn(org.apache.datafusion.DataFrame,org.apache.datafusion.JoinType,java.lang.String...)"><code>DataFrame.joinOn(org.apache.datafusion.Data [...]
+</div>
+<div class="col-first odd-row-color"><a href="class-use/JsonWriteOptions.html#org.apache.datafusion">JsonWriteOptions</a></div>
+<div class="col-last odd-row-color">
 <div class="block">Configuration knobs for writing JSON, passed to <a href="DataFrame.html#writeJson(java.lang.String,org.apache.datafusion.JsonWriteOptions)"><code>DataFrame.writeJson(String, JsonWriteOptions)</code></a>.</div>
 </div>
+<div class="col-first even-row-color"><a href="class-use/MemoryUsage.html#org.apache.datafusion">MemoryUsage</a></div>
+<div class="col-last even-row-color">
+<div class="block">Snapshot of session-wide memory usage from <a href="SessionContext.html#memoryUsage()"><code>SessionContext.memoryUsage()</code></a>.</div>
+</div>
 <div class="col-first odd-row-color"><a href="class-use/NdJsonReadOptions.html#org.apache.datafusion">NdJsonReadOptions</a></div>
 <div class="col-last odd-row-color">
 <div class="block">Configuration knobs for newline-delimited JSON sources passed to <a href="SessionContext.html#registerJson(java.lang.String,java.lang.String,org.apache.datafusion.NdJsonReadOptions)"><code>SessionContext.registerJson(String, String, NdJsonReadOptions)</code></a> and <a href="SessionContext.html#readJson(java.lang.String,org.apache.datafusion.NdJsonReadOptions)"><code>SessionContext.readJson(String, NdJsonReadOptions)</code></a>.</div>
@@ -139,28 +155,37 @@ loadScripts(document, 'script');</script>
 <div class="col-last even-row-color">
 <div class="block">Configuration knobs for writing parquet, passed to <a href="DataFrame.html#writeParquet(java.lang.String,org.apache.datafusion.ParquetWriteOptions)"><code>DataFrame.writeParquet(String, ParquetWriteOptions)</code></a>.</div>
 </div>
-<div class="col-first odd-row-color"><a href="class-use/ScalarFunction.html#org.apache.datafusion">ScalarFunction</a></div>
+<div class="col-first odd-row-color"><a href="class-use/RuntimeStats.html#org.apache.datafusion">RuntimeStats</a></div>
 <div class="col-last odd-row-color">
-<div class="block">A Java-implemented scalar SQL function.</div>
+<div class="block">Snapshot of the underlying Tokio runtime from <a href="SessionContext.html#runtimeStats()"><code>SessionContext.runtimeStats()</code></a>.</div>
 </div>
-<div class="col-first even-row-color"><a href="class-use/ScalarFunctionArgs.html#org.apache.datafusion">ScalarFunctionArgs</a></div>
+<div class="col-first even-row-color"><a href="class-use/ScalarFunction.html#org.apache.datafusion">ScalarFunction</a></div>
 <div class="col-last even-row-color">
+<div class="block">A Java-implemented scalar SQL function.</div>
+</div>
+<div class="col-first odd-row-color"><a href="class-use/ScalarFunctionArgs.html#org.apache.datafusion">ScalarFunctionArgs</a></div>
+<div class="col-last odd-row-color">
 <div class="block">Bundle of inputs passed to <a href="ScalarFunction.html#evaluate(org.apache.arrow.memory.BufferAllocator,org.apache.datafusion.ScalarFunctionArgs)"><code>ScalarFunction.evaluate(org.apache.arrow.memory.BufferAllocator, org.apache.datafusion.ScalarFunctionArgs)</code></a>: the per-arg <a href="ColumnarValue.html" title="interface in org.apache.datafusion"><code>ColumnarValue</code></a>s
  (in declared order) and the batch row count DataFusion is driving.</div>
 </div>
-<div class="col-first odd-row-color"><a href="class-use/ScalarUdf.html#org.apache.datafusion">ScalarUdf</a></div>
-<div class="col-last odd-row-color">
+<div class="col-first even-row-color"><a href="class-use/ScalarUdf.html#org.apache.datafusion">ScalarUdf</a></div>
+<div class="col-last even-row-color">
 <div class="block">A scalar UDF registration handle: pairs a <a href="ScalarFunction.html" title="interface in org.apache.datafusion"><code>ScalarFunction</code></a> implementation with the metadata
  DataFusion needs to dispatch SQL calls to it.</div>
 </div>
-<div class="col-first even-row-color"><a href="class-use/SessionContext.html#org.apache.datafusion">SessionContext</a></div>
-<div class="col-last even-row-color">
+<div class="col-first odd-row-color"><a href="class-use/SessionContext.html#org.apache.datafusion">SessionContext</a></div>
+<div class="col-last odd-row-color">
 <div class="block">A DataFusion session context.</div>
 </div>
-<div class="col-first odd-row-color"><a href="class-use/SessionContextBuilder.html#org.apache.datafusion">SessionContextBuilder</a></div>
-<div class="col-last odd-row-color">
+<div class="col-first even-row-color"><a href="class-use/SessionContextBuilder.html#org.apache.datafusion">SessionContextBuilder</a></div>
+<div class="col-last even-row-color">
 <div class="block">Builder for a configured <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a>.</div>
 </div>
+<div class="col-first odd-row-color"><a href="class-use/SortExpr.html#org.apache.datafusion">SortExpr</a></div>
+<div class="col-last odd-row-color">
+<div class="block">A single sort key passed to <a href="DataFrame.html#sort(org.apache.datafusion.SortExpr...)"><code>DataFrame.sort(SortExpr...)</code></a>, mirroring DataFusion's <code>
+ expr::Sort{ expr, asc, nulls_first }</code>.</div>
+</div>
 <div class="col-first even-row-color"><a href="class-use/TableProvider.html#org.apache.datafusion">TableProvider</a></div>
 <div class="col-last even-row-color">
 <div class="block">A Java-implemented table that can be registered with a <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a> via <a href="SessionContext.html#registerTable(java.lang.String,org.apache.datafusion.TableProvider)"><code>SessionContext.registerTable(String, TableProvider)</code></a>.</div>
diff --git a/api/org/apache/datafusion/proto/SchemaConverter.html b/api/org/apache/datafusion/proto/SchemaConverter.html
index 3462c68..73363c6 100644
--- a/api/org/apache/datafusion/proto/SchemaConverter.html
+++ b/api/org/apache/datafusion/proto/SchemaConverter.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>SchemaConverter (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>SchemaConverter (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion.proto, class: SchemaConverter">
 <meta name="generator" content="javadoc/ClassWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/proto/class-use/SchemaConverter.html b/api/org/apache/datafusion/proto/class-use/SchemaConverter.html
index 73ae093..2b14907 100644
--- a/api/org/apache/datafusion/proto/class-use/SchemaConverter.html
+++ b/api/org/apache/datafusion/proto/class-use/SchemaConverter.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Class org.apache.datafusion.proto.SchemaConverter (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Class org.apache.datafusion.proto.SchemaConverter (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion.proto, class: SchemaConverter">
 <meta name="generator" content="javadoc/ClassUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/proto/package-summary.html b/api/org/apache/datafusion/proto/package-summary.html
index 0748775..7cb020c 100644
--- a/api/org/apache/datafusion/proto/package-summary.html
+++ b/api/org/apache/datafusion/proto/package-summary.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>org.apache.datafusion.proto (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>org.apache.datafusion.proto (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="declaration: package: org.apache.datafusion.proto">
 <meta name="generator" content="javadoc/PackageWriterImpl">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/proto/package-tree.html b/api/org/apache/datafusion/proto/package-tree.html
index 82354ad..a032439 100644
--- a/api/org/apache/datafusion/proto/package-tree.html
+++ b/api/org/apache/datafusion/proto/package-tree.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>org.apache.datafusion.proto Class Hierarchy (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>org.apache.datafusion.proto Class Hierarchy (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="tree: package: org.apache.datafusion.proto">
 <meta name="generator" content="javadoc/PackageTreeWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/org/apache/datafusion/proto/package-use.html b/api/org/apache/datafusion/proto/package-use.html
index feceab6..51c0bd0 100644
--- a/api/org/apache/datafusion/proto/package-use.html
+++ b/api/org/apache/datafusion/proto/package-use.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Uses of Package org.apache.datafusion.proto (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Uses of Package org.apache.datafusion.proto (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="use: package: org.apache.datafusion.proto">
 <meta name="generator" content="javadoc/PackageUseWriter">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
diff --git a/api/overview-summary.html b/api/overview-summary.html
index 9fc4a38..042f329 100644
--- a/api/overview-summary.html
+++ b/api/overview-summary.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Apache DataFusion Java 0.1.0-SNAPSHOT</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Apache DataFusion Java 0.2.0-SNAPSHOT</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="index redirect">
 <meta name="generator" content="javadoc/IndexRedirectWriter">
 <link rel="canonical" href="index.html">
diff --git a/api/overview-tree.html b/api/overview-tree.html
index 6bf07b0..388e912 100644
--- a/api/overview-tree.html
+++ b/api/overview-tree.html
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML>
 <html lang>
 <head>
-<!-- Generated by javadoc (17) on Fri May 22 13:26:22 UTC 2026 -->
-<title>Class Hierarchy (Apache DataFusion Java 0.1.0-SNAPSHOT)</title>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Class Hierarchy (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2026-05-22">
+<meta name="dc.created" content="2026-05-28">
 <meta name="description" content="class tree">
 <meta name="generator" content="javadoc/TreeWriter">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
@@ -64,11 +64,14 @@ loadScripts(document, 'script');</script>
 <ul>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/ArrowReadOptions.html" class="type-name-link" title="class in org.apache.datafusion">ArrowReadOptions</a></li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/AvroReadOptions.html" class="type-name-link" title="class in org.apache.datafusion">AvroReadOptions</a></li>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/CacheManagerOptions.html" class="type-name-link" title="class in org.apache.datafusion">CacheManagerOptions</a></li>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/CacheManagerOptions.Builder.html" class="type-name-link" title="class in org.apache.datafusion">CacheManagerOptions.Builder</a></li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/CsvReadOptions.html" class="type-name-link" title="class in org.apache.datafusion">CsvReadOptions</a></li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/CsvWriteOptions.html" class="type-name-link" title="class in org.apache.datafusion">CsvWriteOptions</a></li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/DataFrame.html" class="type-name-link" title="class in org.apache.datafusion">DataFrame</a> (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">AutoCloseable</a>)</li>
 <li class="circle">org.apache.datafusion.internal.<a href="org/apache/datafusion/internal/JniBridge.html" class="type-name-link" title="class in org.apache.datafusion.internal">JniBridge</a></li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/JsonWriteOptions.html" class="type-name-link" title="class in org.apache.datafusion">JsonWriteOptions</a></li>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/MemoryUsage.html" class="type-name-link" title="class in org.apache.datafusion">MemoryUsage</a></li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/NativeLibraryLoader.html" class="type-name-link" title="class in org.apache.datafusion">NativeLibraryLoader</a></li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/NdJsonReadOptions.html" class="type-name-link" title="class in org.apache.datafusion">NdJsonReadOptions</a></li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/ObjectStoreOptions.html" class="type-name-link" title="class in org.apache.datafusion">ObjectStoreOptions</a>
@@ -90,11 +93,35 @@ loadScripts(document, 'script');</script>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/ScalarFunctionArgs.html" class="type-name-link" title="class in org.apache.datafusion">ScalarFunctionArgs</a></li>
 </ul>
 </li>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/RuntimeStats.html" class="type-name-link" title="class in org.apache.datafusion">RuntimeStats</a></li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/ScalarUdf.html" class="type-name-link" title="class in org.apache.datafusion">ScalarUdf</a></li>
 <li class="circle">org.apache.datafusion.proto.<a href="org/apache/datafusion/proto/SchemaConverter.html" class="type-name-link" title="class in org.apache.datafusion.proto">SchemaConverter</a></li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/SessionContext.html" class="type-name-link" title="class in org.apache.datafusion">SessionContext</a> (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">AutoCloseable</a>)</li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/SessionContextBuilder.html" class="type-name-link" title="class in org.apache.datafusion">SessionContextBuilder</a></li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/SimpleTableProvider.html" class="type-name-link" title="class in org.apache.datafusion">SimpleTableProvider</a> (implements org.apache.datafusion.<a href="org/apache/datafusion/TableProvider.html" title="interface in org.apache.datafusion">TableProvider</a>)</li>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/SortExpr.html" class="type-name-link" title="class in org.apache.datafusion">SortExpr</a></li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" class="type-name-link external-link" title="class or interface in java.lang">Throwable</a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" class="type-name-link external-link" title="class or interface in java.lang">Exception</a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" class="type-name-link external-link" title="class or interface in java.lang">RuntimeException</a>
+<ul>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/DataFusionException.html" class="type-name-link" title="class in org.apache.datafusion">DataFusionException</a>
+<ul>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/ConfigurationException.html" class="type-name-link" title="class in org.apache.datafusion">ConfigurationException</a></li>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/ExecutionException.html" class="type-name-link" title="class in org.apache.datafusion">ExecutionException</a></li>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/IoException.html" class="type-name-link" title="class in org.apache.datafusion">IoException</a></li>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/NotImplementedException.html" class="type-name-link" title="class in org.apache.datafusion">NotImplementedException</a></li>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/PlanException.html" class="type-name-link" title="class in org.apache.datafusion">PlanException</a></li>
+<li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/ResourcesExhaustedException.html" class="type-name-link" title="class in org.apache.datafusion">ResourcesExhaustedException</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
 <li class="circle">org.apache.datafusion.<a href="org/apache/datafusion/UnnestOptions.html" class="type-name-link" title="class in org.apache.datafusion">UnnestOptions</a></li>
 </ul>
 </li>
diff --git a/api/serialized-form.html b/api/serialized-form.html
new file mode 100644
index 0000000..a39c924
--- /dev/null
+++ b/api/serialized-form.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML>
+<html lang>
+<head>
+<!-- Generated by javadoc (17) on Thu May 28 15:04:41 UTC 2026 -->
+<title>Serialized Form (Apache DataFusion Java 0.2.0-SNAPSHOT)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2026-05-28">
+<meta name="description" content="serialized forms">
+<meta name="generator" content="javadoc/SerializedFormWriterImpl">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="script-dir/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
+</head>
+<body class="serialized-form-page">
+<script type="text/javascript">var pathtoroot = "./";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<div class="flex-box">
+<header role="banner" class="flex-header">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html#serialized-form">Help</a></li>
+</ul>
+</div>
+<div class="sub-nav">
+<div class="nav-list-search"><label for="search-input">SEARCH:</label>
+<input type="text" id="search-input" value="search" disabled="disabled">
+<input type="reset" id="reset-button" value="reset" disabled="disabled">
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="flex-content">
+<main role="main">
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<ul class="block-list">
+<li>
+<section class="serialized-package-container">
+<h2 title="Package">Package&nbsp;<a href="org/apache/datafusion/package-summary.html">org.apache.datafusion</a></h2>
+<ul class="block-list">
+<li>
+<section class="serialized-class-details" id="org.apache.datafusion.ConfigurationException">
+<h3>Exception&nbsp;<a href="org/apache/datafusion/ConfigurationException.html" title="class in org.apache.datafusion">org.apache.datafusion.ConfigurationException</a></h3>
+<div class="type-signature">class ConfigurationException extends <a href="org/apache/datafusion/DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a> implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></div>
+<dl class="name-value">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="serialized-class-details" id="org.apache.datafusion.DataFusionException">
+<h3>Exception&nbsp;<a href="org/apache/datafusion/DataFusionException.html" title="class in org.apache.datafusion">org.apache.datafusion.DataFusionException</a></h3>
+<div class="type-signature">class DataFusionException extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link">RuntimeException</a> implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></div>
+<dl class="name-value">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="serialized-class-details" id="org.apache.datafusion.ExecutionException">
+<h3>Exception&nbsp;<a href="org/apache/datafusion/ExecutionException.html" title="class in org.apache.datafusion">org.apache.datafusion.ExecutionException</a></h3>
+<div class="type-signature">class ExecutionException extends <a href="org/apache/datafusion/DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a> implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></div>
+<dl class="name-value">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="serialized-class-details" id="org.apache.datafusion.IoException">
+<h3>Exception&nbsp;<a href="org/apache/datafusion/IoException.html" title="class in org.apache.datafusion">org.apache.datafusion.IoException</a></h3>
+<div class="type-signature">class IoException extends <a href="org/apache/datafusion/DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a> implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></div>
+<dl class="name-value">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="serialized-class-details" id="org.apache.datafusion.NotImplementedException">
+<h3>Exception&nbsp;<a href="org/apache/datafusion/NotImplementedException.html" title="class in org.apache.datafusion">org.apache.datafusion.NotImplementedException</a></h3>
+<div class="type-signature">class NotImplementedException extends <a href="org/apache/datafusion/DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a> implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></div>
+<dl class="name-value">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="serialized-class-details" id="org.apache.datafusion.PlanException">
+<h3>Exception&nbsp;<a href="org/apache/datafusion/PlanException.html" title="class in org.apache.datafusion">org.apache.datafusion.PlanException</a></h3>
+<div class="type-signature">class PlanException extends <a href="org/apache/datafusion/DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a> implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></div>
+<dl class="name-value">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="serialized-class-details" id="org.apache.datafusion.ResourcesExhaustedException">
+<h3>Exception&nbsp;<a href="org/apache/datafusion/ResourcesExhaustedException.html" title="class in org.apache.datafusion">org.apache.datafusion.ResourcesExhaustedException</a></h3>
+<div class="type-signature">class ResourcesExhaustedException extends <a href="org/apache/datafusion/DataFusionException.html" title="class in org.apache.datafusion">DataFusionException</a> implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></div>
+<dl class="name-value">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</main>
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
+</footer>
+</div>
+</div>
+</body>
+</html>
diff --git a/api/tag-search-index.js b/api/tag-search-index.js
index 0367dae..f38b3cb 100644
--- a/api/tag-search-index.js
+++ b/api/tag-search-index.js
@@ -1 +1 @@
-tagSearchIndex = [];updateSearchResults();
\ No newline at end of file
+tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults();
\ No newline at end of file
diff --git a/api/type-search-index.js b/api/type-search-index.js
index aaaeeb3..2fe2e86 100644
--- a/api/type-search-index.js
+++ b/api/type-search-index.js
@@ -1 +1 @@
-typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"org.apache.datafusion","l":"ColumnarValue.Array"},{"p":"org.apache.datafusion","l":"ArrowReadOptions"},{"p":"org.apache.datafusion","l":"AvroReadOptions"},{"p":"org.apache.datafusion","l":"ObjectStoreOptions.Gcs.Builder"},{"p":"org.apache.datafusion","l":"ObjectStoreOptions.Http.Builder"},{"p":"org.apache.datafusion","l":"ObjectStoreOptions.S3.Builder"},{"p":"org.apache.datafusion","l":"ColumnarValue" [...]
\ No newline at end of file
+typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"org.apache.datafusion","l":"ColumnarValue.Array"},{"p":"org.apache.datafusion","l":"ArrowReadOptions"},{"p":"org.apache.datafusion","l":"AvroReadOptions"},{"p":"org.apache.datafusion","l":"CacheManagerOptions.Builder"},{"p":"org.apache.datafusion","l":"ObjectStoreOptions.Gcs.Builder"},{"p":"org.apache.datafusion","l":"ObjectStoreOptions.Http.Builder"},{"p":"org.apache.datafusion","l":"ObjectStoreOptio [...]
\ No newline at end of file
diff --git a/contributor-guide/code-style.html b/contributor-guide/code-style.html
index a5b662b..c776b87 100644
--- a/contributor-guide/code-style.html
+++ b/contributor-guide/code-style.html
@@ -401,28 +401,35 @@ under the License.
 -->
 <section id="code-style">
 <h1>Code style<a class="headerlink" href="#code-style" title="Link to this heading">#</a></h1>
+<p>To apply Java + Rust formatters in one go:</p>
+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>make<span class="w"> </span>format
+</pre></div>
+</div>
+<p>CI verifies formatting, lint, and license headers on every PR via the
+<strong>Lint</strong> and <strong>RAT License Check</strong> workflows.</p>
 <section id="java">
 <h2>Java<a class="headerlink" href="#java" title="Link to this heading">#</a></h2>
-<p>Run the Spotless formatter before committing. CI fails the build if
-formatting drifts:</p>
-<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>./mvnw<span class="w"> </span>spotless:apply
+<p>Spotless is configured in the parent <code class="docutils literal notranslate"><span class="pre">pom.xml</span></code>. The CI <code class="docutils literal notranslate"><span class="pre">fmt-check</span></code> job
+runs:</p>
+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>./mvnw<span class="w"> </span>spotless:check
 </pre></div>
 </div>
 </section>
 <section id="rust">
 <h2>Rust<a class="headerlink" href="#rust" title="Link to this heading">#</a></h2>
-<p>Run inside <code class="docutils literal notranslate"><span class="pre">native/</span></code>:</p>
-<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>cargo<span class="w"> </span>fmt
+<p>The CI <code class="docutils literal notranslate"><span class="pre">clippy</span></code> job runs (from <code class="docutils literal notranslate"><span class="pre">native/</span></code>):</p>
+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>cargo<span class="w"> </span>fmt<span class="w"> </span>--all<span class="w"> </span>--<span class="w"> </span>--check
 cargo<span class="w"> </span>clippy<span class="w"> </span>--all-targets<span class="w"> </span>--<span class="w"> </span>-D<span class="w"> </span>warnings
 </pre></div>
 </div>
-<p><code class="docutils literal notranslate"><span class="pre">-D</span> <span class="pre">warnings</span></code> turns clippy warnings into build failures, matching CI.</p>
+<p><code class="docutils literal notranslate"><span class="pre">-D</span> <span class="pre">warnings</span></code> escalates every clippy warning to a build failure.</p>
 </section>
 <section id="license-headers">
 <h2>License headers<a class="headerlink" href="#license-headers" title="Link to this heading">#</a></h2>
-<p>New source files need the Apache 2.0 license header. Apache RAT enforces
-this during <code class="docutils literal notranslate"><span class="pre">verify</span></code> — <code class="docutils literal notranslate"><span class="pre">./mvnw</span> <span class="pre">verify</span></code> will fail if a tracked file is
-missing the header.</p>
+<p>Every tracked source file needs the Apache 2.0 license header. The
+<strong>RAT License Check</strong> workflow runs <code class="docutils literal notranslate"><span class="pre">./mvnw</span> <span class="pre">-N</span> <span class="pre">apache-rat:check</span></code> on every
+PR (including docs-only changes). Exclusions live in
+<code class="docutils literal notranslate"><span class="pre">dev/release/rat_exclude_files.txt</span></code>.</p>
 </section>
 </section>
 
diff --git a/contributor-guide/development.html b/contributor-guide/development.html
index 7a568e5..b982b4d 100644
--- a/contributor-guide/development.html
+++ b/contributor-guide/development.html
@@ -424,6 +424,8 @@ be run individually:</p>
 </pre></div>
 </div>
 <p>The native library must be built before running JVM tests.</p>
+<p>Before pushing, run <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">format</span></code> to apply the Java + Rust formatters in
+place. CI verifies formatting, clippy, and license headers on every PR.</p>
 <p>The first build in a fresh checkout reaches out to
 <code class="docutils literal notranslate"><span class="pre">raw.githubusercontent.com</span></code> to fetch the DataFusion <code class="docutils literal notranslate"><span class="pre">.proto</span></code> files used
 to generate the <code class="docutils literal notranslate"><span class="pre">datafusion-proto</span></code> Java classes. Subsequent builds are
@@ -454,7 +456,8 @@ examples that depend on the library; built alongside the library so they
 cannot fall out of sync with the API.</p></li>
 <li><p><code class="docutils literal notranslate"><span class="pre">native/</span></code> — Rust crate (JNI + Arrow C Data Interface).</p></li>
 <li><p><code class="docutils literal notranslate"><span class="pre">proto/</span></code> — Protobuf definitions shared between Java and Rust.</p></li>
-<li><p><code class="docutils literal notranslate"><span class="pre">Makefile</span></code> — top-level build orchestration (<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span></code>, <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">tpch-data</span></code>).</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">Makefile</span></code> — top-level build orchestration (<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span></code>, <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">format</span></code>,
+<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">tpch-data</span></code>).</p></li>
 <li><p><code class="docutils literal notranslate"><span class="pre">mvnw</span></code>, <code class="docutils literal notranslate"><span class="pre">mvnw.cmd</span></code> — bundled Maven wrapper.</p></li>
 <li><p><code class="docutils literal notranslate"><span class="pre">docs/</span></code> — Sphinx documentation source and build scripts.</p></li>
 </ul>
diff --git a/index.html b/index.html
index ee9ca7c..c76c271 100644
--- a/index.html
+++ b/index.html
@@ -363,8 +363,8 @@ under the License.
 <p>Java bindings for <a class="reference external" href="https://datafusion.apache.org/">Apache DataFusion</a>. Queries run in native Rust and results
 return to the JVM as <a class="reference external" href="https://arrow.apache.org/">Apache Arrow</a> batches via the Arrow C Data Interface.</p>
 <blockquote>
-<div><p>Early development: no releases yet, API will change. Bug reports and
-contributions welcome.</p>
+<div><p>Early development: the API will change between releases. Bug reports
+and contributions welcome.</p>
 </div></blockquote>
 <section id="quickstart">
 <h2>Quickstart<a class="headerlink" href="#quickstart" title="Link to this heading">#</a></h2>
diff --git a/searchindex.js b/searchindex.js
index e8ed0f4..6c5f27b 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"A minimal plan": [[11, "a-minimal-plan"]], "API Reference": [[6, null]], "Apache DataFusion Java": [[5, null]], "Build and test": [[1, "build-and-test"]], "Build from source": [[9, "build-from-source"]], "Build prerequisites": [[1, "build-prerequisites"]], "Code style": [[0, null]], "Configuration": [[14, "configuration"]], "Contract": [[15, "contract"]], "Contributor Guide": [[2, null]], "DataFrame and SQL": [[7, null]], "DataFrame transformations": [[7,  [...]
\ No newline at end of file
+Search.setIndex({"alltitles": {"A minimal plan": [[11, "a-minimal-plan"]], "API Reference": [[6, null]], "Apache DataFusion Java": [[5, null]], "Build and test": [[1, "build-and-test"]], "Build from source": [[9, "build-from-source"]], "Build prerequisites": [[1, "build-prerequisites"]], "Code style": [[0, null]], "Configuration": [[14, "configuration"]], "Contract": [[15, "contract"]], "Contributor Guide": [[2, null]], "DataFrame and SQL": [[7, null]], "DataFrame transformations": [[7,  [...]
\ No newline at end of file
diff --git a/user-guide/index.html b/user-guide/index.html
index 25016a2..70e06ed 100644
--- a/user-guide/index.html
+++ b/user-guide/index.html
@@ -424,8 +424,8 @@ and Parquet ingestion.</p>
 </ul>
 </div>
 <blockquote>
-<div><p>Early development: no releases yet, API will change. Bug reports and
-contributions welcome.</p>
+<div><p>Early development: the API will change between releases. Bug reports
+and contributions welcome.</p>
 </div></blockquote>
 </section>
 
diff --git a/user-guide/installation.html b/user-guide/installation.html
index 63ec491..c659a8c 100644
--- a/user-guide/installation.html
+++ b/user-guide/installation.html
@@ -406,17 +406,48 @@ under the License.
 -->
 <section id="installation">
 <h1>Installation<a class="headerlink" href="#installation" title="Link to this heading">#</a></h1>
-<p>Apache DataFusion Java has not yet published a release. Until the first
-release, the only way to use the library is to build from source.</p>
+<p>Apache DataFusion Java is published to
+<a class="reference external" href="https://central.sonatype.com/artifact/org.apache.datafusion/datafusion-java">Maven Central</a>.
+The JAR bundles the native library for Linux (x86_64, aarch64) and macOS
+(x86_64, aarch64), so no separate native install is required on those
+platforms. Windows is not yet supported by the published JAR; Windows
+users need to build from source.</p>
 <section id="requirements">
 <h2>Requirements<a class="headerlink" href="#requirements" title="Link to this heading">#</a></h2>
-<ul class="simple">
-<li><p><strong>JDK 17 or newer.</strong> Set <code class="docutils literal notranslate"><span class="pre">JAVA_HOME</span></code> to point at it.</p></li>
-<li><p><strong>Rust toolchain (stable).</strong> Install via <a class="reference external" href="https://rustup.rs/">rustup</a>.</p></li>
+<ul>
+<li><p><strong>JDK 17 or newer.</strong></p></li>
+<li><p>Arrow needs access to <code class="docutils literal notranslate"><span class="pre">java.nio</span></code> internals. Add this to the JVM
+arguments of whatever runs your code:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">--</span><span class="n">add</span><span class="o">-</span><span class="n">opens</span><span class="o">=</span><span class="n">java</span><span class="o">.</span><span class="n">base</span><span class="o">/</span><span class="n">java</span><span class="o">.</span><span class="n">nio</span><span class="o">=</span><span class="n">ALL</span><span class="o">-</span><span class="n">UNNAMED</span>
+</pre></div>
+</div>
+</li>
 </ul>
 </section>
+<section id="maven">
+<h2>Maven<a class="headerlink" href="#maven" title="Link to this heading">#</a></h2>
+<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;dependency&gt;</span>
+<span class="w">    </span><span class="nt">&lt;groupId&gt;</span>org.apache.datafusion<span class="nt">&lt;/groupId&gt;</span>
+<span class="w">    </span><span class="nt">&lt;artifactId&gt;</span>datafusion-java<span class="nt">&lt;/artifactId&gt;</span>
+<span class="w">    </span><span class="nt">&lt;version&gt;</span>0.1.0<span class="nt">&lt;/version&gt;</span>
+<span class="nt">&lt;/dependency&gt;</span>
+</pre></div>
+</div>
+</section>
+<section id="gradle">
+<h2>Gradle<a class="headerlink" href="#gradle" title="Link to this heading">#</a></h2>
+<div class="highlight-kotlin notranslate"><div class="highlight"><pre><span></span><span class="n">dependencies</span><span class="w"> </span><span class="p">{</span>
+<span class="w">    </span><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.apache.datafusion:datafusion-java:0.1.0&quot;</span><span class="p">)</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>Arrow (<code class="docutils literal notranslate"><span class="pre">arrow-vector</span></code>, <code class="docutils literal notranslate"><span class="pre">arrow-c-data</span></code>, <code class="docutils literal notranslate"><span class="pre">arrow-memory-netty</span></code>) is pulled in
+transitively — you do not need to declare it yourself.</p>
+</section>
 <section id="build-from-source">
 <h2>Build from source<a class="headerlink" href="#build-from-source" title="Link to this heading">#</a></h2>
+<p>If you are on Windows, on another platform without a bundled native
+library, or want to run against unreleased changes, build from source:</p>
 <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/apache/datafusion-java.git
 <span class="nb">cd</span><span class="w"> </span>datafusion-java
 make<span class="w"> </span><span class="nb">test</span>
@@ -425,6 +456,8 @@ make<span class="w"> </span><span class="nb">test</span>
 <p><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span></code> compiles the native Rust crate, then runs the JUnit tests
 against it. The native library must be built before the JVM tests can
 run.</p>
+<p>Building from source requires a stable Rust toolchain (install via
+<a class="reference external" href="https://rustup.rs/">rustup</a>) in addition to the JDK.</p>
 <p>The first build in a fresh checkout reaches out to
 <code class="docutils literal notranslate"><span class="pre">raw.githubusercontent.com</span></code> to fetch the DataFusion <code class="docutils literal notranslate"><span class="pre">.proto</span></code> files used to
 generate the <code class="docutils literal notranslate"><span class="pre">datafusion-proto</span></code> Java classes. Subsequent builds are
@@ -484,6 +517,8 @@ DataFusion version — see the <a class="reference internal" href="../contributo
   <nav class="bd-toc-nav page-toc" aria-labelledby="pst-page-navigation-heading-2">
     <ul class="visible nav section-nav flex-column">
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#requirements">Requirements</a></li>
+<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#maven">Maven</a></li>
+<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#gradle">Gradle</a></li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#build-from-source">Build from source</a></li>
 </ul>
   </nav></div>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org