blob: fd94f7076dc7344a3cc6123fdc85fd65839e7435 [file]
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (17) on Sat Jun 13 20:43:56 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-06-13">
<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">
<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 evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
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/SessionContextBuilder.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>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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></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 SessionContextBuilder" class="title">Class SessionContextBuilder</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.SessionContextBuilder</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">SessionContextBuilder</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">Builder for a configured <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a>. Each setter is optional; unset fields leave the
DataFusion default in place.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel" aria-labelledby="method-summary-table-tab0">
<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 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="#batchSize(int)" class="member-name-link">batchSize</a><wbr>(int&nbsp;batchSize)</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="SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></code></div>
<div class="col-second odd-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 odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<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="#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="#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 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="#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">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="#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">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="#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">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.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="class or interface in java.lang" class="external-link">String</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>&gt;&nbsp;entries)</code></div>
<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>, 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="#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.lang" class="external-link">String</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>&gt;&nbsp;entries)</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>.</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="#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 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="#withSparkFunctions()" class="member-name-link">withSparkFunctions</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Register Apache Spark-compatible functions and expression planners on the new context, using
the <code>datafusion-spark</code> crate.</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 interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <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>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="batchSize(int)">
<h3>batchSize</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">batchSize</span><wbr><span class="parameters">(int&nbsp;batchSize)</span></div>
</section>
</li>
<li>
<section class="detail" id="targetPartitions(int)">
<h3>targetPartitions</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">targetPartitions</span><wbr><span class="parameters">(int&nbsp;targetPartitions)</span></div>
</section>
</li>
<li>
<section class="detail" id="collectStatistics(boolean)">
<h3>collectStatistics</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">collectStatistics</span><wbr><span class="parameters">(boolean&nbsp;collectStatistics)</span></div>
</section>
</li>
<li>
<section class="detail" id="informationSchema(boolean)">
<h3>informationSchema</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">informationSchema</span><wbr><span class="parameters">(boolean&nbsp;informationSchema)</span></div>
</section>
</li>
<li>
<section class="detail" id="memoryLimit(long,double)">
<h3>memoryLimit</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">memoryLimit</span><wbr><span class="parameters">(long&nbsp;maxMemoryBytes,
double&nbsp;fraction)</span></div>
<div class="block">Cap the memory pool at <code>maxMemoryBytes</code>, reserving <code>fraction</code> of it for queries.</div>
</section>
</li>
<li>
<section class="detail" id="tempDirectory(java.lang.String)">
<h3>tempDirectory</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">tempDirectory</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;path)</span></div>
<div class="block">Directory the DiskManager uses for spill files.</div>
</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,
<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)</span></div>
<div class="block">Set an arbitrary <code>datafusion.*</code> config option by string key. Mirrors DataFusion's <code>
ConfigOptions::set(key, value)</code> API — see the DataFusion configuration reference for the full
set of keys. Entries set this way are applied <strong>after</strong> the typed setters on this
builder, so an explicit <code>setOption</code> call overrides a typed setter for the same knob.
<p><code>datafusion.runtime.*</code> keys (memory limit, temp directory, cache sizes, etc) are not
yet supported by this setter and will throw at <a href="#build()"><code>build()</code></a>. Use the typed <a href="#memoryLimit(long,double)"><code>memoryLimit(long, double)</code></a> and <a href="#tempDirectory(java.lang.String)"><code>tempDirectory(String)</code></a> setters instead. Round-trip
support for the runtime subtree is tracked as a follow-up.
<p>Unknown keys or unparseable values are not validated here; they surface as a <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> from <a href="#build()"><code>build()</code></a> carrying DataFusion's error message.</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>key</code> or <code>value</code> is <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setOptions(java.util.LinkedHashMap)">
<h3>setOptions</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">setOptions</span><wbr><span class="parameters">(<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="class or interface in java.lang" class="external-link">String</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>&gt;&nbsp;entries)</span></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. Use this overload when you need the strict last-write-wins
ordering guarantee for overlapping side-effect keys (e.g. <code>
datafusion.optimizer.enable_dynamic_filter_pushdown</code> rewrites the per-operator <code>
enable_*_dynamic_filter_pushdown</code> flags, so a per-operator override must come after the
umbrella).</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 any key or value in <code>entries</code> is <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setOptions(java.util.Map)">
<h3>setOptions</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">setOptions</span><wbr><span class="parameters">(<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.lang" class="external-link">String</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>&gt;&nbsp;entries)</span></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>. Iterates in
whatever order the supplied <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"><code>Map</code></a> produces, which for <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashMap.html" title="class or interface in java.util" class="external-link"><code>HashMap</code></a> or <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Properties.html" title="class or interface in java.util" class="external-link"><code>Properties</code></a> is unspecified.
<p>This is the right overload for the common case where the caller's keys don't overlap with
any upstream setter's side effects. If you do need order — see the <a href="#setOptions(java.util.LinkedHashMap)"><code>setOptions(LinkedHashMap)</code></a> overload, which the compiler will resolve to automatically when you
pass a <code>LinkedHashMap</code>.</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 any key or value in <code>entries</code> is <code>null</code>.</dd>
</dl>
</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="withSparkFunctions()">
<h3>withSparkFunctions</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">withSparkFunctions</span>()</div>
<div class="block">Register Apache Spark-compatible functions and expression planners on the new context, using
the <code>datafusion-spark</code> crate. Once enabled, Spark-compatible functions (e.g. <code>
crc32</code>) are callable from SQL and override any DataFusion built-in of the same name.
<p>Requires the native library to be built with the <code>spark</code> Cargo feature, which is
enabled in the default build. If it is not, <a href="#build()"><code>build()</code></a> throws a <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>
explaining the feature is missing.</div>
</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>
<div class="block">Register an <code>object_store::ObjectStore</code> backend on the new context's <code>RuntimeEnv</code>.
Build <a href="ObjectStoreOptions.html" title="class in org.apache.datafusion"><code>ObjectStoreOptions</code></a> via the per-backend factories (<a href="ObjectStoreOptions.html#s3()"><code>ObjectStoreOptions.s3()</code></a>,
<a href="ObjectStoreOptions.html#gcs()"><code>ObjectStoreOptions.gcs()</code></a>, <a href="ObjectStoreOptions.html#http(java.lang.String)"><code>ObjectStoreOptions.http(String)</code></a>). The store is
reachable inside the resulting <a href="SessionContext.html" title="class in org.apache.datafusion"><code>SessionContext</code></a> by URL — e.g. once an S3 store is
registered for <code>my-bucket</code>, <code>ctx.registerParquet("orders",
"s3://my-bucket/orders/")</code> will resolve through it.
<p>Multiple registrations are applied in the order added; if two registrations resolve to the
same URL, the later one wins (matching upstream <code>RuntimeEnv::register_object_store</code>).
<p>If the underlying <code>object_store</code> cloud-backend Cargo feature is not built into the
native library, <a href="#build()"><code>build()</code></a> surfaces a clear error rather than silently dropping the
registration. The default <code>make</code> build enables all three backends (S3 / GCS / HTTP).</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="build()">
<h3>build</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SessionContext.html" title="class in org.apache.datafusion">SessionContext</a></span>&nbsp;<span class="element-name">build</span>()</div>
<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>
</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>