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 24bca8c publish documentation
24bca8c is described below
commit 24bca8ce759129ea3be4a836f674f6449b754cfc
Author: GitHub Actions <[email protected]>
AuthorDate: Tue Dec 13 17:48:37 2022 +0000
publish documentation
---
dev/.buildinfo | 2 +-
dev/_sources/driver/cpp/flight_sql.rst.txt | 139 +++++++++++++++++++++++-----
dev/_static/css/custom.css | 20 ++++
dev/contributing.html | 1 +
dev/cpp/api/adbc.html | 1 +
dev/cpp/api/adbc_driver_manager.html | 1 +
dev/cpp/api/index.html | 1 +
dev/cpp/concurrency.html | 1 +
dev/cpp/driver_manager.html | 1 +
dev/cpp/index.html | 1 +
dev/driver/cpp/features.html | 1 +
dev/driver/cpp/flight_sql.html | 143 ++++++++++++++++++++++++-----
dev/driver/cpp/index.html | 1 +
dev/driver/cpp/postgresql.html | 1 +
dev/driver/cpp/sqlite.html | 1 +
dev/driver/java/flight_sql.html | 1 +
dev/driver/java/index.html | 1 +
dev/driver/java/jdbc.html | 1 +
dev/format/comparison.html | 1 +
dev/format/specification.html | 1 +
dev/format/versioning.html | 1 +
dev/genindex.html | 1 +
dev/go/index.html | 1 +
dev/index.html | 1 +
dev/java/index.html | 1 +
dev/nightly.html | 1 +
dev/python/api/adbc_driver_manager.html | 1 +
dev/python/api/adbc_driver_postgresql.html | 1 +
dev/python/api/adbc_driver_sqlite.html | 1 +
dev/python/api/index.html | 1 +
dev/python/driver_manager.html | 1 +
dev/python/index.html | 1 +
dev/search.html | 1 +
dev/searchindex.js | 2 +-
34 files changed, 283 insertions(+), 52 deletions(-)
diff --git a/dev/.buildinfo b/dev/.buildinfo
index d1011be..fff37da 100644
--- a/dev/.buildinfo
+++ b/dev/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it
is not found, a full rebuild will be done.
-config: 9ef14b0df98d1272ba8acc6b4aba2632
+config: 4c955914b265dec608e65cc86271c1fb
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/dev/_sources/driver/cpp/flight_sql.rst.txt
b/dev/_sources/driver/cpp/flight_sql.rst.txt
index a67c617..d8ae7a6 100644
--- a/dev/_sources/driver/cpp/flight_sql.rst.txt
+++ b/dev/_sources/driver/cpp/flight_sql.rst.txt
@@ -60,17 +60,76 @@ the :cpp:class:`AdbcDatabase`.
with pyarrow.flight_sql.connect("grpc://localhost:8080") as conn:
pass
-Additional Configuration Options
---------------------------------
+Supported Features
+==================
-The Flight SQL driver supports some additional configuration options
-in addition to the "standard" ADBC options.
+The Flight SQL driver generally supports features defined in the ADBC
+API specification 1.0.0, as well as some additional, custom options.
+
+Authentication
+--------------
+
+The driver does no authentication by default.
+
+The driver implements one optional authentication scheme that mimics
+the Arrow Flight SQL JDBC driver. This can be enabled by setting the
+option ``arrow.flight.sql.authorization_header`` on the
+:cpp:class:`AdbcDatabase`. The client provides credentials by setting
+the option value to the value of the ``authorization`` header sent
+from client to server. The server then responds with an
+``authorization`` header on the first request. The value of this
+header will then be sent back as the ``authorization`` header on all
+future requests.
+
+Bulk Ingestion
+--------------
+
+Flight SQL does not have a dedicated API for bulk ingestion of Arrow
+data into a given table. The driver instead constructs SQL statements
+to create and insert into the table.
+
+.. warning:: The driver does not escape or validate the names of
+ tables or columns. As a precaution, it instead limits
+ identifier names to letters, numbers, and underscores.
+ Bulk ingestion should not be used with untrusted user
+ input.
+
+The driver binds a batch of data at a time for efficiency. Also, the
+generated SQL statements hardcode ``?`` as the parameter identifier.
+
+Client Options
+--------------
+
+The options used for creating the Flight RPC client can be customized.
+These options map 1:1 with the options in FlightClientOptions:
+
+``arrow.flight.sql.client_option.tls_root_certs``
+ Override the root certificates used to validate the server's TLS
+ certificate.
+
+``arrow.flight.sql.client_option.override_hostname``
+ Override the hostname used to verify the server's TLS certificate.
+
+``arrow.flight.sql.client_option.cert_chain``
+ The certificate chain to use for mTLS.
+
+``arrow.flight.sql.client_option.private_key``
+ The private key to use for mTLS.
+
+``arrow.flight.sql.client_option.generic_int_option.``
+``arrow.flight.sql.client_option.generic_string_option.``
+ Option prefixes used to specify generic transport-layer options.
+
+``arrow.flight.sql.client_option.disable_server_verification``
+ Disable verification of the server's TLS certificate. Value
+ should be ``true`` or ``false``.
Custom Call Headers
-~~~~~~~~~~~~~~~~~~~
+-------------------
Custom HTTP headers can be attached to requests via options that apply
-to both :cpp:class:`AdbcConnection` and :cpp:class:`AdbcStatement`.
+to :cpp:class:`AdbcDatabase`, :cpp:class:`AdbcConnection`, and
+:cpp:class:`AdbcStatement`.
``arrow.flight.sql.rpc.call_header.<HEADER NAME>``
Add the header ``<HEADER NAME>`` to outgoing requests with the given
@@ -78,8 +137,46 @@ to both :cpp:class:`AdbcConnection` and
:cpp:class:`AdbcStatement`.
.. warning:: Header names must be in all lowercase.
+Distributed Result Sets
+-----------------------
+
+The driver will fetch all partitions (FlightEndpoints) returned by the
+server, in an unspecified order (note that Flight SQL itself does not
+define an ordering on these partitions). If an endpoint has no
+locations, the data will be fetched using the original server
+connection. Else, the driver will try each location given, in order,
+until a request succeeds. If the connection or request fails, it will
+try the next location.
+
+The driver does not currently cache or pool these secondary
+connections. It also does not retry connections or requests.
+Requests are made sequentially, one at a time—the driver does not
+parallelize requests or perform readahead.
+
+Metadata
+--------
+
+The driver currently will not populate column constraint info (foreign
+keys, primary keys, etc.) in :cpp:func:`AdbcConnectionGetObjects`.
+Also, catalog filters are evaluated as simple string matches, not
+``LIKE``-style patterns.
+
+Partitioned Result Sets
+-----------------------
+
+The Flight SQL driver supports ADBC's partitioned result sets. When
+requested, each partition of a result set contains a serialized
+FlightInfo, containing one of the FlightEndpoints of the original
+response. Clients who may wish to introspect the partition can do so
+by deserializing the contained FlightInfo from the ADBC partitions.
+(For example, a client that wishes to distribute work across multiple
+workers or machines may want to try to take advantage of locality
+information that ADBC does not have.)
+
+.. TODO: code samples
+
Timeouts
-~~~~~~~~
+--------
By default, timeouts are not used for RPC calls. They can be set via
special options on :cpp:class:`AdbcConnection`. In general, it is
@@ -108,10 +205,14 @@ The options are as follows:
For example, this controls the timeout of the underlying Flight
calls that implement bulk ingestion, or transaction support.
-.. TODO: code samples
+Transactions
+------------
+
+The driver will issue transaction RPCs, but the driver will not check
+the server's SqlInfo to determine whether this is supported first.
Type Mapping
-~~~~~~~~~~~~
+------------
When executing a bulk ingestion operation, the driver needs to be able
to construct appropriate SQL queries for the database. (The driver
@@ -125,6 +226,10 @@ Flight SQL metadata to construct this mapping.)
All such options begin with ``arrow.flight.sql.quirks.ingest_type.``
and are followed by a type name below.
+.. warning:: The driver does **not** escape or validate the values
+ here. They should not come from untrusted user input, or
+ a SQL injection vulnerability may result.
+
.. csv-table:: Type Names
:header: "Arrow Type Name", "Default SQL Type Name"
@@ -146,20 +251,4 @@ and are followed by a type name below.
time64,TIME
timestamp,TIMESTAMP
-.. TODO: code samples
-
-Partitioned Result Set Support
-------------------------------
-
-The Flight SQL driver supports ADBC's partitioned result sets, mapping
-them onto FlightEndpoints. Each partition of a result set contains a
-serialized FlightInfo, containing one of the FlightEndpoints of the
-original response. Clients who may wish to introspect the partition
-can do so by deserializing the contained FlightInfo from the ADBC
-partitions. (For example, a client that wishes to distribute work
-across multiple workers or machines may want to try to take advantage
-of locality information that ADBC does not have.)
-
-.. TODO: code samples
-
.. _DBAPI 2.0: https://peps.python.org/pep-0249/
diff --git a/dev/_static/css/custom.css b/dev/_static/css/custom.css
new file mode 100644
index 0000000..543a956
--- /dev/null
+++ b/dev/_static/css/custom.css
@@ -0,0 +1,20 @@
+/* Licensed to the Apache Software Foundation (ASF) under one */
+/* or more contributor license agreements. See the NOTICE file */
+/* distributed with this work for additional information */
+/* regarding copyright ownership. The ASF licenses this file */
+/* to you under the Apache License, Version 2.0 (the */
+/* "License"); you may not use this file except in compliance */
+/* with the License. You may obtain a copy of the License at */
+
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+
+/* Unless required by applicable law or agreed to in writing, */
+/* software distributed under the License is distributed on an */
+/* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY */
+/* KIND, either express or implied. See the License for the */
+/* specific language governing permissions and limitations */
+/* under the License. */
+
+p.admonition-title {
+ font-weight: bold;
+}
diff --git a/dev/contributing.html b/dev/contributing.html
index 64a84dc..5b95a65 100644
--- a/dev/contributing.html
+++ b/dev/contributing.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="_static/css/custom.css" />
diff --git a/dev/cpp/api/adbc.html b/dev/cpp/api/adbc.html
index 8daa672..88e0498 100644
--- a/dev/cpp/api/adbc.html
+++ b/dev/cpp/api/adbc.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/cpp/api/adbc_driver_manager.html
b/dev/cpp/api/adbc_driver_manager.html
index d4f8814..3bdc474 100644
--- a/dev/cpp/api/adbc_driver_manager.html
+++ b/dev/cpp/api/adbc_driver_manager.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/cpp/api/index.html b/dev/cpp/api/index.html
index 7785203..4350bea 100644
--- a/dev/cpp/api/index.html
+++ b/dev/cpp/api/index.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/cpp/concurrency.html b/dev/cpp/concurrency.html
index 95b4663..b57a16c 100644
--- a/dev/cpp/concurrency.html
+++ b/dev/cpp/concurrency.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../_static/css/custom.css" />
diff --git a/dev/cpp/driver_manager.html b/dev/cpp/driver_manager.html
index 57223b7..b3c4eb4 100644
--- a/dev/cpp/driver_manager.html
+++ b/dev/cpp/driver_manager.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../_static/css/custom.css" />
diff --git a/dev/cpp/index.html b/dev/cpp/index.html
index 40570c1..4825a2d 100644
--- a/dev/cpp/index.html
+++ b/dev/cpp/index.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../_static/css/custom.css" />
diff --git a/dev/driver/cpp/features.html b/dev/driver/cpp/features.html
index 4b45534..9ed61fa 100644
--- a/dev/driver/cpp/features.html
+++ b/dev/driver/cpp/features.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/driver/cpp/flight_sql.html b/dev/driver/cpp/flight_sql.html
index 799bdba..4bd9fa0 100644
--- a/dev/driver/cpp/flight_sql.html
+++ b/dev/driver/cpp/flight_sql.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
@@ -295,14 +296,71 @@ Python</label><div class="sd-tab-content docutils">
</div>
</div>
</div>
-<section id="additional-configuration-options">
-<h3>Additional Configuration Options<a class="headerlink"
href="#additional-configuration-options" title="Permalink to this
heading">#</a></h3>
-<p>The Flight SQL driver supports some additional configuration options
-in addition to the “standard” ADBC options.</p>
+</section>
+<section id="supported-features">
+<h2>Supported Features<a class="headerlink" href="#supported-features"
title="Permalink to this heading">#</a></h2>
+<p>The Flight SQL driver generally supports features defined in the ADBC
+API specification 1.0.0, as well as some additional, custom options.</p>
+<section id="authentication">
+<h3>Authentication<a class="headerlink" href="#authentication"
title="Permalink to this heading">#</a></h3>
+<p>The driver does no authentication by default.</p>
+<p>The driver implements one optional authentication scheme that mimics
+the Arrow Flight SQL JDBC driver. This can be enabled by setting the
+option <code class="docutils literal notranslate"><span
class="pre">arrow.flight.sql.authorization_header</span></code> on the
+<a class="reference internal"
href="../../cpp/api/adbc.html#_CPPv412AdbcDatabase" title="AdbcDatabase"><code
class="xref cpp cpp-class docutils literal notranslate"><span
class="pre">AdbcDatabase</span></code></a>. The client provides credentials by
setting
+the option value to the value of the <code class="docutils literal
notranslate"><span class="pre">authorization</span></code> header sent
+from client to server. The server then responds with an
+<code class="docutils literal notranslate"><span
class="pre">authorization</span></code> header on the first request. The value
of this
+header will then be sent back as the <code class="docutils literal
notranslate"><span class="pre">authorization</span></code> header on all
+future requests.</p>
+</section>
+<section id="bulk-ingestion">
+<h3>Bulk Ingestion<a class="headerlink" href="#bulk-ingestion"
title="Permalink to this heading">#</a></h3>
+<p>Flight SQL does not have a dedicated API for bulk ingestion of Arrow
+data into a given table. The driver instead constructs SQL statements
+to create and insert into the table.</p>
+<div class="admonition warning">
+<p class="admonition-title">Warning</p>
+<p>The driver does not escape or validate the names of
+tables or columns. As a precaution, it instead limits
+identifier names to letters, numbers, and underscores.
+Bulk ingestion should not be used with untrusted user
+input.</p>
+</div>
+<p>The driver binds a batch of data at a time for efficiency. Also, the
+generated SQL statements hardcode <code class="docutils literal
notranslate"><span class="pre">?</span></code> as the parameter identifier.</p>
+</section>
+<section id="client-options">
+<h3>Client Options<a class="headerlink" href="#client-options"
title="Permalink to this heading">#</a></h3>
+<p>The options used for creating the Flight RPC client can be customized.
+These options map 1:1 with the options in FlightClientOptions:</p>
+<dl class="simple">
+<dt><code class="docutils literal notranslate"><span
class="pre">arrow.flight.sql.client_option.tls_root_certs</span></code></dt><dd><p>Override
the root certificates used to validate the server’s TLS
+certificate.</p>
+</dd>
+<dt><code class="docutils literal notranslate"><span
class="pre">arrow.flight.sql.client_option.override_hostname</span></code></dt><dd><p>Override
the hostname used to verify the server’s TLS certificate.</p>
+</dd>
+<dt><code class="docutils literal notranslate"><span
class="pre">arrow.flight.sql.client_option.cert_chain</span></code></dt><dd><p>The
certificate chain to use for mTLS.</p>
+</dd>
+<dt><code class="docutils literal notranslate"><span
class="pre">arrow.flight.sql.client_option.private_key</span></code></dt><dd><p>The
private key to use for mTLS.</p>
+</dd>
+</dl>
+<p><code class="docutils literal notranslate"><span
class="pre">arrow.flight.sql.client_option.generic_int_option.</span></code>
+<code class="docutils literal notranslate"><span
class="pre">arrow.flight.sql.client_option.generic_string_option.</span></code></p>
+<blockquote>
+<div><p>Option prefixes used to specify generic transport-layer options.</p>
+</div></blockquote>
+<dl class="simple">
+<dt><code class="docutils literal notranslate"><span
class="pre">arrow.flight.sql.client_option.disable_server_verification</span></code></dt><dd><p>Disable
verification of the server’s TLS certificate. Value
+should be <code class="docutils literal notranslate"><span
class="pre">true</span></code> or <code class="docutils literal
notranslate"><span class="pre">false</span></code>.</p>
+</dd>
+</dl>
+</section>
<section id="custom-call-headers">
-<h4>Custom Call Headers<a class="headerlink" href="#custom-call-headers"
title="Permalink to this heading">#</a></h4>
+<h3>Custom Call Headers<a class="headerlink" href="#custom-call-headers"
title="Permalink to this heading">#</a></h3>
<p>Custom HTTP headers can be attached to requests via options that apply
-to both <a class="reference internal"
href="../../cpp/api/adbc.html#_CPPv414AdbcConnection"
title="AdbcConnection"><code class="xref cpp cpp-class docutils literal
notranslate"><span class="pre">AdbcConnection</span></code></a> and <a
class="reference internal" href="../../cpp/api/adbc.html#_CPPv413AdbcStatement"
title="AdbcStatement"><code class="xref cpp cpp-class docutils literal
notranslate"><span class="pre">AdbcStatement</span></code></a>.</p>
+to <a class="reference internal"
href="../../cpp/api/adbc.html#_CPPv412AdbcDatabase" title="AdbcDatabase"><code
class="xref cpp cpp-class docutils literal notranslate"><span
class="pre">AdbcDatabase</span></code></a>, <a class="reference internal"
href="../../cpp/api/adbc.html#_CPPv414AdbcConnection"
title="AdbcConnection"><code class="xref cpp cpp-class docutils literal
notranslate"><span class="pre">AdbcConnection</span></code></a>, and
+<a class="reference internal"
href="../../cpp/api/adbc.html#_CPPv413AdbcStatement"
title="AdbcStatement"><code class="xref cpp cpp-class docutils literal
notranslate"><span class="pre">AdbcStatement</span></code></a>.</p>
<dl>
<dt><code class="docutils literal notranslate"><span
class="pre">arrow.flight.sql.rpc.call_header.<HEADER</span> <span
class="pre">NAME></span></code></dt><dd><p>Add the header <code
class="docutils literal notranslate"><span class="pre"><HEADER</span> <span
class="pre">NAME></span></code> to outgoing requests with the given
value.</p>
@@ -313,8 +371,40 @@ value.</p>
</dd>
</dl>
</section>
+<section id="distributed-result-sets">
+<h3>Distributed Result Sets<a class="headerlink"
href="#distributed-result-sets" title="Permalink to this heading">#</a></h3>
+<p>The driver will fetch all partitions (FlightEndpoints) returned by the
+server, in an unspecified order (note that Flight SQL itself does not
+define an ordering on these partitions). If an endpoint has no
+locations, the data will be fetched using the original server
+connection. Else, the driver will try each location given, in order,
+until a request succeeds. If the connection or request fails, it will
+try the next location.</p>
+<p>The driver does not currently cache or pool these secondary
+connections. It also does not retry connections or requests.
+Requests are made sequentially, one at a time—the driver does not
+parallelize requests or perform readahead.</p>
+</section>
+<section id="metadata">
+<h3>Metadata<a class="headerlink" href="#metadata" title="Permalink to this
heading">#</a></h3>
+<p>The driver currently will not populate column constraint info (foreign
+keys, primary keys, etc.) in <a class="reference internal"
href="../../cpp/api/adbc.html#_CPPv424AdbcConnectionGetObjectsP14AdbcConnectioniPKcPKcPKcPPKcPKcP16ArrowArrayStreamP9AdbcError"
title="AdbcConnectionGetObjects"><code class="xref cpp cpp-func docutils
literal notranslate"><span
class="pre">AdbcConnectionGetObjects()</span></code></a>.
+Also, catalog filters are evaluated as simple string matches, not
+<code class="docutils literal notranslate"><span
class="pre">LIKE</span></code>-style patterns.</p>
+</section>
+<section id="partitioned-result-sets">
+<h3>Partitioned Result Sets<a class="headerlink"
href="#partitioned-result-sets" title="Permalink to this heading">#</a></h3>
+<p>The Flight SQL driver supports ADBC’s partitioned result sets. When
+requested, each partition of a result set contains a serialized
+FlightInfo, containing one of the FlightEndpoints of the original
+response. Clients who may wish to introspect the partition can do so
+by deserializing the contained FlightInfo from the ADBC partitions.
+(For example, a client that wishes to distribute work across multiple
+workers or machines may want to try to take advantage of locality
+information that ADBC does not have.)</p>
+</section>
<section id="timeouts">
-<h4>Timeouts<a class="headerlink" href="#timeouts" title="Permalink to this
heading">#</a></h4>
+<h3>Timeouts<a class="headerlink" href="#timeouts" title="Permalink to this
heading">#</a></h3>
<p>By default, timeouts are not used for RPC calls. They can be set via
special options on <a class="reference internal"
href="../../cpp/api/adbc.html#_CPPv414AdbcConnection"
title="AdbcConnection"><code class="xref cpp cpp-class docutils literal
notranslate"><span class="pre">AdbcConnection</span></code></a>. In general,
it is
best practice to set timeouts to avoid unexpectedly getting stuck.
@@ -338,8 +428,13 @@ calls that implement bulk ingestion, or transaction
support.</p>
</dd>
</dl>
</section>
+<section id="transactions">
+<h3>Transactions<a class="headerlink" href="#transactions" title="Permalink to
this heading">#</a></h3>
+<p>The driver will issue transaction RPCs, but the driver will not check
+the server’s SqlInfo to determine whether this is supported first.</p>
+</section>
<section id="type-mapping">
-<h4>Type Mapping<a class="headerlink" href="#type-mapping" title="Permalink to
this heading">#</a></h4>
+<h3>Type Mapping<a class="headerlink" href="#type-mapping" title="Permalink to
this heading">#</a></h3>
<p>When executing a bulk ingestion operation, the driver needs to be able
to construct appropriate SQL queries for the database. (The driver
does not currently support using Substrait plans instead.) In
@@ -350,6 +445,12 @@ this mapping, which can be done by setting special options
on
Flight SQL metadata to construct this mapping.)</p>
<p>All such options begin with <code class="docutils literal
notranslate"><span
class="pre">arrow.flight.sql.quirks.ingest_type.</span></code>
and are followed by a type name below.</p>
+<div class="admonition warning">
+<p class="admonition-title">Warning</p>
+<p>The driver does <strong>not</strong> escape or validate the values
+here. They should not come from untrusted user input, or
+a SQL injection vulnerability may result.</p>
+</div>
<div class="table-wrapper docutils container" id="id1">
<table class="docutils align-default" id="id1">
<caption><span class="caption-text">Type Names</span><a class="headerlink"
href="#id1" title="Permalink to this table">#</a></caption>
@@ -415,18 +516,6 @@ and are followed by a type name below.</p>
</div>
</section>
</section>
-<section id="partitioned-result-set-support">
-<h3>Partitioned Result Set Support<a class="headerlink"
href="#partitioned-result-set-support" title="Permalink to this
heading">#</a></h3>
-<p>The Flight SQL driver supports ADBC’s partitioned result sets, mapping
-them onto FlightEndpoints. Each partition of a result set contains a
-serialized FlightInfo, containing one of the FlightEndpoints of the
-original response. Clients who may wish to introspect the partition
-can do so by deserializing the contained FlightInfo from the ADBC
-partitions. (For example, a client that wishes to distribute work
-across multiple workers or machines may want to try to take advantage
-of locality information that ADBC does not have.)</p>
-</section>
-</section>
</section>
</article>
@@ -486,16 +575,20 @@ of locality information that ADBC does not have.)</p>
<ul>
<li><a class="reference internal" href="#">Flight SQL Driver</a><ul>
<li><a class="reference internal" href="#installation">Installation</a></li>
-<li><a class="reference internal" href="#usage">Usage</a><ul>
-<li><a class="reference internal"
href="#additional-configuration-options">Additional Configuration
Options</a><ul>
+<li><a class="reference internal" href="#usage">Usage</a></li>
+<li><a class="reference internal" href="#supported-features">Supported
Features</a><ul>
+<li><a class="reference internal"
href="#authentication">Authentication</a></li>
+<li><a class="reference internal" href="#bulk-ingestion">Bulk
Ingestion</a></li>
+<li><a class="reference internal" href="#client-options">Client
Options</a></li>
<li><a class="reference internal" href="#custom-call-headers">Custom Call
Headers</a></li>
+<li><a class="reference internal" href="#distributed-result-sets">Distributed
Result Sets</a></li>
+<li><a class="reference internal" href="#metadata">Metadata</a></li>
+<li><a class="reference internal" href="#partitioned-result-sets">Partitioned
Result Sets</a></li>
<li><a class="reference internal" href="#timeouts">Timeouts</a></li>
+<li><a class="reference internal" href="#transactions">Transactions</a></li>
<li><a class="reference internal" href="#type-mapping">Type Mapping</a></li>
</ul>
</li>
-<li><a class="reference internal"
href="#partitioned-result-set-support">Partitioned Result Set Support</a></li>
-</ul>
-</li>
</ul>
</li>
</ul>
diff --git a/dev/driver/cpp/index.html b/dev/driver/cpp/index.html
index 6b40d7e..b8a892c 100644
--- a/dev/driver/cpp/index.html
+++ b/dev/driver/cpp/index.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/driver/cpp/postgresql.html b/dev/driver/cpp/postgresql.html
index 48f983d..a8ac15c 100644
--- a/dev/driver/cpp/postgresql.html
+++ b/dev/driver/cpp/postgresql.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/driver/cpp/sqlite.html b/dev/driver/cpp/sqlite.html
index b216417..6fe64a3 100644
--- a/dev/driver/cpp/sqlite.html
+++ b/dev/driver/cpp/sqlite.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/driver/java/flight_sql.html b/dev/driver/java/flight_sql.html
index 039d070..bc5897e 100644
--- a/dev/driver/java/flight_sql.html
+++ b/dev/driver/java/flight_sql.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/driver/java/index.html b/dev/driver/java/index.html
index 82b9be8..7615bd2 100644
--- a/dev/driver/java/index.html
+++ b/dev/driver/java/index.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/driver/java/jdbc.html b/dev/driver/java/jdbc.html
index 4fd63f5..4f2542a 100644
--- a/dev/driver/java/jdbc.html
+++ b/dev/driver/java/jdbc.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/format/comparison.html b/dev/format/comparison.html
index 3e7458f..a5f4b16 100644
--- a/dev/format/comparison.html
+++ b/dev/format/comparison.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../_static/css/custom.css" />
diff --git a/dev/format/specification.html b/dev/format/specification.html
index 95507e3..5c20295 100644
--- a/dev/format/specification.html
+++ b/dev/format/specification.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../_static/css/custom.css" />
diff --git a/dev/format/versioning.html b/dev/format/versioning.html
index 7851c34..f109a2a 100644
--- a/dev/format/versioning.html
+++ b/dev/format/versioning.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../_static/css/custom.css" />
diff --git a/dev/genindex.html b/dev/genindex.html
index 74620f2..2624d68 100644
--- a/dev/genindex.html
+++ b/dev/genindex.html
@@ -10,6 +10,7 @@
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="_static/css/custom.css" />
diff --git a/dev/go/index.html b/dev/go/index.html
index f88660d..442e7e1 100644
--- a/dev/go/index.html
+++ b/dev/go/index.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../_static/css/custom.css" />
diff --git a/dev/index.html b/dev/index.html
index 2c15694..6d10160 100644
--- a/dev/index.html
+++ b/dev/index.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="_static/css/custom.css" />
diff --git a/dev/java/index.html b/dev/java/index.html
index 891a351..b135e9d 100644
--- a/dev/java/index.html
+++ b/dev/java/index.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../_static/css/custom.css" />
diff --git a/dev/nightly.html b/dev/nightly.html
index 6dc8e9e..45574b0 100644
--- a/dev/nightly.html
+++ b/dev/nightly.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="_static/css/custom.css" />
diff --git a/dev/python/api/adbc_driver_manager.html
b/dev/python/api/adbc_driver_manager.html
index 46cd79f..d3398bb 100644
--- a/dev/python/api/adbc_driver_manager.html
+++ b/dev/python/api/adbc_driver_manager.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/python/api/adbc_driver_postgresql.html
b/dev/python/api/adbc_driver_postgresql.html
index faeb036..15c1665 100644
--- a/dev/python/api/adbc_driver_postgresql.html
+++ b/dev/python/api/adbc_driver_postgresql.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/python/api/adbc_driver_sqlite.html
b/dev/python/api/adbc_driver_sqlite.html
index 8ea230c..0830f69 100644
--- a/dev/python/api/adbc_driver_sqlite.html
+++ b/dev/python/api/adbc_driver_sqlite.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/python/api/index.html b/dev/python/api/index.html
index c6b5ea0..03aef44 100644
--- a/dev/python/api/index.html
+++ b/dev/python/api/index.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css"
/>
diff --git a/dev/python/driver_manager.html b/dev/python/driver_manager.html
index 904492d..a42668a 100644
--- a/dev/python/driver_manager.html
+++ b/dev/python/driver_manager.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../_static/css/custom.css" />
diff --git a/dev/python/index.html b/dev/python/index.html
index 99bb6bc..f08f70c 100644
--- a/dev/python/index.html
+++ b/dev/python/index.html
@@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="../_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="../_static/css/custom.css" />
diff --git a/dev/search.html b/dev/search.html
index 9cb08c7..530111a 100644
--- a/dev/search.html
+++ b/dev/search.html
@@ -9,6 +9,7 @@
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css"
href="_static/design-style.4045f2051d55cab465a707391d5b2007.min.css" />
<link rel="stylesheet" type="text/css"
href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e"
/>
+ <link rel="stylesheet" type="text/css" href="_static/css/custom.css" />
diff --git a/dev/searchindex.js b/dev/searchindex.js
index 3bb7328..35a7373 100644
--- a/dev/searchindex.js
+++ b/dev/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["contributing", "cpp/api/adbc",
"cpp/api/adbc_driver_manager", "cpp/api/index", "cpp/concurrency",
"cpp/driver_manager", "cpp/index", "driver/cpp/features",
"driver/cpp/flight_sql", "driver/cpp/index", "driver/cpp/postgresql",
"driver/cpp/sqlite", "driver/java/flight_sql", "driver/java/index",
"driver/java/jdbc", "format/comparison", "format/specification",
"format/versioning", "go/index", "index", "java/index", "nightly",
"python/api/adbc_driver_manager", " [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["contributing", "cpp/api/adbc",
"cpp/api/adbc_driver_manager", "cpp/api/index", "cpp/concurrency",
"cpp/driver_manager", "cpp/index", "driver/cpp/features",
"driver/cpp/flight_sql", "driver/cpp/index", "driver/cpp/postgresql",
"driver/cpp/sqlite", "driver/java/flight_sql", "driver/java/index",
"driver/java/jdbc", "format/comparison", "format/specification",
"format/versioning", "go/index", "index", "java/index", "nightly",
"python/api/adbc_driver_manager", " [...]
\ No newline at end of file