This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 8fd4731ac publish documentation
8fd4731ac is described below
commit 8fd4731ac9924b274f50cedc4ea8fd2069a4f3c7
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Sep 5 04:03:50 2025 +0000
publish documentation
---
main/_sources/format/driver_manifests.rst.txt | 72 ++++++++--------
main/_sources/glossary.rst.txt | 6 ++
main/format/driver_manifests.html | 91 ++++++++++-----------
main/genindex.html | 2 +
main/glossary.html | 5 ++
main/objects.inv | Bin 4028 -> 4039 bytes
main/r/adbcbigquery/pkgdown.yml | 2 +-
main/r/adbcdrivermanager/pkgdown.yml | 2 +-
.../reference/adbc_connection_init.html | 4 +-
.../reference/adbc_database_init.html | 2 +-
.../reference/adbc_statement_init.html | 6 +-
main/r/adbcdrivermanager/search.json | 2 +-
main/r/adbcflightsql/pkgdown.yml | 2 +-
main/r/adbcpostgresql/pkgdown.yml | 2 +-
main/r/adbcsnowflake/pkgdown.yml | 2 +-
main/r/adbcsqlite/pkgdown.yml | 2 +-
main/searchindex.js | 2 +-
17 files changed, 108 insertions(+), 96 deletions(-)
diff --git a/main/_sources/format/driver_manifests.rst.txt
b/main/_sources/format/driver_manifests.rst.txt
index 107f0852f..9c26e0ea2 100644
--- a/main/_sources/format/driver_manifests.rst.txt
+++ b/main/_sources/format/driver_manifests.rst.txt
@@ -19,47 +19,59 @@
ADBC Driver Manager and Manifests
=================================
-.. note:: This document focuses on scenarios that use the driver manager
- to load drivers. The driver manager is not required to use ADBC
- in general, but allows a convenient experience for dynamically
- loading arbitrary drivers.
+.. note:: This document describes using the :term:`driver manager` to load
+ drivers. The driver manager is not required to use ADBC in general
+ but it allows loading drivers written in a different language from
the
+ application and improves the experience when using multiple drivers
in
+ a single application. For more information on how the driver manager
+ works see :doc:`how_manager`.
-The ADBC driver manager is itself, an ADBC driver which loads another driver
-dynamically and forwards the calls to the loaded driver. For more information
on the
-driver manager see :doc:`how_manager`.
-
-There are two ways to specify a driver for the driver manager to load:
+There are two ways to load a driver with the driver manager:
1. Directly specifying the dynamic library to load
2. Referring to a driver manifest file which contains metadata along with the
location of the dynamic library to be loaded
-When using the driver manager, you can either use the ``driver`` option to the
-driver manager, or you can use functions in the language bindings which
explicitly
-load a driver by name.
+With either method, you specify the dynamic library or driver manifest as the
+``driver`` option to the driver manager or you can use an explicit function for
+loading drivers if your driver manager library exposes one (e.g., C++, see
+example below).
-.. note:: In addition to the ``driver`` option, there is also an
``entrypoint`` option
- which can be used to specify the entrypoint function to call for
populating
- the driver function table. If the driver does not use the default
entrypoint
- function, it can be indicated with this option.
+.. note:: In addition to the ``driver`` option, there is also an
+ :term:`entrypoint` option that should be used if the driver uses a
+ non-default entrypoint.
Directly Loading a Driver
=========================
The simplest mechanism for loading a driver via the driver manager is to
provide a
-direct file path to the dynamic library as the driver name.
+file path to the dynamic library as the driver name.
.. tab-set::
.. tab-item:: C/C++
:sync: cpp
- You can use the :c:func:`AdbcLoadDriver` function to load the driver
directly or you can use it as a driver
- itself via :c:struct:`AdbcDatabase`.
+ You can specify the driver to load using the ``driver`` option to the
+ driver manager or you can use :c:func:`AdbcLoadDriver` to directly load
+ the driver.
.. code-block:: cpp
- // load directly
+ struct AdbcDatabase database;
+ struct AdbcError error;
+
+ std::memset(&database, 0, sizeof(database));
+ std::memset(&error, 0, sizeof(error));
+
+ auto status = AdbcDatabaseNew(&database, &error);
+ // if status != ADBC_STATUS_OK then handle the error
+
+ // Load the driver by setting the "driver" option
+ status = AdbcDatabaseSetOption(&database, "driver",
"/path/to/libadbc_driver.so", &error);
+ // if status != ADBC_STATUS_OK then handle the error
+
+ // Alternatively, load directly with AdbcLoadDriver
struct AdbcDriver driver;
struct AdbcError error;
@@ -70,16 +82,6 @@ direct file path to the dynamic library as the driver name.
ADBC_VERSION_1_1_0, &driver, &error);
// if status != ADBC_STATUS_OK then handle the error
- // or use the Driver Manager as a driver itself
- struct AdbcDatabase database;
- struct AdbcError error;
- std::memset(&database, 0, sizeof(database));
- std::memset(&error, 0, sizeof(error));
- auto status = AdbcDatabaseNew(&database, &error);
- // check status
- status = AdbcDatabaseSetOption(&database, "driver",
"/path/to/libadbc_driver.so", &error);
- // check status
-
.. tab-item:: GLib
:sync: glib
@@ -180,14 +182,14 @@ prefer to use ``LD_LIBRARY_PATH`` (or similar, depending
on your operating
system) and specify just the filename (i.e., ``libadbc_driver.so`` instead of
``/path/to/libadbc_driver.so``.
-However, the requirement to having the path to the dynamic library or having it
+However, the requirement of having the path to the dynamic library or having it
on your ``LD_LIBRARY_PATH`` can prove difficult for ensuring security,
reproducibility,
and ease of use. For this reason, there is the concept of a driver manifest.
Driver Manifests
================
-A ``driver manifest`` is a `TOML`_ file that contains both metadata about the
driver along with the location
+A :term:`driver manifest` is a `TOML`_ file that contains both metadata about
the driver along with the location
of the shared library to load. The driver manager can then locate the
manifest and use it to load the
driver if it was given the shared library path directly. This allows for more
portable installations of
drivers, and sharing of configurations. Tools can even be created and written
to automatically manage driver
@@ -414,7 +416,7 @@ to control which directories will be searched for
manifests, with the behavior b
* ``ADBC::LoadFlags::DEFAULT`` - default value with all flags set
These can be provided by using ``ADBC::Database#load_flags=``.
- Passing the option ``load_flags`` as an option to ``AdbcDatabase`` (or
via ``db_kwargs`` in ``adbc_driver_qmanager.dbapi.connect``) will
+ Passing the option ``load_flags`` as an option to ``AdbcDatabase`` (or
via ``db_kwargs`` in ``adbc_driver_manager.dbapi.connect``) will
allow you to control the directories to be searched by using the value
of the option as the bitmask for the load flag desired.
.. tab-item:: Rust
@@ -438,7 +440,7 @@ the given order:
#. If the ``LOAD_FLAG_SEARCH_ENV`` load option is set, then the paths in the
environment variable ``ADBC_DRIVER_PATH`` will be searched
- * ``ADBC_DRIVER_PATH`` is a colon-separated list of directories
+ * ``ADBC_DRIVER_PATH`` is a colon-separated list of directories
#. If additional search paths have been specified, those will be searched
@@ -465,7 +467,7 @@ would happen for ODBC drivers. The search for a manifest on
Windows would be the
#. If the ``LOAD_FLAG_SEARCH_ENV`` load option is set, then the paths in the
environment variable ``ADBC_DRIVER_PATH`` will be searched
- * ``ADBC_DRIVER_PATH`` is a semicolon-separated list of directories
+ * ``ADBC_DRIVER_PATH`` is a semicolon-separated list of directories
#. If additional search paths have been specified, those will be searched
diff --git a/main/_sources/glossary.rst.txt b/main/_sources/glossary.rst.txt
index 3441201f6..843493a98 100644
--- a/main/_sources/glossary.rst.txt
+++ b/main/_sources/glossary.rst.txt
@@ -71,6 +71,12 @@ Glossary
:term:`driver manager` can load a driver from a which simplifies the
process for users.
+ entrypoint
+ The name of a function exported by a driver that the :term:`driver
manager`
+ calls when a driver is loaded to perform any initialization required by
the
+ driver. The name follows a convention which is outlined in
+ :c:type:`AdbcDriverInitFunc` but another name may be used.
+
statement
In ADBC, the statement object/struct holds state for executing a single
query. The query itself, bind parameters, result sets, and so on are all
diff --git a/main/format/driver_manifests.html
b/main/format/driver_manifests.html
index 241e933c6..98eecf615 100644
--- a/main/format/driver_manifests.html
+++ b/main/format/driver_manifests.html
@@ -9,10 +9,10 @@
<meta property="og:type" content="website" />
<meta property="og:url"
content="https://arrow.apache.org/adbc/main/format/driver_manifests.html" />
<meta property="og:site_name" content="ADBC" />
-<meta property="og:description" content="The ADBC driver manager is itself, an
ADBC driver which loads another driver dynamically and forwards the calls to
the loaded driver. For more information on the driver manager see How Drivers
and ..." />
+<meta property="og:description" content="There are two ways to load a driver
with the driver manager: Directly specifying the dynamic library to load,
Referring to a driver manifest file which contains metadata along with the
location of ..." />
<meta property="og:image"
content="https://arrow.apache.org/adbc/main/_static/banner.png" />
<meta property="og:image:alt" content="ADBC" />
-<meta name="description" content="The ADBC driver manager is itself, an ADBC
driver which loads another driver dynamically and forwards the calls to the
loaded driver. For more information on the driver manager see How Drivers and
..." />
+<meta name="description" content="There are two ways to load a driver with the
driver manager: Directly specifying the dynamic library to load, Referring to a
driver manifest file which contains metadata along with the location of ..." />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search"
title="Search" href="../search.html" /><link rel="next" title="Related Work"
href="related_work.html" /><link rel="prev" title="How Drivers and the Driver
Manager Work Together" href="how_manager.html" />
<!-- Generated with Sphinx 8.3.0 and Furo 2024.08.06 -->
@@ -399,41 +399,54 @@
<h1>ADBC Driver Manager and Manifests<a class="headerlink"
href="#adbc-driver-manager-and-manifests" title="Link to this
heading">¶</a></h1>
<div class="admonition note">
<p class="admonition-title">Note</p>
-<p>This document focuses on scenarios that use the driver manager
-to load drivers. The driver manager is not required to use ADBC
-in general, but allows a convenient experience for dynamically
-loading arbitrary drivers.</p>
-</div>
-<p>The ADBC driver manager is itself, an ADBC driver which loads another driver
-dynamically and forwards the calls to the loaded driver. For more information
on the
-driver manager see <a class="reference internal" href="how_manager.html"><span
class="doc">How Drivers and the Driver Manager Work Together</span></a>.</p>
-<p>There are two ways to specify a driver for the driver manager to load:</p>
+<p>This document describes using the <a class="reference internal"
href="../glossary.html#term-driver-manager"><span class="xref std
std-term">driver manager</span></a> to load
+drivers. The driver manager is not required to use ADBC in general
+but it allows loading drivers written in a different language from the
+application and improves the experience when using multiple drivers in
+a single application. For more information on how the driver manager
+works see <a class="reference internal" href="how_manager.html"><span
class="doc">How Drivers and the Driver Manager Work Together</span></a>.</p>
+</div>
+<p>There are two ways to load a driver with the driver manager:</p>
<ol class="arabic simple">
<li><p>Directly specifying the dynamic library to load</p></li>
<li><p>Referring to a driver manifest file which contains metadata along with
the
location of the dynamic library to be loaded</p></li>
</ol>
-<p>When using the driver manager, you can either use the <code class="docutils
literal notranslate"><span class="pre">driver</span></code> option to the
-driver manager, or you can use functions in the language bindings which
explicitly
-load a driver by name.</p>
+<p>With either method, you specify the dynamic library or driver manifest as
the
+<code class="docutils literal notranslate"><span
class="pre">driver</span></code> option to the driver manager or you can use an
explicit function for
+loading drivers if your driver manager library exposes one (e.g., C++, see
+example below).</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
-<p>In addition to the <code class="docutils literal notranslate"><span
class="pre">driver</span></code> option, there is also an <code class="docutils
literal notranslate"><span class="pre">entrypoint</span></code> option
-which can be used to specify the entrypoint function to call for populating
-the driver function table. If the driver does not use the default entrypoint
-function, it can be indicated with this option.</p>
+<p>In addition to the <code class="docutils literal notranslate"><span
class="pre">driver</span></code> option, there is also an
+<a class="reference internal" href="../glossary.html#term-entrypoint"><span
class="xref std std-term">entrypoint</span></a> option that should be used if
the driver uses a
+non-default entrypoint.</p>
</div>
<section id="directly-loading-a-driver">
<h2>Directly Loading a Driver<a class="headerlink"
href="#directly-loading-a-driver" title="Link to this heading">¶</a></h2>
<p>The simplest mechanism for loading a driver via the driver manager is to
provide a
-direct file path to the dynamic library as the driver name.</p>
+file path to the dynamic library as the driver name.</p>
<div class="sd-tab-set docutils">
<input checked="checked" id="sd-tab-item-0" name="sd-tab-set-0" type="radio">
<label class="sd-tab-label" data-sync-group="tab" data-sync-id="cpp"
for="sd-tab-item-0">
C/C++</label><div class="sd-tab-content docutils">
-<p>You can use the <a class="reference external"
href="https://arrow.apache.org/adbc/main/cpp/api/adbc__driver__manager_8h.html#ac9a4db661a21cca1bbb47a4bd47f9ad0"
title="(in ADBC C vversion)"><code class="xref c c-func docutils literal
notranslate"><span class="pre">AdbcLoadDriver()</span></code></a> function to
load the driver directly or you can use it as a driver
-itself via <a class="reference external"
href="https://arrow.apache.org/adbc/main/cpp/api/group__adbc-database.html#structAdbcDatabase"
title="(in ADBC C vversion)"><code class="xref c c-struct docutils literal
notranslate"><span class="pre">AdbcDatabase</span></code></a>.</p>
-<div class="highlight-cpp notranslate"><div
class="highlight"><pre><span></span><span class="c1">// load directly</span>
+<p>You can specify the driver to load using the <code class="docutils literal
notranslate"><span class="pre">driver</span></code> option to the
+driver manager or you can use <a class="reference external"
href="https://arrow.apache.org/adbc/main/cpp/api/adbc__driver__manager_8h.html#ac9a4db661a21cca1bbb47a4bd47f9ad0"
title="(in ADBC C vversion)"><code class="xref c c-func docutils literal
notranslate"><span class="pre">AdbcLoadDriver()</span></code></a> to directly
load
+the driver.</p>
+<div class="highlight-cpp notranslate"><div
class="highlight"><pre><span></span><span class="k">struct</span><span
class="w"> </span><span class="nc">AdbcDatabase</span><span class="w">
</span><span class="n">database</span><span class="p">;</span>
+<span class="k">struct</span><span class="w"> </span><span
class="nc">AdbcError</span><span class="w"> </span><span
class="n">error</span><span class="p">;</span>
+
+<span class="n">std</span><span class="o">::</span><span
class="n">memset</span><span class="p">(</span><span
class="o">&</span><span class="n">database</span><span
class="p">,</span><span class="w"> </span><span class="mi">0</span><span
class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span
class="p">(</span><span class="n">database</span><span class="p">));</span>
+<span class="n">std</span><span class="o">::</span><span
class="n">memset</span><span class="p">(</span><span
class="o">&</span><span class="n">error</span><span class="p">,</span><span
class="w"> </span><span class="mi">0</span><span class="p">,</span><span
class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span
class="n">error</span><span class="p">));</span>
+
+<span class="k">auto</span><span class="w"> </span><span
class="n">status</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">AdbcDatabaseNew</span><span
class="p">(</span><span class="o">&</span><span
class="n">database</span><span class="p">,</span><span class="w"> </span><span
class="o">&</span><span class="n">error</span><span class="p">);</span>
+<span class="c1">// if status != ADBC_STATUS_OK then handle the error</span>
+
+<span class="c1">// Load the driver by setting the "driver"
option</span>
+<span class="n">status</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">AdbcDatabaseSetOption</span><span class="p">(</span><span
class="o">&</span><span class="n">database</span><span
class="p">,</span><span class="w"> </span><span
class="s">"driver"</span><span class="p">,</span><span class="w">
</span><span class="s">"/path/to/libadbc_driver.so"</span><span
class="p">,</span><span class="w"> </span><span class="o">&a [...]
+<span class="c1">// if status != ADBC_STATUS_OK then handle the error</span>
+
+<span class="c1">// Alternatively, load directly with AdbcLoadDriver</span>
<span class="k">struct</span><span class="w"> </span><span
class="nc">AdbcDriver</span><span class="w"> </span><span
class="n">driver</span><span class="p">;</span>
<span class="k">struct</span><span class="w"> </span><span
class="nc">AdbcError</span><span class="w"> </span><span
class="n">error</span><span class="p">;</span>
@@ -443,16 +456,6 @@ itself via <a class="reference external"
href="https://arrow.apache.org/adbc/mai
<span class="k">auto</span><span class="w"> </span><span
class="n">status</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">AdbcLoadDriver</span><span
class="p">(</span><span
class="s">"/path/to/libadbc_driver.so"</span><span
class="p">,</span><span class="w"> </span><span class="k">nullptr</span><span
class="p">,</span>
<span class="w"> </span><span class="n">ADBC_VERSION_1_1_0</span><span
class="p">,</span><span class="w"> </span><span class="o">&</span><span
class="n">driver</span><span class="p">,</span><span class="w"> </span><span
class="o">&</span><span class="n">error</span><span class="p">);</span>
<span class="c1">// if status != ADBC_STATUS_OK then handle the error</span>
-
-<span class="c1">// or use the Driver Manager as a driver itself</span>
-<span class="k">struct</span><span class="w"> </span><span
class="nc">AdbcDatabase</span><span class="w"> </span><span
class="n">database</span><span class="p">;</span>
-<span class="k">struct</span><span class="w"> </span><span
class="nc">AdbcError</span><span class="w"> </span><span
class="n">error</span><span class="p">;</span>
-<span class="n">std</span><span class="o">::</span><span
class="n">memset</span><span class="p">(</span><span
class="o">&</span><span class="n">database</span><span
class="p">,</span><span class="w"> </span><span class="mi">0</span><span
class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span
class="p">(</span><span class="n">database</span><span class="p">));</span>
-<span class="n">std</span><span class="o">::</span><span
class="n">memset</span><span class="p">(</span><span
class="o">&</span><span class="n">error</span><span class="p">,</span><span
class="w"> </span><span class="mi">0</span><span class="p">,</span><span
class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span
class="n">error</span><span class="p">));</span>
-<span class="k">auto</span><span class="w"> </span><span
class="n">status</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">AdbcDatabaseNew</span><span
class="p">(</span><span class="o">&</span><span
class="n">database</span><span class="p">,</span><span class="w"> </span><span
class="o">&</span><span class="n">error</span><span class="p">);</span>
-<span class="c1">// check status</span>
-<span class="n">status</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">AdbcDatabaseSetOption</span><span class="p">(</span><span
class="o">&</span><span class="n">database</span><span
class="p">,</span><span class="w"> </span><span
class="s">"driver"</span><span class="p">,</span><span class="w">
</span><span class="s">"/path/to/libadbc_driver.so"</span><span
class="p">,</span><span class="w"> </span><span class="o">&a [...]
-<span class="c1">// check status</span>
</pre></div>
</div>
</div>
@@ -550,13 +553,13 @@ Rust</label><div class="sd-tab-content docutils">
prefer to use <code class="docutils literal notranslate"><span
class="pre">LD_LIBRARY_PATH</span></code> (or similar, depending on your
operating
system) and specify just the filename (i.e., <code class="docutils literal
notranslate"><span class="pre">libadbc_driver.so</span></code> instead of
<code class="docutils literal notranslate"><span
class="pre">/path/to/libadbc_driver.so</span></code>.</p>
-<p>However, the requirement to having the path to the dynamic library or
having it
+<p>However, the requirement of having the path to the dynamic library or
having it
on your <code class="docutils literal notranslate"><span
class="pre">LD_LIBRARY_PATH</span></code> can prove difficult for ensuring
security, reproducibility,
and ease of use. For this reason, there is the concept of a driver
manifest.</p>
</section>
<section id="driver-manifests">
<h2>Driver Manifests<a class="headerlink" href="#driver-manifests" title="Link
to this heading">¶</a></h2>
-<p>A <code class="docutils literal notranslate"><span
class="pre">driver</span> <span class="pre">manifest</span></code> is a <a
class="reference external" href="https://toml.io/en/">TOML</a> file that
contains both metadata about the driver along with the location
+<p>A <a class="reference internal"
href="../glossary.html#term-driver-manifest"><span class="xref std
std-term">driver manifest</span></a> is a <a class="reference external"
href="https://toml.io/en/">TOML</a> file that contains both metadata about the
driver along with the location
of the shared library to load. The driver manager can then locate the
manifest and use it to load the
driver if it was given the shared library path directly. This allows for more
portable installations of
drivers, and sharing of configurations. Tools can even be created and written
to automatically manage driver
@@ -811,7 +814,7 @@ Ruby</label><div class="sd-tab-content docutils">
<li><p><code class="docutils literal notranslate"><span
class="pre">ADBC::LoadFlags::DEFAULT</span></code> - default value with all
flags set</p></li>
</ul>
<p>These can be provided by using <code class="docutils literal
notranslate"><span class="pre">ADBC::Database#load_flags=</span></code>.
-Passing the option <code class="docutils literal notranslate"><span
class="pre">load_flags</span></code> as an option to <code class="docutils
literal notranslate"><span class="pre">AdbcDatabase</span></code> (or via <code
class="docutils literal notranslate"><span class="pre">db_kwargs</span></code>
in <code class="docutils literal notranslate"><span
class="pre">adbc_driver_qmanager.dbapi.connect</span></code>) will
+Passing the option <code class="docutils literal notranslate"><span
class="pre">load_flags</span></code> as an option to <code class="docutils
literal notranslate"><span class="pre">AdbcDatabase</span></code> (or via <code
class="docutils literal notranslate"><span class="pre">db_kwargs</span></code>
in <code class="docutils literal notranslate"><span
class="pre">adbc_driver_manager.dbapi.connect</span></code>) will
allow you to control the directories to be searched by using the value of the
option as the bitmask for the load flag desired.</p>
</div>
<input id="sd-tab-item-13" name="sd-tab-set-1" type="radio">
@@ -834,14 +837,11 @@ the type <code class="docutils literal notranslate"><span
class="pre">adbc_core:
<p>For Unix-like platforms, (e.g. Linux, macOS), the driver manager will
search the following directories based on the options provided, in
the given order:</p>
<ol class="arabic simple">
-<li><p>If the <code class="docutils literal notranslate"><span
class="pre">LOAD_FLAG_SEARCH_ENV</span></code> load option is set, then the
paths in the environment variable <code class="docutils literal
notranslate"><span class="pre">ADBC_DRIVER_PATH</span></code> will be
searched</p></li>
-</ol>
-<blockquote>
-<div><ul class="simple">
+<li><p>If the <code class="docutils literal notranslate"><span
class="pre">LOAD_FLAG_SEARCH_ENV</span></code> load option is set, then the
paths in the environment variable <code class="docutils literal
notranslate"><span class="pre">ADBC_DRIVER_PATH</span></code> will be
searched</p>
+<ul class="simple">
<li><p><code class="docutils literal notranslate"><span
class="pre">ADBC_DRIVER_PATH</span></code> is a colon-separated list of
directories</p></li>
</ul>
-</div></blockquote>
-<ol class="arabic simple">
+</li>
<li><p>If additional search paths have been specified, those will be
searched</p>
<ul class="simple">
<li><p>The Python driver manager automatically adds <code class="docutils
literal notranslate"><span
class="pre">$VIRTUAL_ENV/etc/adbc/drivers</span></code> to the search paths
when running in a <code class="docutils literal notranslate"><span
class="pre">venv</span></code> virtual environment</p></li>
@@ -868,14 +868,11 @@ will search <code class="docutils literal
notranslate"><span class="pre">$XDG_CO
<p>Things are slightly different on Windows, where the driver manager will
also search for driver information in the registry just as
would happen for ODBC drivers. The search for a manifest on Windows would be
the following:</p>
<ol class="arabic simple">
-<li><p>If the <code class="docutils literal notranslate"><span
class="pre">LOAD_FLAG_SEARCH_ENV</span></code> load option is set, then the
paths in the environment variable <code class="docutils literal
notranslate"><span class="pre">ADBC_DRIVER_PATH</span></code> will be
searched</p></li>
-</ol>
-<blockquote>
-<div><ul class="simple">
+<li><p>If the <code class="docutils literal notranslate"><span
class="pre">LOAD_FLAG_SEARCH_ENV</span></code> load option is set, then the
paths in the environment variable <code class="docutils literal
notranslate"><span class="pre">ADBC_DRIVER_PATH</span></code> will be
searched</p>
+<ul class="simple">
<li><p><code class="docutils literal notranslate"><span
class="pre">ADBC_DRIVER_PATH</span></code> is a semicolon-separated list of
directories</p></li>
</ul>
-</div></blockquote>
-<ol class="arabic simple">
+</li>
<li><p>If additional search paths have been specified, those will be
searched</p>
<ul class="simple">
<li><p>The Python driver manager automatically adds <code class="docutils
literal notranslate"><span
class="pre">$VIRTUAL_ENV\etc\adbc\drivers</span></code> to the search paths
when running in a <code class="docutils literal notranslate"><span
class="pre">venv</span></code> virtual environment</p></li>
diff --git a/main/genindex.html b/main/genindex.html
index 96c9ca4eb..dc5645fdd 100644
--- a/main/genindex.html
+++ b/main/genindex.html
@@ -864,6 +864,8 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a
href="python/api/adbc_driver_sqlite.html#adbc_driver_sqlite.dbapi.AdbcSqliteConnection.enable_load_extension">enable_load_extension()
(adbc_driver_sqlite.dbapi.AdbcSqliteConnection method)</a>
+</li>
+ <li><a
href="glossary.html#term-entrypoint"><strong>entrypoint</strong></a>
</li>
<li><a
href="python/api/adbc_driver_manager.html#adbc_driver_manager.Error">Error</a>
</li>
diff --git a/main/glossary.html b/main/glossary.html
index 69da97e23..3b5394281 100644
--- a/main/glossary.html
+++ b/main/glossary.html
@@ -439,6 +439,11 @@ is part of the ADBC <a class="reference internal"
href="format/specification.htm
<a class="reference internal" href="#term-driver-manager"><span class="xref
std std-term">driver manager</span></a> can load a driver from a which
simplifies the
process for users.</p>
</dd>
+<dt id="term-entrypoint">entrypoint<a class="headerlink"
href="#term-entrypoint" title="Link to this term">¶</a></dt><dd><p>The name of
a function exported by a driver that the <a class="reference internal"
href="#term-driver-manager"><span class="xref std std-term">driver
manager</span></a>
+calls when a driver is loaded to perform any initialization required by the
+driver. The name follows a convention which is outlined in
+<a class="reference external"
href="https://arrow.apache.org/adbc/main/cpp/api/group__adbc-driver.html#ga5fb0507a84a8d440448d1c6b5cb0d1db"
title="(in ADBC C vversion)"><code class="xref c c-type docutils literal
notranslate"><span class="pre">AdbcDriverInitFunc</span></code></a> but another
name may be used.</p>
+</dd>
<dt id="term-statement">statement<a class="headerlink" href="#term-statement"
title="Link to this term">¶</a></dt><dd><p>In ADBC, the statement object/struct
holds state for executing a single
query. The query itself, bind parameters, result sets, and so on are all
tied to the statement. Multiple statements may be created from one
diff --git a/main/objects.inv b/main/objects.inv
index ab31780c4..0257c48f1 100644
Binary files a/main/objects.inv and b/main/objects.inv differ
diff --git a/main/r/adbcbigquery/pkgdown.yml b/main/r/adbcbigquery/pkgdown.yml
index 06a23d755..4468d5446 100644
--- a/main/r/adbcbigquery/pkgdown.yml
+++ b/main/r/adbcbigquery/pkgdown.yml
@@ -2,7 +2,7 @@ pandoc: 3.7.0.2
pkgdown: 2.1.3
pkgdown_sha: ~
articles: {}
-last_built: 2025-09-05T00:42Z
+last_built: 2025-09-05T04:02Z
urls:
reference: https://arrow.apache.org/adbc/current/r/adbcbigquery/reference
article: https://arrow.apache.org/adbc/current/r/adbcbigquery/articles
diff --git a/main/r/adbcdrivermanager/pkgdown.yml
b/main/r/adbcdrivermanager/pkgdown.yml
index 4a564cffa..ca88cc55b 100644
--- a/main/r/adbcdrivermanager/pkgdown.yml
+++ b/main/r/adbcdrivermanager/pkgdown.yml
@@ -2,7 +2,7 @@ pandoc: 3.7.0.2
pkgdown: 2.1.3
pkgdown_sha: ~
articles: {}
-last_built: 2025-09-05T00:42Z
+last_built: 2025-09-05T04:03Z
urls:
reference:
https://arrow.apache.org/adbc/current/r/adbcdrivermanager/reference
article: https://arrow.apache.org/adbc/current/r/adbcdrivermanager/articles
diff --git a/main/r/adbcdrivermanager/reference/adbc_connection_init.html
b/main/r/adbcdrivermanager/reference/adbc_connection_init.html
index d8a7efa98..1c1190b42 100644
--- a/main/r/adbcdrivermanager/reference/adbc_connection_init.html
+++ b/main/r/adbcdrivermanager/reference/adbc_connection_init.html
@@ -105,9 +105,9 @@ finer-grained control over behaviour at the R
level.</p></dd>
<h2 id="ref-examples">Examples<a class="anchor" aria-label="anchor"
href="#ref-examples"></a></h2>
<div class="sourceCode"><pre class="sourceCode r"><code><span
class="r-in"><span><span class="va">db</span> <span class="op"><-</span>
<span class="fu"><a
href="adbc_database_init.html">adbc_database_init</a></span><span
class="op">(</span><span class="fu"><a
href="adbc_driver_void.html">adbc_driver_void</a></span><span
class="op">(</span><span class="op">)</span><span
class="op">)</span></span></span>
<span class="r-in"><span><span class="fu">adbc_connection_init</span><span
class="op">(</span><span class="va">db</span><span
class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#></span> <adbc_connection at
0x55bd07529830> </span>
+<span class="r-out co"><span class="r-pr">#></span> <adbc_connection at
0x5617fd2aea40> </span>
<span class="r-out co"><span class="r-pr">#></span> List of 1</span>
-<span class="r-out co"><span class="r-pr">#></span> $
database:<adbc_database at 0x55bd06598b40> </span>
+<span class="r-out co"><span class="r-pr">#></span> $
database:<adbc_database at 0x5617fd2b3f50> </span>
<span class="r-out co"><span class="r-pr">#></span> List of 1</span>
<span class="r-out co"><span class="r-pr">#></span> ..$
driver:<adbc_driver_void> List of 4</span>
<span class="r-out co"><span class="r-pr">#></span> .. ..$ load_flags
: int 15</span>
diff --git a/main/r/adbcdrivermanager/reference/adbc_database_init.html
b/main/r/adbcdrivermanager/reference/adbc_database_init.html
index be2821c25..0befb2b10 100644
--- a/main/r/adbcdrivermanager/reference/adbc_database_init.html
+++ b/main/r/adbcdrivermanager/reference/adbc_database_init.html
@@ -104,7 +104,7 @@ finer-grained control over behaviour at the R
level.</p></dd>
<div class="section level2">
<h2 id="ref-examples">Examples<a class="anchor" aria-label="anchor"
href="#ref-examples"></a></h2>
<div class="sourceCode"><pre class="sourceCode r"><code><span
class="r-in"><span><span class="fu">adbc_database_init</span><span
class="op">(</span><span class="fu"><a
href="adbc_driver_void.html">adbc_driver_void</a></span><span
class="op">(</span><span class="op">)</span><span
class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#></span> <adbc_database at
0x55bd072beec0> </span>
+<span class="r-out co"><span class="r-pr">#></span> <adbc_database at
0x5617fd2ab590> </span>
<span class="r-out co"><span class="r-pr">#></span> List of 1</span>
<span class="r-out co"><span class="r-pr">#></span> $
driver:<adbc_driver_void> List of 4</span>
<span class="r-out co"><span class="r-pr">#></span> ..$ load_flags :
int 15</span>
diff --git a/main/r/adbcdrivermanager/reference/adbc_statement_init.html
b/main/r/adbcdrivermanager/reference/adbc_statement_init.html
index abe496a4a..a6a3ab1d0 100644
--- a/main/r/adbcdrivermanager/reference/adbc_statement_init.html
+++ b/main/r/adbcdrivermanager/reference/adbc_statement_init.html
@@ -106,11 +106,11 @@ finer-grained control over behaviour at the R
level.</p></dd>
<div class="sourceCode"><pre class="sourceCode r"><code><span
class="r-in"><span><span class="va">db</span> <span class="op"><-</span>
<span class="fu"><a
href="adbc_database_init.html">adbc_database_init</a></span><span
class="op">(</span><span class="fu"><a
href="adbc_driver_void.html">adbc_driver_void</a></span><span
class="op">(</span><span class="op">)</span><span
class="op">)</span></span></span>
<span class="r-in"><span><span class="va">con</span> <span
class="op"><-</span> <span class="fu"><a
href="adbc_connection_init.html">adbc_connection_init</a></span><span
class="op">(</span><span class="va">db</span><span
class="op">)</span></span></span>
<span class="r-in"><span><span class="fu">adbc_statement_init</span><span
class="op">(</span><span class="va">con</span><span
class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#></span> <adbc_statement at
0x55bd06b58600> </span>
+<span class="r-out co"><span class="r-pr">#></span> <adbc_statement at
0x5617fce80050> </span>
<span class="r-out co"><span class="r-pr">#></span> List of 1</span>
-<span class="r-out co"><span class="r-pr">#></span> $
connection:<adbc_connection at 0x55bd072265b0> </span>
+<span class="r-out co"><span class="r-pr">#></span> $
connection:<adbc_connection at 0x5617fd239ad0> </span>
<span class="r-out co"><span class="r-pr">#></span> List of 1</span>
-<span class="r-out co"><span class="r-pr">#></span> ..$
database:<adbc_database at 0x55bd07371d20> </span>
+<span class="r-out co"><span class="r-pr">#></span> ..$
database:<adbc_database at 0x5617fd0fd020> </span>
<span class="r-out co"><span class="r-pr">#></span> List of 1</span>
<span class="r-out co"><span class="r-pr">#></span> .. ..$
driver:<adbc_driver_void> List of 4</span>
<span class="r-out co"><span class="r-pr">#></span> .. .. ..$ load_flags
: int 15</span>
diff --git a/main/r/adbcdrivermanager/search.json
b/main/r/adbcdrivermanager/search.json
index 9d124227e..ce2e24be1 100644
--- a/main/r/adbcdrivermanager/search.json
+++ b/main/r/adbcdrivermanager/search.json
@@ -1 +1 @@
-[{"path":"https://arrow.apache.org/adbc/current/r/adbcdrivermanager/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"Apache
License","title":"Apache License","text":"Version 2.0, January 2004
<http://www.apache.org/licenses/>","code":""},{"path":[]},{"path":"https://arrow.apache.org/adbc/current/r/adbcdrivermanager/LICENSE.html","id":"id_1-definitions","dir":"","previous_headings":"Terms
and Conditions for use, reproduction, and distribution","what":"1.
Definitions","title [...]
+[{"path":"https://arrow.apache.org/adbc/current/r/adbcdrivermanager/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"Apache
License","title":"Apache License","text":"Version 2.0, January 2004
<http://www.apache.org/licenses/>","code":""},{"path":[]},{"path":"https://arrow.apache.org/adbc/current/r/adbcdrivermanager/LICENSE.html","id":"id_1-definitions","dir":"","previous_headings":"Terms
and Conditions for use, reproduction, and distribution","what":"1.
Definitions","title [...]
diff --git a/main/r/adbcflightsql/pkgdown.yml b/main/r/adbcflightsql/pkgdown.yml
index 4a36b1487..8f2ecd471 100644
--- a/main/r/adbcflightsql/pkgdown.yml
+++ b/main/r/adbcflightsql/pkgdown.yml
@@ -2,7 +2,7 @@ pandoc: 3.7.0.2
pkgdown: 2.1.3
pkgdown_sha: ~
articles: {}
-last_built: 2025-09-05T00:42Z
+last_built: 2025-09-05T04:03Z
urls:
reference: https://arrow.apache.org/adbc/current/r/adbcflightsql/reference
article: https://arrow.apache.org/adbc/current/r/adbcflightsql/articles
diff --git a/main/r/adbcpostgresql/pkgdown.yml
b/main/r/adbcpostgresql/pkgdown.yml
index 488c9cdc6..797f96d8d 100644
--- a/main/r/adbcpostgresql/pkgdown.yml
+++ b/main/r/adbcpostgresql/pkgdown.yml
@@ -2,7 +2,7 @@ pandoc: 3.7.0.2
pkgdown: 2.1.3
pkgdown_sha: ~
articles: {}
-last_built: 2025-09-05T00:42Z
+last_built: 2025-09-05T04:03Z
urls:
reference: https://arrow.apache.org/adbc/current/r/adbcpostgresql/reference
article: https://arrow.apache.org/adbc/current/r/adbcpostgresql/articles
diff --git a/main/r/adbcsnowflake/pkgdown.yml b/main/r/adbcsnowflake/pkgdown.yml
index bd327ee92..c3c248bcf 100644
--- a/main/r/adbcsnowflake/pkgdown.yml
+++ b/main/r/adbcsnowflake/pkgdown.yml
@@ -2,7 +2,7 @@ pandoc: 3.7.0.2
pkgdown: 2.1.3
pkgdown_sha: ~
articles: {}
-last_built: 2025-09-05T00:42Z
+last_built: 2025-09-05T04:02Z
urls:
reference: https://arrow.apache.org/adbc/current/r/adbcsnowflake/reference
article: https://arrow.apache.org/adbc/current/r/adbcsnowflake/articles
diff --git a/main/r/adbcsqlite/pkgdown.yml b/main/r/adbcsqlite/pkgdown.yml
index 26f8b2baf..2c30b979d 100644
--- a/main/r/adbcsqlite/pkgdown.yml
+++ b/main/r/adbcsqlite/pkgdown.yml
@@ -2,7 +2,7 @@ pandoc: 3.7.0.2
pkgdown: 2.1.3
pkgdown_sha: ~
articles: {}
-last_built: 2025-09-05T00:42Z
+last_built: 2025-09-05T04:02Z
urls:
reference: https://arrow.apache.org/adbc/current/r/adbcsqlite/reference
article: https://arrow.apache.org/adbc/current/r/adbcsqlite/articles
diff --git a/main/searchindex.js b/main/searchindex.js
index ac16f9c61..781cd2433 100644
--- a/main/searchindex.js
+++ b/main/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"ADBC API Standard":[[26,null]],"ADBC Driver
Manager and Manifests":[[23,null]],"API
Reference":[[3,"api-reference"],[31,"api-reference"],[41,"api-reference"],[50,"api-reference"]],"And
then what is the \u201cADBC JDBC
driver\u201d?":[[21,"and-then-what-is-the-adbc-jdbc-driver"]],"Apache Arrow
ADBC":[[29,null]],"Arrow type to PostgreSQL type
mapping":[[17,"id5"]],"Authenticate with a username and
password":[[47,"authenticate-with-a-username-and-password"]]," [...]
\ No newline at end of file
+Search.setIndex({"alltitles":{"ADBC API Standard":[[26,null]],"ADBC Driver
Manager and Manifests":[[23,null]],"API
Reference":[[3,"api-reference"],[31,"api-reference"],[41,"api-reference"],[50,"api-reference"]],"And
then what is the \u201cADBC JDBC
driver\u201d?":[[21,"and-then-what-is-the-adbc-jdbc-driver"]],"Apache Arrow
ADBC":[[29,null]],"Arrow type to PostgreSQL type
mapping":[[17,"id5"]],"Authenticate with a username and
password":[[47,"authenticate-with-a-username-and-password"]]," [...]
\ No newline at end of file