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