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 fdd26ab publish documentation
fdd26ab is described below
commit fdd26abbcf621a2db65395f309918cb9136ac6e5
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Mar 13 12:18:36 2023 +0000
publish documentation
---
main/_sources/faq.rst.txt | 147 +++++++++++++++++++
main/_sources/index.rst.txt | 5 +
main/cpp/api/adbc.html | 1 +
main/cpp/api/adbc_driver_manager.html | 1 +
main/cpp/api/index.html | 1 +
main/cpp/concurrency.html | 1 +
main/cpp/driver_manager.html | 1 +
main/cpp/index.html | 1 +
main/development/contributing.html | 1 +
main/development/nightly.html | 1 +
main/development/releasing.html | 1 +
main/driver/cpp/index.html | 1 +
main/driver/cpp/postgresql.html | 1 +
main/driver/cpp/sqlite.html | 1 +
main/driver/go/flight_sql.html | 1 +
main/driver/go/index.html | 1 +
main/driver/installation.html | 7 +-
main/driver/java/flight_sql.html | 1 +
main/driver/java/index.html | 1 +
main/driver/java/jdbc.html | 1 +
main/driver/status.html | 1 +
main/{index.html => faq.html} | 220 +++++++++++++++++-----------
main/format/comparison.html | 7 +-
main/format/specification.html | 1 +
main/format/versioning.html | 1 +
main/genindex.html | 1 +
main/go/index.html | 1 +
main/index.html | 3 +
main/java/index.html | 1 +
main/objects.inv | Bin 6998 -> 7037 bytes
main/py-modindex.html | 1 +
main/python/api/adbc_driver_manager.html | 1 +
main/python/api/adbc_driver_postgresql.html | 1 +
main/python/api/adbc_driver_sqlite.html | 1 +
main/python/api/index.html | 1 +
main/python/driver_manager.html | 1 +
main/python/index.html | 1 +
main/python/quickstart.html | 1 +
main/search.html | 1 +
main/searchindex.js | 2 +-
40 files changed, 327 insertions(+), 96 deletions(-)
diff --git a/main/_sources/faq.rst.txt b/main/_sources/faq.rst.txt
new file mode 100644
index 0000000..3f07a8f
--- /dev/null
+++ b/main/_sources/faq.rst.txt
@@ -0,0 +1,147 @@
+.. 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.
+
+================================
+Frequently Asked Questions (FAQ)
+================================
+
+What exactly is ADBC?
+=====================
+
+ADBC is:
+
+- A set of abstract APIs in different languages (C/C++, Go, and Java,
+ with more on the way) for working with databases and Arrow data.
+
+ For example, result sets of queries in ADBC are all returned as
+ streams of Arrow data, not row-by-row.
+- A set of implementations of that API in different languages (C/C++,
+ Go, Java, Python, and Ruby) that target different databases
+ (e.g. PostgreSQL, SQLite, any database supporting Flight SQL).
+
+Why not just use JDBC/ODBC?
+===========================
+
+JDBC uses row-based interfaces like `ResultSet`_. When working with
+columnar data, like Arrow data, this means that we have to convert the
+data at least once and possibly twice:
+
+- Once (possibly) in the driver or database, to take columnar data and
+ convert it into a row-based format so it can be returned through the
+ JDBC APIs.
+- Once (always) when a client application pulls data from the JDBC
+ API, to convert the rows into columns.
+
+In keeping with Arrow's "zero-copy" or "minimal-copy" ethos, we would
+like to avoid these unnecessary conversions.
+
+ODBC is in a similar situation. Although ODBC does support
+`"column-wise binding"`_, not all ODBC drivers support it, and it is
+more complex to use. Additionally, ODBC uses caller-allocated buffers
+(which often means forcing a data copy), and ODBC specifies data
+layouts that are not quite Arrow-compatible (requiring a data
+conversion anyways).
+
+.. _ResultSet:
https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html
+.. _"column-wise binding":
https://learn.microsoft.com/en-us/sql/odbc/reference/develop-app/column-wise-binding?view=sql-server-ver16
+
+How do ADBC and Arrow Flight SQL differ?
+========================================
+
+ADBC is a *client API specification*. It doesn't define what goes on
+between your client and the database, just the API calls that you make
+as an application developer. Under the hood, a driver must take those
+API calls and talk to the actual database. Another perspective is
+that ADBC is all about the client-side, and specifies nothing about
+the network protocol or server-side implementation.
+
+Flight SQL is a *wire protocol*. It specifies the exact commands to
+send to a database to perform various actions like authenticating with
+the database, creating prepared statements, or executing queries.
+Flight SQL specifies the network protocol that the client and the
+server must implement.
+
+One more way of looking at it: an ADBC driver can be written for a
+database purely as a client library. (That's how the PostgreSQL
+driver in this repository is implemented, for instance—as a wrapper
+around libpq.) But adding Flight SQL support to a database means
+either modifying the database to run a Flight SQL service, or putting
+the database behind a proxy that translates between Flight SQL and the
+database.
+
+Why not just use Arrow Flight SQL?
+==================================
+
+Because ADBC is client-side, ADBC can support databases that either
+don't support returning Arrow data, or support Arrow data through a
+protocol besides Flight SQL.
+
+Then do we even need Arrow Flight SQL?
+======================================
+
+Flight SQL is a concrete protocol that database vendors can implement,
+instead of designing their own protocol. And Flight SQL also has JDBC
+and ODBC drivers for maximal compatibility.
+
+As an analogy: many databases implement the PostgreSQL wire protocol,
+so that they can gain access to all the PostgreSQL clients, including
+JDBC and ODBC drivers. (And JDBC/ODBC users can still use other
+drivers to work with other databases.)
+
+For the Arrow ecosystem, we hope databases will implement the Flight
+SQL wire protocol, giving them access to all the Flight SQL clients,
+including ADBC, JDBC, and ODBC drivers. (And ADBC users can still use
+other drivers to work with other databases.)
+
+So what is the "ADBC Flight SQL driver" then?
+=============================================
+
+The ADBC Flight SQL driver implements the ADBC API standard (which an
+application interacts with) using the Flight SQL wire protocol (which
+a database server exposes). So it's a generic driver that can talk to
+many databases, as long as those implement Flight SQL.
+
+This is a little unusual, in that most database drivers and database
+protocols you'll find were meant for a specific database. But Flight
+SQL was designed to be agnostic to the database from the start, and so
+was ADBC.
+
+It sounds like they overlap, but they complement each other because
+they operate at different levels of abstraction. Database developers
+can just provide a Flight SQL service, which will give them ADBC,
+JDBC, and ODBC drivers for free, without having to build and maintain
+those drivers on their own. Database users can just use ADBC as the
+one Arrow-native API to work with both Arrow-native and
+non-Arrow-native databases, whether those databases support Flight
+SQL, a custom Arrow-native protocol, or no Arrow-native protocol.
+
+And then what is the "ADBC JDBC driver"?
+========================================
+
+The ADBC JDBC driver, or a hypothetical ADBC ODBC driver, adapts the
+JDBC API to the ADBC API, so that an ADBC user can interact with
+databases that have JDBC APIs available. While this doesn't give you
+the best possible performance (you're paying for tranposing the data
+back and forth!), it does save you the hassle of writing those
+conversions yourself.
+
+Similar libraries already exist; for instance, Turbodbc_ wraps any
+ODBC driver in Python's DBAPI (PEP 249), and arrow-jdbc_ wraps any
+JDBC driver in a bespoke Arrow-based API.
+
+.. _arrow-jdbc:
https://central.sonatype.com/artifact/org.apache.arrow/arrow-jdbc/11.0.0
+.. _Turbodbc: https://turbodbc.readthedocs.io/en/latest/
diff --git a/main/_sources/index.rst.txt b/main/_sources/index.rst.txt
index bc696c1..dad57ff 100644
--- a/main/_sources/index.rst.txt
+++ b/main/_sources/index.rst.txt
@@ -33,6 +33,9 @@ Application code should not need to juggle conversions from
non-Arrow-native datasources alongside bindings for multiple
Arrow-native database protocols.
+To learn more about ADBC, see the `introductory blog post
+<https://arrow.apache.org/blog/2023/01/05/introducing-arrow-adbc/>`_.
+
.. toctree::
:maxdepth: 1
:caption: Specifications
@@ -41,6 +44,8 @@ Arrow-native database protocols.
format/versioning
format/comparison
+ faq
+
.. toctree::
:maxdepth: 2
:caption: Drivers
diff --git a/main/cpp/api/adbc.html b/main/cpp/api/adbc.html
index 1a35279..278b65e 100644
--- a/main/cpp/api/adbc.html
+++ b/main/cpp/api/adbc.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/cpp/api/adbc_driver_manager.html
b/main/cpp/api/adbc_driver_manager.html
index d817fa0..5827428 100644
--- a/main/cpp/api/adbc_driver_manager.html
+++ b/main/cpp/api/adbc_driver_manager.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/cpp/api/index.html b/main/cpp/api/index.html
index ebe3870..d6bc6c2 100644
--- a/main/cpp/api/index.html
+++ b/main/cpp/api/index.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/cpp/concurrency.html b/main/cpp/concurrency.html
index e8b9c10..4bfb6b4 100644
--- a/main/cpp/concurrency.html
+++ b/main/cpp/concurrency.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/cpp/driver_manager.html b/main/cpp/driver_manager.html
index 508af11..b42c2a3 100644
--- a/main/cpp/driver_manager.html
+++ b/main/cpp/driver_manager.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/cpp/index.html b/main/cpp/index.html
index aed53ca..ea47ec6 100644
--- a/main/cpp/index.html
+++ b/main/cpp/index.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/development/contributing.html
b/main/development/contributing.html
index 1c87990..20f923e 100644
--- a/main/development/contributing.html
+++ b/main/development/contributing.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/development/nightly.html b/main/development/nightly.html
index a66195d..aa80963 100644
--- a/main/development/nightly.html
+++ b/main/development/nightly.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/development/releasing.html b/main/development/releasing.html
index e3c39b9..0de1dde 100644
--- a/main/development/releasing.html
+++ b/main/development/releasing.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/driver/cpp/index.html b/main/driver/cpp/index.html
index 56ea1e1..407daa9 100644
--- a/main/driver/cpp/index.html
+++ b/main/driver/cpp/index.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul class="current">
diff --git a/main/driver/cpp/postgresql.html b/main/driver/cpp/postgresql.html
index 9c545d7..6783115 100644
--- a/main/driver/cpp/postgresql.html
+++ b/main/driver/cpp/postgresql.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul class="current">
diff --git a/main/driver/cpp/sqlite.html b/main/driver/cpp/sqlite.html
index 9ed8b14..9adde1c 100644
--- a/main/driver/cpp/sqlite.html
+++ b/main/driver/cpp/sqlite.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul class="current">
diff --git a/main/driver/go/flight_sql.html b/main/driver/go/flight_sql.html
index 19cddfa..b86304e 100644
--- a/main/driver/go/flight_sql.html
+++ b/main/driver/go/flight_sql.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul class="current">
diff --git a/main/driver/go/index.html b/main/driver/go/index.html
index 0f32862..d27df7b 100644
--- a/main/driver/go/index.html
+++ b/main/driver/go/index.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul class="current">
diff --git a/main/driver/installation.html b/main/driver/installation.html
index 0805c98..4ffff4e 100644
--- a/main/driver/installation.html
+++ b/main/driver/installation.html
@@ -5,7 +5,7 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="generator"
content="Docutils 0.19: https://docutils.sourceforge.io/" />
-<link rel="index" title="Index" href="../genindex.html" /><link rel="search"
title="Search" href="../search.html" /><link rel="next" title="Driver Feature
Support/Implementation Status" href="status.html" /><link rel="prev"
title="Comparison with Other APIs" href="../format/comparison.html" />
+<link rel="index" title="Index" href="../genindex.html" /><link rel="search"
title="Search" href="../search.html" /><link rel="next" title="Driver Feature
Support/Implementation Status" href="status.html" /><link rel="prev"
title="Frequently Asked Questions (FAQ)" href="../faq.html" />
<!-- Generated with Sphinx 5.3.0 and Furo 2022.12.07 -->
<title>Installation - ADBC 0.3.0 (dev) documentation</title>
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul class="current">
@@ -374,14 +375,14 @@
</div>
<svg class="furo-related-icon"><use
href="#svg-arrow-right"></use></svg>
</a>
- <a class="prev-page" href="../format/comparison.html">
+ <a class="prev-page" href="../faq.html">
<svg class="furo-related-icon"><use
href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
- <div class="title">Comparison with Other APIs</div>
+ <div class="title">Frequently Asked Questions (FAQ)</div>
</div>
</a>
diff --git a/main/driver/java/flight_sql.html b/main/driver/java/flight_sql.html
index e5f9cf0..266be1c 100644
--- a/main/driver/java/flight_sql.html
+++ b/main/driver/java/flight_sql.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul class="current">
diff --git a/main/driver/java/index.html b/main/driver/java/index.html
index 1db11f9..f36c2d8 100644
--- a/main/driver/java/index.html
+++ b/main/driver/java/index.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul class="current">
diff --git a/main/driver/java/jdbc.html b/main/driver/java/jdbc.html
index de58eae..805fabd 100644
--- a/main/driver/java/jdbc.html
+++ b/main/driver/java/jdbc.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul class="current">
diff --git a/main/driver/status.html b/main/driver/status.html
index b3c7dc7..e5df9f7 100644
--- a/main/driver/status.html
+++ b/main/driver/status.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul class="current">
diff --git a/main/index.html b/main/faq.html
similarity index 67%
copy from main/index.html
copy to main/faq.html
index c9e9210..7f178d3 100644
--- a/main/index.html
+++ b/main/faq.html
@@ -5,10 +5,10 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="generator"
content="Docutils 0.19: https://docutils.sourceforge.io/" />
-<link rel="index" title="Index" href="genindex.html" /><link rel="search"
title="Search" href="search.html" /><link rel="next" title="ADBC API Standard"
href="format/specification.html" />
+<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="Comparison with Other
APIs" href="format/comparison.html" />
<!-- Generated with Sphinx 5.3.0 and Furo 2022.12.07 -->
- <title>ADBC 0.3.0 (dev) documentation</title>
+ <title>Frequently Asked Questions (FAQ) - ADBC 0.3.0 (dev)
documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css"
href="_static/styles/furo.css?digest=91d0f0d1c444bdcb17a68e833c7a53903343c195"
/>
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
@@ -183,7 +183,7 @@
</label>
</div>
<div class="header-center">
- <a href="#"><div class="brand">ADBC 0.3.0 (dev) documentation</div></a>
+ <a href="index.html"><div class="brand">ADBC 0.3.0 (dev)
documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -203,7 +203,7 @@
<aside class="sidebar-drawer">
<div class="sidebar-container">
- <div class="sidebar-sticky"><a class="sidebar-brand" href="#">
+ <div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<div class="sidebar-logo-container">
<img class="sidebar-logo only-light" src="_static/logo-light.png"
alt="Light Logo"/>
@@ -219,10 +219,11 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div
class="sidebar-tree">
<p class="caption" role="heading"><span
class="caption-text">Specifications</span></p>
-<ul>
+<ul class="current">
<li class="toctree-l1"><a class="reference internal"
href="format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1 current current-page"><a class="current reference
internal" href="#">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
@@ -302,7 +303,7 @@
</a>
<div class="content-icon-container">
<div class="edit-this-page">
- <a class="muted-link"
href="https://github.com/apache/arrow-adbc/edit/main/docs/source/index.rst"
title="Edit this page">
+ <a class="muted-link"
href="https://github.com/apache/arrow-adbc/edit/main/docs/source/faq.rst"
title="Edit this page">
<svg aria-hidden="true" viewBox="0 0 24 24" stroke-width="1.5"
stroke="currentColor" fill="none" stroke-linecap="round"
stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M4 20h4l10.5 -10.5a1.5 1.5 0 0 0 -4 -4l-10.5 10.5v4" />
@@ -324,89 +325,114 @@
</label>
</div>
<article role="main">
- <section id="apache-arrow-adbc">
-<h1>Apache Arrow ADBC<a class="headerlink" href="#apache-arrow-adbc"
title="Permalink to this heading">#</a></h1>
-<p>ADBC (Arrow Database Connectivity) is an API specification for
-Arrow-based database access. It provides a set of APIs in C, Go, and
-Java that define how to interact with databases, including executing
-queries and fetching metadata, that use Arrow data for result sets and
-query parameters. These APIs are then implemented by drivers (or a
-driver manager) that use some underlying protocol to work with
-specific databases.</p>
-<p>ADBC aims to provide applications with a single, Arrow-based API to
-work with multiple databases, whether Arrow-native or not.
-Application code should not need to juggle conversions from
-non-Arrow-native datasources alongside bindings for multiple
-Arrow-native database protocols.</p>
-<div class="toctree-wrapper compound">
-<p class="caption" role="heading"><span
class="caption-text">Specifications</span></p>
+ <section id="frequently-asked-questions-faq">
+<h1>Frequently Asked Questions (FAQ)<a class="headerlink"
href="#frequently-asked-questions-faq" title="Permalink to this
heading">#</a></h1>
+<section id="what-exactly-is-adbc">
+<h2>What exactly is ADBC?<a class="headerlink" href="#what-exactly-is-adbc"
title="Permalink to this heading">#</a></h2>
+<p>ADBC is:</p>
<ul>
-<li class="toctree-l1"><a class="reference internal"
href="format/specification.html">ADBC API Standard</a></li>
-<li class="toctree-l1"><a class="reference internal"
href="format/versioning.html">Versioning and Compatibility</a></li>
-<li class="toctree-l1"><a class="reference internal"
href="format/comparison.html">Comparison with Other APIs</a></li>
-</ul>
-</div>
-<div class="toctree-wrapper compound">
-<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
-<ul>
-<li class="toctree-l1"><a class="reference internal"
href="driver/installation.html">Installation</a><ul>
-<li class="toctree-l2"><a class="reference internal"
href="driver/installation.html#c-c">C/C++</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="driver/installation.html#go">Go</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="driver/installation.html#java">Java</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="driver/installation.html#python">Python</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal"
href="driver/status.html">Driver Feature Support/Implementation Status</a><ul>
-<li class="toctree-l2"><a class="reference internal"
href="driver/status.html#implementation-status">Implementation Status</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="driver/status.html#feature-support">Feature Support</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal"
href="driver/cpp/index.html">C/C++/Python</a><ul>
-<li class="toctree-l2"><a class="reference internal"
href="driver/cpp/postgresql.html">PostgreSQL Driver</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="driver/cpp/sqlite.html">SQLite Driver</a></li>
-</ul>
+<li><p>A set of abstract APIs in different languages (C/C++, Go, and Java,
+with more on the way) for working with databases and Arrow data.</p>
+<p>For example, result sets of queries in ADBC are all returned as
+streams of Arrow data, not row-by-row.</p>
</li>
-<li class="toctree-l1"><a class="reference internal"
href="driver/go/index.html">Go</a><ul>
-<li class="toctree-l2"><a class="reference internal"
href="driver/go/flight_sql.html">Flight SQL Driver</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal"
href="driver/java/index.html">Java</a><ul>
-<li class="toctree-l2"><a class="reference internal"
href="driver/java/flight_sql.html">Flight SQL</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="driver/java/jdbc.html">JDBC Adapter</a></li>
+<li><p>A set of implementations of that API in different languages (C/C++,
+Go, Java, Python, and Ruby) that target different databases
+(e.g. PostgreSQL, SQLite, any database supporting Flight SQL).</p></li>
</ul>
-</li>
-</ul>
-</div>
-<div class="toctree-wrapper compound">
-<p class="caption" role="heading"><span
class="caption-text">Tutorials</span></p>
-<ul>
-<li class="toctree-l1"><a class="reference internal"
href="python/quickstart.html">Quickstart (Python)</a></li>
-</ul>
-</div>
-<div class="toctree-wrapper compound">
-<p class="caption" role="heading"><span class="caption-text">Language-Specific
APIs</span></p>
-<ul>
-<li class="toctree-l1"><a class="reference internal"
href="cpp/index.html">C/C++</a></li>
-<li class="toctree-l1"><a class="reference internal"
href="go/index.html">Go</a></li>
-<li class="toctree-l1"><a class="reference internal"
href="java/index.html">Java</a></li>
-<li class="toctree-l1"><a class="reference internal"
href="python/index.html">Python</a></li>
-</ul>
-</div>
-<div class="toctree-wrapper compound">
-<p class="caption" role="heading"><span
class="caption-text">Development</span></p>
-<ul>
-<li class="toctree-l1"><a class="reference internal"
href="development/contributing.html">Contributing</a></li>
-<li class="toctree-l1"><a class="reference internal"
href="development/nightly.html">Nightly Packages</a></li>
-<li class="toctree-l1"><a class="reference internal"
href="development/releasing.html">Release Management Guide</a></li>
-</ul>
-</div>
-<section id="indices-and-tables">
-<h2>Indices and tables<a class="headerlink" href="#indices-and-tables"
title="Permalink to this heading">#</a></h2>
+</section>
+<section id="why-not-just-use-jdbc-odbc">
+<h2>Why not just use JDBC/ODBC?<a class="headerlink"
href="#why-not-just-use-jdbc-odbc" title="Permalink to this heading">#</a></h2>
+<p>JDBC uses row-based interfaces like <a class="reference external"
href="https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html">ResultSet</a>.
When working with
+columnar data, like Arrow data, this means that we have to convert the
+data at least once and possibly twice:</p>
<ul class="simple">
-<li><p><a class="reference internal" href="genindex.html"><span class="std
std-ref">Index</span></a></p></li>
-<li><p><a class="reference internal" href="py-modindex.html"><span class="std
std-ref">Module Index</span></a></p></li>
-<li><p><a class="reference internal" href="search.html"><span class="std
std-ref">Search Page</span></a></p></li>
+<li><p>Once (possibly) in the driver or database, to take columnar data and
+convert it into a row-based format so it can be returned through the
+JDBC APIs.</p></li>
+<li><p>Once (always) when a client application pulls data from the JDBC
+API, to convert the rows into columns.</p></li>
</ul>
+<p>In keeping with Arrow’s “zero-copy” or “minimal-copy” ethos, we would
+like to avoid these unnecessary conversions.</p>
+<p>ODBC is in a similar situation. Although ODBC does support
+<a class="reference external"
href="https://learn.microsoft.com/en-us/sql/odbc/reference/develop-app/column-wise-binding?view=sql-server-ver16">“column-wise
binding”</a>, not all ODBC drivers support it, and it is
+more complex to use. Additionally, ODBC uses caller-allocated buffers
+(which often means forcing a data copy), and ODBC specifies data
+layouts that are not quite Arrow-compatible (requiring a data
+conversion anyways).</p>
+</section>
+<section id="how-do-adbc-and-arrow-flight-sql-differ">
+<h2>How do ADBC and Arrow Flight SQL differ?<a class="headerlink"
href="#how-do-adbc-and-arrow-flight-sql-differ" title="Permalink to this
heading">#</a></h2>
+<p>ADBC is a <em>client API specification</em>. It doesn’t define what goes on
+between your client and the database, just the API calls that you make
+as an application developer. Under the hood, a driver must take those
+API calls and talk to the actual database. Another perspective is
+that ADBC is all about the client-side, and specifies nothing about
+the network protocol or server-side implementation.</p>
+<p>Flight SQL is a <em>wire protocol</em>. It specifies the exact commands to
+send to a database to perform various actions like authenticating with
+the database, creating prepared statements, or executing queries.
+Flight SQL specifies the network protocol that the client and the
+server must implement.</p>
+<p>One more way of looking at it: an ADBC driver can be written for a
+database purely as a client library. (That’s how the PostgreSQL
+driver in this repository is implemented, for instance—as a wrapper
+around libpq.) But adding Flight SQL support to a database means
+either modifying the database to run a Flight SQL service, or putting
+the database behind a proxy that translates between Flight SQL and the
+database.</p>
+</section>
+<section id="why-not-just-use-arrow-flight-sql">
+<h2>Why not just use Arrow Flight SQL?<a class="headerlink"
href="#why-not-just-use-arrow-flight-sql" title="Permalink to this
heading">#</a></h2>
+<p>Because ADBC is client-side, ADBC can support databases that either
+don’t support returning Arrow data, or support Arrow data through a
+protocol besides Flight SQL.</p>
+</section>
+<section id="then-do-we-even-need-arrow-flight-sql">
+<h2>Then do we even need Arrow Flight SQL?<a class="headerlink"
href="#then-do-we-even-need-arrow-flight-sql" title="Permalink to this
heading">#</a></h2>
+<p>Flight SQL is a concrete protocol that database vendors can implement,
+instead of designing their own protocol. And Flight SQL also has JDBC
+and ODBC drivers for maximal compatibility.</p>
+<p>As an analogy: many databases implement the PostgreSQL wire protocol,
+so that they can gain access to all the PostgreSQL clients, including
+JDBC and ODBC drivers. (And JDBC/ODBC users can still use other
+drivers to work with other databases.)</p>
+<p>For the Arrow ecosystem, we hope databases will implement the Flight
+SQL wire protocol, giving them access to all the Flight SQL clients,
+including ADBC, JDBC, and ODBC drivers. (And ADBC users can still use
+other drivers to work with other databases.)</p>
+</section>
+<section id="so-what-is-the-adbc-flight-sql-driver-then">
+<h2>So what is the “ADBC Flight SQL driver” then?<a class="headerlink"
href="#so-what-is-the-adbc-flight-sql-driver-then" title="Permalink to this
heading">#</a></h2>
+<p>The ADBC Flight SQL driver implements the ADBC API standard (which an
+application interacts with) using the Flight SQL wire protocol (which
+a database server exposes). So it’s a generic driver that can talk to
+many databases, as long as those implement Flight SQL.</p>
+<p>This is a little unusual, in that most database drivers and database
+protocols you’ll find were meant for a specific database. But Flight
+SQL was designed to be agnostic to the database from the start, and so
+was ADBC.</p>
+<p>It sounds like they overlap, but they complement each other because
+they operate at different levels of abstraction. Database developers
+can just provide a Flight SQL service, which will give them ADBC,
+JDBC, and ODBC drivers for free, without having to build and maintain
+those drivers on their own. Database users can just use ADBC as the
+one Arrow-native API to work with both Arrow-native and
+non-Arrow-native databases, whether those databases support Flight
+SQL, a custom Arrow-native protocol, or no Arrow-native protocol.</p>
+</section>
+<section id="and-then-what-is-the-adbc-jdbc-driver">
+<h2>And then what is the “ADBC JDBC driver”?<a class="headerlink"
href="#and-then-what-is-the-adbc-jdbc-driver" title="Permalink to this
heading">#</a></h2>
+<p>The ADBC JDBC driver, or a hypothetical ADBC ODBC driver, adapts the
+JDBC API to the ADBC API, so that an ADBC user can interact with
+databases that have JDBC APIs available. While this doesn’t give you
+the best possible performance (you’re paying for tranposing the data
+back and forth!), it does save you the hassle of writing those
+conversions yourself.</p>
+<p>Similar libraries already exist; for instance, <a class="reference
external" href="https://turbodbc.readthedocs.io/en/latest/">Turbodbc</a> wraps
any
+ODBC driver in Python’s DBAPI (PEP 249), and <a class="reference external"
href="https://central.sonatype.com/artifact/org.apache.arrow/arrow-jdbc/11.0.0">arrow-jdbc</a>
wraps any
+JDBC driver in a bespoke Arrow-based API.</p>
</section>
</section>
@@ -415,16 +441,26 @@ Arrow-native database protocols.</p>
<footer>
<div class="related-pages">
- <a class="next-page" href="format/specification.html">
+ <a class="next-page" href="driver/installation.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
- <div class="title">ADBC API Standard</div>
+ <div class="title">Installation</div>
</div>
<svg class="furo-related-icon"><use
href="#svg-arrow-right"></use></svg>
</a>
-
+ <a class="prev-page" href="format/comparison.html">
+ <svg class="furo-related-icon"><use
href="#svg-arrow-right"></use></svg>
+ <div class="page-info">
+ <div class="context">
+ <span>Previous</span>
+ </div>
+
+ <div class="title">Comparison with Other APIs</div>
+
+ </div>
+ </a>
</div>
<div class="bottom-of-page">
<div class="left-details">
@@ -455,8 +491,14 @@ Arrow-native database protocols.</p>
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
-<li><a class="reference internal" href="#">Apache Arrow ADBC</a><ul>
-<li><a class="reference internal" href="#indices-and-tables">Indices and
tables</a></li>
+<li><a class="reference internal" href="#">Frequently Asked Questions
(FAQ)</a><ul>
+<li><a class="reference internal" href="#what-exactly-is-adbc">What exactly is
ADBC?</a></li>
+<li><a class="reference internal" href="#why-not-just-use-jdbc-odbc">Why not
just use JDBC/ODBC?</a></li>
+<li><a class="reference internal"
href="#how-do-adbc-and-arrow-flight-sql-differ">How do ADBC and Arrow Flight
SQL differ?</a></li>
+<li><a class="reference internal"
href="#why-not-just-use-arrow-flight-sql">Why not just use Arrow Flight
SQL?</a></li>
+<li><a class="reference internal"
href="#then-do-we-even-need-arrow-flight-sql">Then do we even need Arrow Flight
SQL?</a></li>
+<li><a class="reference internal"
href="#so-what-is-the-adbc-flight-sql-driver-then">So what is the “ADBC Flight
SQL driver” then?</a></li>
+<li><a class="reference internal"
href="#and-then-what-is-the-adbc-jdbc-driver">And then what is the “ADBC JDBC
driver”?</a></li>
</ul>
</li>
</ul>
diff --git a/main/format/comparison.html b/main/format/comparison.html
index e1e10a6..5f06e41 100644
--- a/main/format/comparison.html
+++ b/main/format/comparison.html
@@ -5,7 +5,7 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="generator"
content="Docutils 0.19: https://docutils.sourceforge.io/" />
-<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="Versioning and
Compatibility" href="versioning.html" />
+<link rel="index" title="Index" href="../genindex.html" /><link rel="search"
title="Search" href="../search.html" /><link rel="next" title="Frequently Asked
Questions (FAQ)" href="../faq.html" /><link rel="prev" title="Versioning and
Compatibility" href="versioning.html" />
<!-- Generated with Sphinx 5.3.0 and Furo 2022.12.07 -->
<title>Comparison with Other APIs - ADBC 0.3.0 (dev)
documentation</title>
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1 current current-page"><a class="current reference
internal" href="#">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
@@ -390,12 +391,12 @@
<footer>
<div class="related-pages">
- <a class="next-page" href="../driver/installation.html">
+ <a class="next-page" href="../faq.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
- <div class="title">Installation</div>
+ <div class="title">Frequently Asked Questions (FAQ)</div>
</div>
<svg class="furo-related-icon"><use
href="#svg-arrow-right"></use></svg>
</a>
diff --git a/main/format/specification.html b/main/format/specification.html
index 012d6c2..1d8e7a5 100644
--- a/main/format/specification.html
+++ b/main/format/specification.html
@@ -223,6 +223,7 @@
<li class="toctree-l1 current current-page"><a class="current reference
internal" href="#">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/format/versioning.html b/main/format/versioning.html
index f759dc3..713b225 100644
--- a/main/format/versioning.html
+++ b/main/format/versioning.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="specification.html">ADBC API Standard</a></li>
<li class="toctree-l1 current current-page"><a class="current reference
internal" href="#">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/genindex.html b/main/genindex.html
index c3525f2..56b23dd 100644
--- a/main/genindex.html
+++ b/main/genindex.html
@@ -221,6 +221,7 @@
<li class="toctree-l1"><a class="reference internal"
href="format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/go/index.html b/main/go/index.html
index b0eeba0..b9bb929 100644
--- a/main/go/index.html
+++ b/main/go/index.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/index.html b/main/index.html
index c9e9210..b1d549b 100644
--- a/main/index.html
+++ b/main/index.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
@@ -338,12 +339,14 @@ work with multiple databases, whether Arrow-native or not.
Application code should not need to juggle conversions from
non-Arrow-native datasources alongside bindings for multiple
Arrow-native database protocols.</p>
+<p>To learn more about ADBC, see the <a class="reference external"
href="https://arrow.apache.org/blog/2023/01/05/introducing-arrow-adbc/">introductory
blog post</a>.</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span
class="caption-text">Specifications</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal"
href="format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
</div>
<div class="toctree-wrapper compound">
diff --git a/main/java/index.html b/main/java/index.html
index de58b6e..956cad7 100644
--- a/main/java/index.html
+++ b/main/java/index.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/objects.inv b/main/objects.inv
index bba697c..e2782bd 100644
Binary files a/main/objects.inv and b/main/objects.inv differ
diff --git a/main/py-modindex.html b/main/py-modindex.html
index 27264f9..acb4fc2 100644
--- a/main/py-modindex.html
+++ b/main/py-modindex.html
@@ -221,6 +221,7 @@
<li class="toctree-l1"><a class="reference internal"
href="format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/python/api/adbc_driver_manager.html
b/main/python/api/adbc_driver_manager.html
index d578889..7b9951a 100644
--- a/main/python/api/adbc_driver_manager.html
+++ b/main/python/api/adbc_driver_manager.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/python/api/adbc_driver_postgresql.html
b/main/python/api/adbc_driver_postgresql.html
index 0cd07a1..3ccd201 100644
--- a/main/python/api/adbc_driver_postgresql.html
+++ b/main/python/api/adbc_driver_postgresql.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/python/api/adbc_driver_sqlite.html
b/main/python/api/adbc_driver_sqlite.html
index 19206e2..019507b 100644
--- a/main/python/api/adbc_driver_sqlite.html
+++ b/main/python/api/adbc_driver_sqlite.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/python/api/index.html b/main/python/api/index.html
index 73931a3..2fc344b 100644
--- a/main/python/api/index.html
+++ b/main/python/api/index.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/python/driver_manager.html b/main/python/driver_manager.html
index 488dc4b..1d724f0 100644
--- a/main/python/driver_manager.html
+++ b/main/python/driver_manager.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/python/index.html b/main/python/index.html
index 197dfa6..7210d34 100644
--- a/main/python/index.html
+++ b/main/python/index.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/python/quickstart.html b/main/python/quickstart.html
index 14190f0..0404239 100644
--- a/main/python/quickstart.html
+++ b/main/python/quickstart.html
@@ -223,6 +223,7 @@
<li class="toctree-l1"><a class="reference internal"
href="../format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="../format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/search.html b/main/search.html
index 7520a21..f03db7f 100644
--- a/main/search.html
+++ b/main/search.html
@@ -220,6 +220,7 @@
<li class="toctree-l1"><a class="reference internal"
href="format/specification.html">ADBC API Standard</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/versioning.html">Versioning and Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal"
href="format/comparison.html">Comparison with Other APIs</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="faq.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drivers</span></p>
<ul>
diff --git a/main/searchindex.js b/main/searchindex.js
index edea83f..d1941cb 100644
--- a/main/searchindex.js
+++ b/main/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["cpp/api/adbc", "cpp/api/adbc_driver_manager",
"cpp/api/index", "cpp/concurrency", "cpp/driver_manager", "cpp/index",
"development/contributing", "development/nightly", "development/releasing",
"driver/cpp/index", "driver/cpp/postgresql", "driver/cpp/sqlite",
"driver/go/flight_sql", "driver/go/index", "driver/installation",
"driver/java/flight_sql", "driver/java/index", "driver/java/jdbc",
"driver/status", "format/comparison", "format/specification", "format [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["cpp/api/adbc", "cpp/api/adbc_driver_manager",
"cpp/api/index", "cpp/concurrency", "cpp/driver_manager", "cpp/index",
"development/contributing", "development/nightly", "development/releasing",
"driver/cpp/index", "driver/cpp/postgresql", "driver/cpp/sqlite",
"driver/go/flight_sql", "driver/go/index", "driver/installation",
"driver/java/flight_sql", "driver/java/index", "driver/java/jdbc",
"driver/status", "faq", "format/comparison", "format/specification", [...]
\ No newline at end of file