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 b2ebc98c3 publish documentation b2ebc98c3 is described below commit b2ebc98c31b40a7a473b7c2ef06805cd4cb7828d Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com> AuthorDate: Fri Sep 5 00:43:05 2025 +0000 publish documentation --- main/_sources/cpp/driver_manager.rst.txt | 5 +- main/_sources/driver/installation.rst.txt | 2 +- main/_sources/glossary.rst.txt | 31 ++++++-- main/_sources/java/driver_manager.rst.txt | 2 + main/_sources/python/driver_manager.rst.txt | 69 +++++++++++------ main/_sources/python/quickstart.rst.txt | 4 +- main/_sources/rust/driver_manager.rst.txt | 24 +++--- main/cpp/driver_manager.html | 9 +-- main/driver/installation.html | 2 +- main/genindex.html | 6 +- main/glossary.html | 29 ++++++-- main/java/driver_manager.html | 5 +- main/objects.inv | Bin 4017 -> 4028 bytes main/python/driver_manager.html | 82 +++++++++++++-------- main/python/quickstart.html | 8 +- 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/rust/driver_manager.html | 28 +++---- main/searchindex.js | 2 +- 27 files changed, 201 insertions(+), 133 deletions(-) diff --git a/main/_sources/cpp/driver_manager.rst.txt b/main/_sources/cpp/driver_manager.rst.txt index ed02ec532..002e8bc20 100644 --- a/main/_sources/cpp/driver_manager.rst.txt +++ b/main/_sources/cpp/driver_manager.rst.txt @@ -19,10 +19,7 @@ Driver Manager ============== -The driver manager is a library that implements the ADBC API by -delegating to dynamically-loaded drivers. This allows applications to -use multiple drivers simultaneously, and decouple themselves from the -specific driver. +This document describes the installation and usage of the C++ :term:`driver manager`. Installation ============ diff --git a/main/_sources/driver/installation.rst.txt b/main/_sources/driver/installation.rst.txt index 7e86676b2..de31e9e21 100644 --- a/main/_sources/driver/installation.rst.txt +++ b/main/_sources/driver/installation.rst.txt @@ -128,7 +128,7 @@ Python Install the appropriate driver package. -.. note:: To use the DBAPI interface, ``pyarrow`` is also required. +.. note:: To use the DBAPI interface, either ``pyarrow`` or ``polars`` must be installed. For example, from PyPI: diff --git a/main/_sources/glossary.rst.txt b/main/_sources/glossary.rst.txt index 0f57675ef..3441201f6 100644 --- a/main/_sources/glossary.rst.txt +++ b/main/_sources/glossary.rst.txt @@ -45,16 +45,31 @@ Glossary PostgreSQL wire protocol. The JDBC PostgreSQL driver uses the same wire protocol, but exposes the JDBC client API instead. + ADBC drivers can be implemented as libraries in different languages + including C++, C#, Go, and Rust. A driver can be imported directly into an + application that's implemented in the same language, or it can be compiled + into a shared library (a ``.so`` file for Linux, a ``.dylib`` file for + macOS, or a ``.dll`` file for Windows) and dynamically loaded into an + application in any supported language using a :term:`driver manager`. + driver manager - A library that helps manage multiple drivers for a given client API. - For example, the JDBC driver manager can find a appropriate driver - implementation for a database URI. + A library for loading and using :term:`drivers <driver>`. A driver manager + implements the ADBC API and delegates to dynamically-loaded drivers. It + simplifies using multiple drivers in a single application and makes it + possible to use drivers written in any language, regardless of the language + the application is written in. + + The driver manager in each language is similar. In C/C++, it can + dynamically load drivers so that applications do not have to directly link + to them. (Since all drivers expose the same API, their symbols would + collide otherwise.) In Python, it loads drivers and provides Python + bindings on top. - The ADBC driver manager in each language is similar. In C/C++, it can - dynamically load drivers so that applications do not have to directly - link to them. (Since all drivers expose the same API, their symbols - would collide otherwise.) In Python, it loads drivers and provides - Python bindings on top. + driver manifest + A file (in TOML format) describing a :term:`driver`. This file's structure + is part of the ADBC :doc:`specification <format/specification>`. A + :term:`driver manager` can load a driver from a which simplifies the + process for users. statement In ADBC, the statement object/struct holds state for executing a single diff --git a/main/_sources/java/driver_manager.rst.txt b/main/_sources/java/driver_manager.rst.txt index 3f31421e4..5ff360cf5 100644 --- a/main/_sources/java/driver_manager.rst.txt +++ b/main/_sources/java/driver_manager.rst.txt @@ -19,6 +19,8 @@ Driver Manager ============== +This document describes the installation of the Java :term:`driver manager`. + Installation ============ diff --git a/main/_sources/python/driver_manager.rst.txt b/main/_sources/python/driver_manager.rst.txt index ee951f038..c81b194fd 100644 --- a/main/_sources/python/driver_manager.rst.txt +++ b/main/_sources/python/driver_manager.rst.txt @@ -21,15 +21,11 @@ Driver Manager ============== -The driver manager is a library that provides bindings to the ADBC C -API. It delegates to dynamically-loaded drivers. This allows -applications to use multiple drivers simultaneously, and decouple -themselves from the specific driver. +The ``adbc_driver_manager`` package provides a :term:`driver manager` interface +for Python. The package provides two APIs: -The Python driver manager provides both low-level bindings that are -essentially the same as the C API. If PyArrow is installed, it also -provides high-level bindings that implement the DBAPI_ (PEP 249) -standard. +1. Low-level bindings that are essentially the same as the :doc:`C API <../format/specification>`. +2. If PyArrow or Polars are installed, a DBAPI_ (PEP 249) compliant interface. .. _DBAPI: https://peps.python.org/pep-0249/ @@ -43,34 +39,59 @@ Installation Usage ===== -.. warning:: This API is for low level usage only. **You almost certainly - should not use this**, instead use the entrypoints provided by - driver packages, for example: +The driver manager is different from the individual, driver-specific packages +such as ``adbc_driver_postgresql``. - - :func:`adbc_driver_sqlite.dbapi.connect` - - :func:`adbc_driver_sqlite.connect` +With the driver-specific packages, you connect to the target database with the +``connect`` method provided by the package you're using. For example, +:func:`adbc_driver_postgresql.connect` or :func:`adbc_driver_sqlite.connect`. +The driver shared library is bundled with the respective package and loaded +invisibly for the user. -The Python bindings for each driver abstract the steps here for you behind a -convenient ``connect`` function. For example, prefer -:func:`adbc_driver_sqlite.connect` or :func:`adbc_driver_postgresql.connect` -to manually constructing the connection as demonstrated here. +With the driver manager package, you use a single package and API regardless of +the database you're connecting to. However, the user must install the driver for +their database as a separate step. :term:`Driver manifests <driver manifest>` +are a first step in making this experience better for users but more work is +planned to make this as straightforward as using driver-specific packages. -To manually create a connection: first, create a :py:class:`AdbcDatabase`, -passing ``driver`` and (optionally) ``entrypoint``. ``driver`` must be the -name of a library to load, or the path to a library to load. ``entrypoint``, -if provided, should be the name of the symbol that serves as the ADBC -entrypoint (see :c:type:`AdbcDriverInitFunc`). Then, create a -:py:class:`AdbcConnection`. +Low-Level API +------------- + +First, create an :py:class:`AdbcDatabase`, passing ``driver`` and (optionally) +``entrypoint``. Then, create an :py:class:`AdbcConnection`. + +.. note:: See :doc:`../format/driver_manifests` for more information on what to pass as the ``driver`` argument and how the driver manager finds and loads drivers. .. code-block:: python import adbc_driver_manager - # You must build/locate the driver yourself + # Note: You must install the driver shared library (.so, .dylib, .dll) + # separately with adbc_driver_manager.AdbcDatabase(driver="PATH/TO/libadbc_driver_sqlite.so") as db: with adbc_driver_manager.AdbcConnection(db) as conn: pass +Connecting to a second database could be done in the same session using the same +code just with a different ``driver`` argument. + +DBAPI API +--------- + +Use the DBAPI_ API by calling the ``dbapi.connect`` method, passing ``driver`` +and (optionally) ``entrypoint``. These arguments work the same as with the +low-level API. + +.. code-block:: python + + from adbc_driver_manager import dbapi + + # Note: You must install the driver shared library (.so, .dylib, .dll) + # separately + with dbapi.connect(driver="PATH/TO/libadbc_driver_sqlite.so") as conn: + pass + + API Reference ============= diff --git a/main/_sources/python/quickstart.rst.txt b/main/_sources/python/quickstart.rst.txt index 834005dd8..9d6165f2d 100644 --- a/main/_sources/python/quickstart.rst.txt +++ b/main/_sources/python/quickstart.rst.txt @@ -31,8 +31,8 @@ Installation DBAPI (PEP 249)-style API ========================= -If PyArrow is installed, ADBC provides a high-level API in the style -of the DBAPI standard. +If either PyArrow or Polars are installed, ADBC provides a high-level API in the +style of the DBAPI standard. .. testcleanup:: dbapi diff --git a/main/_sources/rust/driver_manager.rst.txt b/main/_sources/rust/driver_manager.rst.txt index 7e0317c0d..3000fc6a0 100644 --- a/main/_sources/rust/driver_manager.rst.txt +++ b/main/_sources/rust/driver_manager.rst.txt @@ -19,36 +19,36 @@ Driver Manager ============== -The driver manager is a library that implements the ADBC API by delegating to -dynamically-loaded drivers. This allows applications to load drivers at -runtime, and use drivers that aren't necessarily written in Rust. It is -currently part of the adbc_core package, though we plan to split it into its -own package for users who don't want or need FFI. +This document describes the installation and usage of the Rust :term:`driver +manager` which is available in the ``adbc_driver_manager`` crate. Installation ============ .. code-block:: shell - cargo add adbc_core --features driver_manager + cargo add adbc_core adbc_driver_manager Usage ===== .. code-block:: rust - use adbc_core::{Connection, Database, Driver, Statement}; - use adbc_core::options::{AdbcVersion, OptionDatabase}; - use adbc_core::driver_manager::ManagedDriver; + use adbc_core::options::AdbcVersion; + use adbc_core::{Database, Driver}; + use adbc_driver_manager::ManagedDriver; // You must build/locate the driver yourself let mut driver = ManagedDriver::load_dynamic_from_filename( "/PATH/TO/libadbc_driver_sqlite.so", None, AdbcVersion::default(), - ).expect("Failed to load driver"); - let db = driver.new_database().expect("Failed to create database handle"); - let mut conn = db.new_connection().expect("Failed to create connection"); + ) + .expect("Failed to load driver"); + let db = driver + .new_database() + .expect("Failed to create database handle"); + let mut conn = db.new_connection().expect("Failed to create connection") API Reference ============= diff --git a/main/cpp/driver_manager.html b/main/cpp/driver_manager.html index d399a60cd..cd363836b 100644 --- a/main/cpp/driver_manager.html +++ b/main/cpp/driver_manager.html @@ -9,10 +9,10 @@ <meta property="og:type" content="website" /> <meta property="og:url" content="https://arrow.apache.org/adbc/main/cpp/driver_manager.html" /> <meta property="og:site_name" content="ADBC" /> -<meta property="og:description" content="The driver manager is a library that implements the ADBC API by delegating to dynamically-loaded drivers. This allows applications to use multiple drivers simultaneously, and decouple themselves fr..." /> +<meta property="og:description" content="This document describes the installation and usage of the C++ driver manager. Installation: Install the appropriate driver package. You can use conda-forge, apt or dnf. conda-forge: mamba install a..." /> <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 driver manager is a library that implements the ADBC API by delegating to dynamically-loaded drivers. This allows applications to use multiple drivers simultaneously, and decouple themselves fr..." /> +<meta name="description" content="This document describes the installation and usage of the C++ driver manager. Installation: Install the appropriate driver package. You can use conda-forge, apt or dnf. conda-forge: mamba install a..." /> <link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="Concurrency and Thread Safety" href="concurrency.html" /><link rel="prev" title="Quickstart" href="quickstart.html" /> <!-- Generated with Sphinx 8.3.0 and Furo 2024.08.06 --> @@ -397,10 +397,7 @@ <article role="main" id="furo-main-content"> <section id="driver-manager"> <h1>Driver Manager<a class="headerlink" href="#driver-manager" title="Link to this heading">¶</a></h1> -<p>The driver manager is a library that implements the ADBC API by -delegating to dynamically-loaded drivers. This allows applications to -use multiple drivers simultaneously, and decouple themselves from the -specific driver.</p> +<p>This document describes the installation and usage of the C++ <a class="reference internal" href="../glossary.html#term-driver-manager"><span class="xref std std-term">driver manager</span></a>.</p> <section id="installation"> <h2>Installation<a class="headerlink" href="#installation" title="Link to this heading">¶</a></h2> <p>Install the appropriate driver package. You can use <a class="reference external" href="https://conda-forge.org/">conda-forge</a>, <code class="docutils literal notranslate"><span class="pre">apt</span></code> or <code class="docutils literal notranslate"><span class="pre">dnf</span></code>.</p> diff --git a/main/driver/installation.html b/main/driver/installation.html index 63a30e4a9..3c410ffc7 100644 --- a/main/driver/installation.html +++ b/main/driver/installation.html @@ -493,7 +493,7 @@ sudo<span class="w"> </span>subscription-manager<span class="w"> </span>repos<sp <p>Install the appropriate driver package.</p> <div class="admonition note"> <p class="admonition-title">Note</p> -<p>To use the DBAPI interface, <code class="docutils literal notranslate"><span class="pre">pyarrow</span></code> is also required.</p> +<p>To use the DBAPI interface, either <code class="docutils literal notranslate"><span class="pre">pyarrow</span></code> or <code class="docutils literal notranslate"><span class="pre">polars</span></code> must be installed.</p> </div> <p>For example, from PyPI:</p> <ul class="simple"> diff --git a/main/genindex.html b/main/genindex.html index 85bc3237f..96c9ca4eb 100644 --- a/main/genindex.html +++ b/main/genindex.html @@ -818,10 +818,10 @@ </li> <li><a href="python/api/adbc_driver_manager.html#adbc_driver_manager.GetObjectsDepth.DB_SCHEMAS">DB_SCHEMAS (adbc_driver_manager.GetObjectsDepth attribute)</a> </li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> <li><a href="python/api/adbc_driver_bigquery.html#adbc_driver_bigquery.StatementOptions.DEFAULT_DATASET_ID">DEFAULT_DATASET_ID (adbc_driver_bigquery.StatementOptions attribute)</a> </li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> <li><a href="python/api/adbc_driver_bigquery.html#adbc_driver_bigquery.StatementOptions.DEFAULT_PROJECT_ID">DEFAULT_PROJECT_ID (adbc_driver_bigquery.StatementOptions attribute)</a> </li> <li><a href="python/api/adbc_driver_manager.html#adbc_driver_manager.dbapi.Cursor.description">description (adbc_driver_manager.dbapi.Cursor property)</a> @@ -844,6 +844,8 @@ <li><a href="python/recipe/driver_manager.html#index-1">prepared statements (recipe)</a> </li> </ul></li> + <li><a href="glossary.html#term-driver-manifest"><strong>driver manifest</strong></a> +</li> <li><a href="python/api/adbc_driver_bigquery.html#adbc_driver_bigquery.StatementOptions.DRY_RUN">DRY_RUN (adbc_driver_bigquery.StatementOptions attribute)</a> </li> <li> diff --git a/main/glossary.html b/main/glossary.html index 0af5b1419..69da97e23 100644 --- a/main/glossary.html +++ b/main/glossary.html @@ -416,15 +416,28 @@ connections.</p> the ADBC client API and interacts with a PostgreSQL database via the PostgreSQL wire protocol. The JDBC PostgreSQL driver uses the same wire protocol, but exposes the JDBC client API instead.</p> +<p>ADBC drivers can be implemented as libraries in different languages +including C++, C#, Go, and Rust. A driver can be imported directly into an +application that’s implemented in the same language, or it can be compiled +into a shared library (a <code class="docutils literal notranslate"><span class="pre">.so</span></code> file for Linux, a <code class="docutils literal notranslate"><span class="pre">.dylib</span></code> file for +macOS, or a <code class="docutils literal notranslate"><span class="pre">.dll</span></code> file for Windows) and dynamically loaded into an +application in any supported language using a <a class="reference internal" href="#term-driver-manager"><span class="xref std std-term">driver manager</span></a>.</p> </dd> -<dt id="term-driver-manager">driver manager<a class="headerlink" href="#term-driver-manager" title="Link to this term">¶</a></dt><dd><p>A library that helps manage multiple drivers for a given client API. -For example, the JDBC driver manager can find a appropriate driver -implementation for a database URI.</p> -<p>The ADBC driver manager in each language is similar. In C/C++, it can -dynamically load drivers so that applications do not have to directly -link to them. (Since all drivers expose the same API, their symbols -would collide otherwise.) In Python, it loads drivers and provides -Python bindings on top.</p> +<dt id="term-driver-manager">driver manager<a class="headerlink" href="#term-driver-manager" title="Link to this term">¶</a></dt><dd><p>A library for loading and using <a class="reference internal" href="#term-driver"><span class="xref std std-term">drivers</span></a>. A driver manager +implements the ADBC API and delegates to dynamically-loaded drivers. It +simplifies using multiple drivers in a single application and makes it +possible to use drivers written in any language, regardless of the language +the application is written in.</p> +<p>The driver manager in each language is similar. In C/C++, it can +dynamically load drivers so that applications do not have to directly link +to them. (Since all drivers expose the same API, their symbols would +collide otherwise.) In Python, it loads drivers and provides Python +bindings on top.</p> +</dd> +<dt id="term-driver-manifest">driver manifest<a class="headerlink" href="#term-driver-manifest" title="Link to this term">¶</a></dt><dd><p>A file (in TOML format) describing a <a class="reference internal" href="#term-driver"><span class="xref std std-term">driver</span></a>. This file’s structure +is part of the ADBC <a class="reference internal" href="format/specification.html"><span class="doc">specification</span></a>. A +<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-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 diff --git a/main/java/driver_manager.html b/main/java/driver_manager.html index 49d69f419..e2c37ba59 100644 --- a/main/java/driver_manager.html +++ b/main/java/driver_manager.html @@ -9,10 +9,10 @@ <meta property="og:type" content="website" /> <meta property="og:url" content="https://arrow.apache.org/adbc/main/java/driver_manager.html" /> <meta property="og:site_name" content="ADBC" /> -<meta property="og:description" content="Installation: To include the ADBC Driver Manager in your Maven project, add the following dependency: API Reference: See the API reference." /> +<meta property="og:description" content="This document describes the installation of the Java driver manager. Installation: To include the ADBC Driver Manager in your Maven project, add the following dependency: API Reference: See the API..." /> <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="Installation: To include the ADBC Driver Manager in your Maven project, add the following dependency: API Reference: See the API reference." /> +<meta name="description" content="This document describes the installation of the Java driver manager. Installation: To include the ADBC Driver Manager in your Maven project, add the following dependency: API Reference: See the API..." /> <link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="Java API Reference" href="api/index.html" /><link rel="prev" title="Quickstart" href="quickstart.html" /> <!-- Generated with Sphinx 8.3.0 and Furo 2024.08.06 --> @@ -397,6 +397,7 @@ <article role="main" id="furo-main-content"> <section id="driver-manager"> <h1>Driver Manager<a class="headerlink" href="#driver-manager" title="Link to this heading">¶</a></h1> +<p>This document describes the installation of the Java <a class="reference internal" href="../glossary.html#term-driver-manager"><span class="xref std std-term">driver manager</span></a>.</p> <section id="installation"> <h2>Installation<a class="headerlink" href="#installation" title="Link to this heading">¶</a></h2> <p>To include the ADBC Driver Manager in your Maven project, add the following dependency:</p> diff --git a/main/objects.inv b/main/objects.inv index a56cdb324..ab31780c4 100644 Binary files a/main/objects.inv and b/main/objects.inv differ diff --git a/main/python/driver_manager.html b/main/python/driver_manager.html index 1050b5e11..364aadb41 100644 --- a/main/python/driver_manager.html +++ b/main/python/driver_manager.html @@ -9,10 +9,10 @@ <meta property="og:type" content="website" /> <meta property="og:url" content="https://arrow.apache.org/adbc/main/python/driver_manager.html" /> <meta property="og:site_name" content="ADBC" /> -<meta property="og:description" content="The driver manager is a library that provides bindings to the ADBC C API. It delegates to dynamically-loaded drivers. This allows applications to use multiple drivers simultaneously, and decouple t..." /> +<meta property="og:description" content="The adbc_driver_manager package provides a driver manager interface for Python. The package provides two APIs: Low-level bindings that are essentially the same as the C API., If PyArrow or Polars a..." /> <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 driver manager is a library that provides bindings to the ADBC C API. It delegates to dynamically-loaded drivers. This allows applications to use multiple drivers simultaneously, and decouple t..." /> +<meta name="description" content="The adbc_driver_manager package provides a driver manager interface for Python. The package provides two APIs: Low-level bindings that are essentially the same as the C API., If PyArrow or Polars a..." /> <link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="Python API Reference" href="api/index.html" /><link rel="prev" title="Quickstart" href="quickstart.html" /> <!-- Generated with Sphinx 8.3.0 and Furo 2024.08.06 --> @@ -397,14 +397,12 @@ <article role="main" id="furo-main-content"> <section id="driver-manager"> <h1>Driver Manager<a class="headerlink" href="#driver-manager" title="Link to this heading">¶</a></h1> -<p>The driver manager is a library that provides bindings to the ADBC C -API. It delegates to dynamically-loaded drivers. This allows -applications to use multiple drivers simultaneously, and decouple -themselves from the specific driver.</p> -<p>The Python driver manager provides both low-level bindings that are -essentially the same as the C API. If PyArrow is installed, it also -provides high-level bindings that implement the <a class="reference external" href="https://peps.python.org/pep-0249/">DBAPI</a> (PEP 249) -standard.</p> +<p>The <code class="docutils literal notranslate"><span class="pre">adbc_driver_manager</span></code> package provides a <a class="reference internal" href="../glossary.html#term-driver-manager"><span class="xref std std-term">driver manager</span></a> interface +for Python. The package provides two APIs:</p> +<ol class="arabic simple"> +<li><p>Low-level bindings that are essentially the same as the <a class="reference internal" href="../format/specification.html"><span class="doc">C API</span></a>.</p></li> +<li><p>If PyArrow or Polars are installed, a <a class="reference external" href="https://peps.python.org/pep-0249/">DBAPI</a> (PEP 249) compliant interface.</p></li> +</ol> <section id="installation"> <h2>Installation<a class="headerlink" href="#installation" title="Link to this heading">¶</a></h2> <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>pip<span class="w"> </span>install<span class="w"> </span>adbc_driver_manager @@ -413,34 +411,52 @@ standard.</p> </section> <section id="usage"> <h2>Usage<a class="headerlink" href="#usage" title="Link to this heading">¶</a></h2> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>This API is for low level usage only. <strong>You almost certainly -should not use this</strong>, instead use the entrypoints provided by -driver packages, for example:</p> -<ul class="simple"> -<li><p><a class="reference internal" href="api/adbc_driver_sqlite.html#adbc_driver_sqlite.dbapi.connect" title="adbc_driver_sqlite.dbapi.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">adbc_driver_sqlite.dbapi.connect()</span></code></a></p></li> -<li><p><a class="reference internal" href="api/adbc_driver_sqlite.html#adbc_driver_sqlite.connect" title="adbc_driver_sqlite.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">adbc_driver_sqlite.connect()</span></code></a></p></li> -</ul> +<p>The driver manager is different from the individual, driver-specific packages +such as <code class="docutils literal notranslate"><span class="pre">adbc_driver_postgresql</span></code>.</p> +<p>With the driver-specific packages, you connect to the target database with the +<code class="docutils literal notranslate"><span class="pre">connect</span></code> method provided by the package you’re using. For example, +<a class="reference internal" href="api/adbc_driver_postgresql.html#adbc_driver_postgresql.connect" title="adbc_driver_postgresql.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">adbc_driver_postgresql.connect()</span></code></a> or <a class="reference internal" href="api/adbc_driver_sqlite.html#adbc_driver_sqlite.connect" title="adbc_driver_sqlite.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">adbc_driver_sqlite [...] +The driver shared library is bundled with the respective package and loaded +invisibly for the user.</p> +<p>With the driver manager package, you use a single package and API regardless of +the database you’re connecting to. However, the user must install the driver for +their database as a separate step. <a class="reference internal" href="../glossary.html#term-driver-manifest"><span class="xref std std-term">Driver manifests</span></a> +are a first step in making this experience better for users but more work is +planned to make this as straightforward as using driver-specific packages.</p> +<section id="low-level-api"> +<h3>Low-Level API<a class="headerlink" href="#low-level-api" title="Link to this heading">¶</a></h3> +<p>First, create an <a class="reference internal" href="api/adbc_driver_manager.html#adbc_driver_manager.AdbcDatabase" title="adbc_driver_manager.AdbcDatabase"><code class="xref py py-class docutils literal notranslate"><span class="pre">AdbcDatabase</span></code></a>, passing <code class="docutils literal notranslate"><span class="pre">driver</span></code> and (optionally) +<code class="docutils literal notranslate"><span class="pre">entrypoint</span></code>. Then, create an <a class="reference internal" href="api/adbc_driver_manager.html#adbc_driver_manager.AdbcConnection" title="adbc_driver_manager.AdbcConnection"><code class="xref py py-class docutils literal notranslate"><span class="pre">AdbcConnection</span></code></a>.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>See <a class="reference internal" href="../format/driver_manifests.html"><span class="doc">ADBC Driver Manager and Manifests</span></a> for more information on what to pass as the <code class="docutils literal notranslate"><span class="pre">driver</span></code> argument and how the driver manager finds and loads drivers.</p> </div> -<p>The Python bindings for each driver abstract the steps here for you behind a -convenient <code class="docutils literal notranslate"><span class="pre">connect</span></code> function. For example, prefer -<a class="reference internal" href="api/adbc_driver_sqlite.html#adbc_driver_sqlite.connect" title="adbc_driver_sqlite.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">adbc_driver_sqlite.connect()</span></code></a> or <a class="reference internal" href="api/adbc_driver_postgresql.html#adbc_driver_postgresql.connect" title="adbc_driver_postgresql.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">adbc_driver_postgresql [...] -to manually constructing the connection as demonstrated here.</p> -<p>To manually create a connection: first, create a <a class="reference internal" href="api/adbc_driver_manager.html#adbc_driver_manager.AdbcDatabase" title="adbc_driver_manager.AdbcDatabase"><code class="xref py py-class docutils literal notranslate"><span class="pre">AdbcDatabase</span></code></a>, -passing <code class="docutils literal notranslate"><span class="pre">driver</span></code> and (optionally) <code class="docutils literal notranslate"><span class="pre">entrypoint</span></code>. <code class="docutils literal notranslate"><span class="pre">driver</span></code> must be the -name of a library to load, or the path to a library to load. <code class="docutils literal notranslate"><span class="pre">entrypoint</span></code>, -if provided, should be the name of the symbol that serves as the ADBC -entrypoint (see <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>). Then, create a -<a class="reference internal" href="api/adbc_driver_manager.html#adbc_driver_manager.AdbcConnection" title="adbc_driver_manager.AdbcConnection"><code class="xref py py-class docutils literal notranslate"><span class="pre">AdbcConnection</span></code></a>.</p> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">adbc_driver_manager</span> -<span class="c1"># You must build/locate the driver yourself</span> +<span class="c1"># Note: You must install the driver shared library (.so, .dylib, .dll)</span> +<span class="c1"># separately</span> <span class="k">with</span> <span class="n">adbc_driver_manager</span><span class="o">.</span><span class="n">AdbcDatabase</span><span class="p">(</span><span class="n">driver</span><span class="o">=</span><span class="s2">"PATH/TO/libadbc_driver_sqlite.so"</span><span class="p">)</span> <span class="k">as</span> <span class="n">db</span><span class="p">:</span> <span class="k">with</span> <span class="n">adbc_driver_manager</span><span class="o">.</span><span class="n">AdbcConnection</span><span class="p">(</span><span class="n">db</span><span class="p">)</span> <span class="k">as</span> <span class="n">conn</span><span class="p">:</span> <span class="k">pass</span> </pre></div> </div> +<p>Connecting to a second database could be done in the same session using the same +code just with a different <code class="docutils literal notranslate"><span class="pre">driver</span></code> argument.</p> +</section> +<section id="dbapi-api"> +<h3>DBAPI API<a class="headerlink" href="#dbapi-api" title="Link to this heading">¶</a></h3> +<p>Use the <a class="reference external" href="https://peps.python.org/pep-0249/">DBAPI</a> API by calling the <code class="docutils literal notranslate"><span class="pre">dbapi.connect</span></code> method, passing <code class="docutils literal notranslate"><span class="pre">driver</span></code> +and (optionally) <code class="docutils literal notranslate"><span class="pre">entrypoint</span></code>. These arguments work the same as with the +low-level API.</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">adbc_driver_manager</span><span class="w"> </span><span class="kn">import</span> <span class="n">dbapi</span> + +<span class="c1"># Note: You must install the driver shared library (.so, .dylib, .dll)</span> +<span class="c1"># separately</span> +<span class="k">with</span> <span class="n">dbapi</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">driver</span><span class="o">=</span><span class="s2">"PATH/TO/libadbc_driver_sqlite.so"</span><span class="p">)</span> <span class="k">as</span> <span class="n">conn</span><span class="p">:</span> + <span class="k">pass</span> +</pre></div> +</div> +</section> </section> <section id="api-reference"> <h2>API Reference<a class="headerlink" href="#api-reference" title="Link to this heading">¶</a></h2> @@ -508,7 +524,11 @@ United States and other countries. <ul> <li><a class="reference internal" href="#">Driver Manager</a><ul> <li><a class="reference internal" href="#installation">Installation</a></li> -<li><a class="reference internal" href="#usage">Usage</a></li> +<li><a class="reference internal" href="#usage">Usage</a><ul> +<li><a class="reference internal" href="#low-level-api">Low-Level API</a></li> +<li><a class="reference internal" href="#dbapi-api">DBAPI API</a></li> +</ul> +</li> <li><a class="reference internal" href="#api-reference">API Reference</a></li> </ul> </li> diff --git a/main/python/quickstart.html b/main/python/quickstart.html index 26c4e4e4a..c968588a5 100644 --- a/main/python/quickstart.html +++ b/main/python/quickstart.html @@ -9,10 +9,10 @@ <meta property="og:type" content="website" /> <meta property="og:url" content="https://arrow.apache.org/adbc/main/python/quickstart.html" /> <meta property="og:site_name" content="ADBC" /> -<meta property="og:description" content="Here we’ll briefly tour basic features of ADBC with the SQLite driver. Installation: DBAPI (PEP 249)-style API: If PyArrow is installed, ADBC provides a high-level API in the style of the DBAPI sta..." /> +<meta property="og:description" content="Here we’ll briefly tour basic features of ADBC with the SQLite driver. Installation: DBAPI (PEP 249)-style API: If either PyArrow or Polars are installed, ADBC provides a high-level API in the styl..." /> <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="Here we’ll briefly tour basic features of ADBC with the SQLite driver. Installation: DBAPI (PEP 249)-style API: If PyArrow is installed, ADBC provides a high-level API in the style of the DBAPI sta..." /> +<meta name="description" content="Here we’ll briefly tour basic features of ADBC with the SQLite driver. Installation: DBAPI (PEP 249)-style API: If either PyArrow or Polars are installed, ADBC provides a high-level API in the styl..." /> <link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="Driver Manager" href="driver_manager.html" /><link rel="prev" title="Python" href="index.html" /> <!-- Generated with Sphinx 8.3.0 and Furo 2024.08.06 --> @@ -406,8 +406,8 @@ </section> <section id="dbapi-pep-249-style-api"> <h2>DBAPI (PEP 249)-style API<a class="headerlink" href="#dbapi-pep-249-style-api" title="Link to this heading">¶</a></h2> -<p>If PyArrow is installed, ADBC provides a high-level API in the style -of the DBAPI standard.</p> +<p>If either PyArrow or Polars are installed, ADBC provides a high-level API in the +style of the DBAPI standard.</p> <section id="creating-a-connection"> <h3>Creating a Connection<a class="headerlink" href="#creating-a-connection" title="Link to this heading">¶</a></h3> <div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">adbc_driver_sqlite.dbapi</span> diff --git a/main/r/adbcbigquery/pkgdown.yml b/main/r/adbcbigquery/pkgdown.yml index 880d96b42..06a23d755 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:17Z +last_built: 2025-09-05T00:42Z 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 a2e155e29..4a564cffa 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:17Z +last_built: 2025-09-05T00:42Z 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 d1e2189bb..d8a7efa98 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 0x5639fa76dcc0> </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> List of 1</span> -<span class="r-out co"><span class="r-pr">#></span> $ database:<adbc_database at 0x5639fa1a2040> </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> 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 c2c7f923a..be2821c25 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 0x5639fab35310> </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> 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 8c10ebbe2..abe496a4a 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 0x5639fa740100> </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> List of 1</span> -<span class="r-out co"><span class="r-pr">#></span> $ connection:<adbc_connection at 0x5639f76710c0> </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> List of 1</span> -<span class="r-out co"><span class="r-pr">#></span> ..$ database:<adbc_database at 0x5639fa4f3720> </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> 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 fb20728e6..9d124227e 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 23057c176..4a36b1487 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:17Z +last_built: 2025-09-05T00:42Z 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 0fb6d219e..488c9cdc6 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:17Z +last_built: 2025-09-05T00:42Z 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 4ba68e895..bd327ee92 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:17Z +last_built: 2025-09-05T00:42Z 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 51bea28d1..26f8b2baf 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:17Z +last_built: 2025-09-05T00:42Z 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/rust/driver_manager.html b/main/rust/driver_manager.html index 53991bbb5..8d27336ed 100644 --- a/main/rust/driver_manager.html +++ b/main/rust/driver_manager.html @@ -9,10 +9,10 @@ <meta property="og:type" content="website" /> <meta property="og:url" content="https://arrow.apache.org/adbc/main/rust/driver_manager.html" /> <meta property="og:site_name" content="ADBC" /> -<meta property="og:description" content="The driver manager is a library that implements the ADBC API by delegating to dynamically-loaded drivers. This allows applications to load drivers at runtime, and use drivers that aren’t necessaril..." /> +<meta property="og:description" content="This document describes the installation and usage of the Rust driver manager which is available in the adbc_driver_manager crate. Installation: Usage: API Reference: See the API reference: Module ..." /> <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 driver manager is a library that implements the ADBC API by delegating to dynamically-loaded drivers. This allows applications to load drivers at runtime, and use drivers that aren’t necessaril..." /> +<meta name="description" content="This document describes the installation and usage of the Rust driver manager which is available in the adbc_driver_manager crate. Installation: Usage: API Reference: See the API reference: Module ..." /> <link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="Installation" href="../driver/installation.html" /><link rel="prev" title="Quickstart" href="quickstart.html" /> <!-- Generated with Sphinx 8.3.0 and Furo 2024.08.06 --> @@ -397,31 +397,31 @@ <article role="main" id="furo-main-content"> <section id="driver-manager"> <h1>Driver Manager<a class="headerlink" href="#driver-manager" title="Link to this heading">¶</a></h1> -<p>The driver manager is a library that implements the ADBC API by delegating to -dynamically-loaded drivers. This allows applications to load drivers at -runtime, and use drivers that aren’t necessarily written in Rust. It is -currently part of the adbc_core package, though we plan to split it into its -own package for users who don’t want or need FFI.</p> +<p>This document describes the installation and usage of the Rust <a class="reference internal" href="../glossary.html#term-driver-manager"><span class="xref std std-term">driver +manager</span></a> which is available in the <code class="docutils literal notranslate"><span class="pre">adbc_driver_manager</span></code> crate.</p> <section id="installation"> <h2>Installation<a class="headerlink" href="#installation" title="Link to this heading">¶</a></h2> -<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>cargo<span class="w"> </span>add<span class="w"> </span>adbc_core<span class="w"> </span>--features<span class="w"> </span>driver_manager +<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>cargo<span class="w"> </span>add<span class="w"> </span>adbc_core<span class="w"> </span>adbc_driver_manager </pre></div> </div> </section> <section id="usage"> <h2>Usage<a class="headerlink" href="#usage" title="Link to this heading">¶</a></h2> -<div class="highlight-rust notranslate"><div class="highlight"><pre><span></span><span class="k">use</span><span class="w"> </span><span class="n">adbc_core</span><span class="p">::{</span><span class="n">Connection</span><span class="p">,</span><span class="w"> </span><span class="n">Database</span><span class="p">,</span><span class="w"> </span><span class="n">Driver</span><span class="p">,</span><span class="w"> </span><span class="n">Statement</span><span class="p">};</span> -<span class="k">use</span><span class="w"> </span><span class="n">adbc_core</span><span class="p">::</span><span class="n">options</span><span class="p">::{</span><span class="n">AdbcVersion</span><span class="p">,</span><span class="w"> </span><span class="n">OptionDatabase</span><span class="p">};</span> -<span class="k">use</span><span class="w"> </span><span class="n">adbc_core</span><span class="p">::</span><span class="n">driver_manager</span><span class="p">::</span><span class="n">ManagedDriver</span><span class="p">;</span> +<div class="highlight-rust notranslate"><div class="highlight"><pre><span></span><span class="k">use</span><span class="w"> </span><span class="n">adbc_core</span><span class="p">::</span><span class="n">options</span><span class="p">::</span><span class="n">AdbcVersion</span><span class="p">;</span> +<span class="k">use</span><span class="w"> </span><span class="n">adbc_core</span><span class="p">::{</span><span class="n">Database</span><span class="p">,</span><span class="w"> </span><span class="n">Driver</span><span class="p">};</span> +<span class="k">use</span><span class="w"> </span><span class="n">adbc_driver_manager</span><span class="p">::</span><span class="n">ManagedDriver</span><span class="p">;</span> <span class="c1">// You must build/locate the driver yourself</span> <span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">driver</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ManagedDriver</span><span class="p">::</span><span class="n">load_dynamic_from_filename</span><span class="p">(</span> <span class="w"> </span><span class="s">"/PATH/TO/libadbc_driver_sqlite.so"</span><span class="p">,</span> <span class="w"> </span><span class="nb">None</span><span class="p">,</span> <span class="w"> </span><span class="n">AdbcVersion</span><span class="p">::</span><span class="n">default</span><span class="p">(),</span> -<span class="p">).</span><span class="n">expect</span><span class="p">(</span><span class="s">"Failed to load driver"</span><span class="p">);</span> -<span class="kd">let</span><span class="w"> </span><span class="n">db</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">new_database</span><span class="p">().</span><span class="n">expect</span><span class="p">(</span><span class="s">"Failed to create database handle"</span><span class="p">);</span> -<span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">conn</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">db</span><span class="p">.</span><span class="n">new_connection</span><span class="p">().</span><span class="n">expect</span><span class="p">(</span><span class="s">"Failed to create connection"</span><span class="p">);</span> +<span class="p">)</span> +<span class="p">.</span><span class="n">expect</span><span class="p">(</span><span class="s">"Failed to load driver"</span><span class="p">);</span> +<span class="kd">let</span><span class="w"> </span><span class="n">db</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">driver</span> +<span class="w"> </span><span class="p">.</span><span class="n">new_database</span><span class="p">()</span> +<span class="w"> </span><span class="p">.</span><span class="n">expect</span><span class="p">(</span><span class="s">"Failed to create database handle"</span><span class="p">);</span> +<span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">conn</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">db</span><span class="p">.</span><span class="n">new_connection</span><span class="p">().</span><span class="n">expect</span><span class="p">(</span><span class="s">"Failed to create connection"</span><span class="p">)</span> </pre></div> </div> </section> diff --git a/main/searchindex.js b/main/searchindex.js index 2a59498b7..ac16f9c61 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