You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by li...@apache.org on 2023/06/09 17:05:39 UTC
[arrow-adbc] branch main updated: docs: move driver documentation to top-level (#746)
This is an automated email from the ASF dual-hosted git repository.
lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git
The following commit(s) were added to refs/heads/main by this push:
new e013175b docs: move driver documentation to top-level (#746)
e013175b is described below
commit e013175b7e13c54d064ed3a52a4d18e1305892e5
Author: David Li <li...@gmail.com>
AuthorDate: Fri Jun 9 13:05:33 2023 -0400
docs: move driver documentation to top-level (#746)
- Drivers are now all listed together, instead of trying to split by
language
- Don't list pages under multiple indices; this is confusing
- Update driver documentation pages (and add R in a few places)
- Link to generated Go documentation
Fixes #738.
---
docs/source/driver/cpp/index.rst | 32 ------
docs/source/driver/{go => }/flight_sql.rst | 37 ++++++-
docs/source/driver/go/index.rst | 33 ------
docs/source/driver/java/flight_sql.rst | 33 ------
docs/source/driver/java/index.rst | 31 ------
docs/source/driver/java/jdbc.rst | 32 ------
docs/source/driver/jdbc.rst | 67 ++++++++++++
docs/source/driver/{cpp => }/postgresql.rst | 67 ++++++++----
docs/source/driver/{go => }/snowflake.rst | 162 ++++++++++++++++++++--------
docs/source/driver/{cpp => }/sqlite.rst | 47 ++++++--
docs/source/driver/status.rst | 6 +-
docs/source/go/index.rst | 25 -----
docs/source/index.rst | 65 +++++------
docs/source/python/quickstart.rst | 6 +-
14 files changed, 341 insertions(+), 302 deletions(-)
diff --git a/docs/source/driver/cpp/index.rst b/docs/source/driver/cpp/index.rst
deleted file mode 100644
index 0c411a00..00000000
--- a/docs/source/driver/cpp/index.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-.. 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.
-
-============
-C/C++/Python
-============
-
-.. toctree::
- :maxdepth: 1
- :caption: Drivers
-
- postgresql
- sqlite
-
-The ADBC project ships some drivers. Others may (eventually) be
-available from database vendors or third parties. The drivers here
-implement the C API standard and are directly usable in C/C++. They
-also provide Python bindings.
diff --git a/docs/source/driver/go/flight_sql.rst b/docs/source/driver/flight_sql.rst
similarity index 90%
rename from docs/source/driver/go/flight_sql.rst
rename to docs/source/driver/flight_sql.rst
index 2b487e3f..9ec20628 100644
--- a/docs/source/driver/go/flight_sql.rst
+++ b/docs/source/driver/flight_sql.rst
@@ -19,16 +19,25 @@
Flight SQL Driver
=================
+**Available for:** C/C++, GLib/Ruby, Go, Java, Python
+
The Flight SQL Driver provides access to any database implementing a
:doc:`arrow:format/FlightSql` compatible endpoint.
Installation
============
-The Flight SQL driver is shipped as a standalone library.
-
.. tab-set::
+ .. tab-item:: C/C++
+ :sync: cpp
+
+ For conda-forge users:
+
+ .. code-block:: shell
+
+ mamba install libadbc-driver-flightsql
+
.. tab-item:: Go
:sync: go
@@ -36,12 +45,30 @@ The Flight SQL driver is shipped as a standalone library.
go get github.com/apache/arrow-adbc/go
+ .. tab-item:: Java
+ :sync: java
+
+ Add a dependency on ``org.apache.arrow.adbc:adbc-driver-flight-sql``.
+
+ For Maven users:
+
+ .. code-block:: xml
+
+ <dependency>
+ <groupId>org.apache.arrow.adbc</groupId>
+ <artifactId>adbc-driver-flight-sql</artifactId>
+ </dependency>
+
.. tab-item:: Python
:sync: python
.. code-block:: shell
- pip install adbc_driver_sqlite
+ # For conda-forge
+ mamba install adbc-driver-flightsql
+
+ # For pip
+ pip install adbc_driver_flightsql
Usage
=====
@@ -81,6 +108,10 @@ Supported Features
The Flight SQL driver generally supports features defined in the ADBC
API specification 1.0.0, as well as some additional, custom options.
+.. warning:: The Java driver does not support all options here. See
+ `issue #745
+ <https://github.com/apache/arrow-adbc/issues/745>`_.
+
Authentication
--------------
diff --git a/docs/source/driver/go/index.rst b/docs/source/driver/go/index.rst
deleted file mode 100644
index 687c88a6..00000000
--- a/docs/source/driver/go/index.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-.. 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.
-
-==
-Go
-==
-
-.. toctree::
- :maxdepth: 1
- :caption: Drivers
-
- flight_sql
- snowflake
-
-The ADBC project ships some drivers. Others may (eventually) be
-available from database vendors or third parties. The drivers here
-implement the Go API standard and are directly usable in Go. They
-also provide bindings that let them be used through the C API
-standard, as well as Python bindings on top of that.
diff --git a/docs/source/driver/java/flight_sql.rst b/docs/source/driver/java/flight_sql.rst
deleted file mode 100644
index 90f63721..00000000
--- a/docs/source/driver/java/flight_sql.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-.. 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.
-
-==========
-Flight SQL
-==========
-
-The Flight SQL Driver provides access to any database implementing a
-:doc:`arrow:format/FlightSql` compatible endpoint.
-
-Installation
-============
-
-Add a dependency on ``org.apache.arrow.adbc:adbc-driver-flight-sql``.
-
-Usage
-=====
-
-Provide the parameter ``adbc.url`` when creating the database.
diff --git a/docs/source/driver/java/index.rst b/docs/source/driver/java/index.rst
deleted file mode 100644
index 614754e3..00000000
--- a/docs/source/driver/java/index.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-.. 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.
-
-====
-Java
-====
-
-.. toctree::
- :maxdepth: 1
- :caption: Drivers
-
- flight_sql
- jdbc
-
-The ADBC project ships some drivers. Others may (eventually) be
-available from database vendors or third parties. The drivers here
-implement the Java API standard.
diff --git a/docs/source/driver/java/jdbc.rst b/docs/source/driver/java/jdbc.rst
deleted file mode 100644
index 6409c960..00000000
--- a/docs/source/driver/java/jdbc.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-.. 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.
-
-============
-JDBC Adapter
-============
-
-The JDBC Adapter provides access to any database with a JDBC driver.
-
-Installation
-============
-
-Add a dependency on ``org.apache.arrow.adbc:adbc-driver-jdbc``.
-
-Usage
-=====
-
-Provide the parameter ``adbc.url`` when creating the database.
diff --git a/docs/source/driver/jdbc.rst b/docs/source/driver/jdbc.rst
new file mode 100644
index 00000000..ed17f125
--- /dev/null
+++ b/docs/source/driver/jdbc.rst
@@ -0,0 +1,67 @@
+.. 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.
+
+============
+JDBC Adapter
+============
+
+**Available for:** Java
+
+The JDBC Adapter provides access to any database with a JDBC driver.
+
+Installation
+============
+
+.. tab-set::
+
+ .. tab-item:: Java
+ :sync: java
+
+ Add a dependency on ``org.apache.arrow.adbc:adbc-driver-flight-sql``.
+
+ For Maven users:
+
+ .. code-block:: xml
+
+ <dependency>
+ <groupId>org.apache.arrow.adbc</groupId>
+ <artifactId>adbc-driver-jdbc</artifactId>
+ </dependency>
+
+Usage
+=====
+
+To connect to a database, supply the JDBC URI as the "uri" parameter,
+or an instance of a ``javax.sql.DataSource`` as the
+"adbc.jdbc.datasource" parameter.
+
+.. tab-set::
+
+ .. tab-item:: Java
+ :sync: java
+
+ .. code-block:: java
+
+ final Map<String, Object> parameters = new HashMap<>();
+ parameters.put(AdbcDriver.PARAM_URL, "jdbc:postgresql://localhost:5432/postgres");
+ AdbcDatabase db = new JdbcDriver(allocator).open(parameters);
+
+Supported Features
+==================
+
+The Flight SQL driver generally supports features defined in the ADBC
+API specification 1.0.0.
diff --git a/docs/source/driver/cpp/postgresql.rst b/docs/source/driver/postgresql.rst
similarity index 68%
rename from docs/source/driver/cpp/postgresql.rst
rename to docs/source/driver/postgresql.rst
index c39d7cf3..570ac81f 100644
--- a/docs/source/driver/cpp/postgresql.rst
+++ b/docs/source/driver/postgresql.rst
@@ -19,6 +19,8 @@
PostgreSQL Driver
=================
+**Available for:** C/C++, GLib/Ruby, Go, Python, R
+
The PostgreSQL driver provides access to any database that supports
the PostgreSQL wire format. It wraps `libpq`_, the client library for
PostgreSQL. The project owes credit to 0x0L's `pgeon`_ for the
@@ -29,32 +31,52 @@ overall approach.
.. _libpq: https://www.postgresql.org/docs/current/libpq.html
.. _pgeon: https://github.com/0x0L/pgeon
-Status
-======
-
-The PostgreSQL driver is experimental. Performance/optimization and
-support for complex types and different ADBC features is still
-ongoing.
+.. note:: The PostgreSQL driver is experimental.
+ Performance/optimization and support for complex types and
+ different ADBC features is still ongoing.
Installation
============
-The PostgreSQL driver is shipped as a standalone library.
-
.. tab-set::
- .. tab-item:: C++
+ .. tab-item:: C/C++
:sync: cpp
- See :ref:`contributing` to build and install the package from source.
+ For conda-forge users:
+
+ .. code-block:: shell
+
+ mamba install libadbc-driver-postgresql
+
+ .. tab-item:: Go
+ :sync: go
+
+ Install the C/C++ package and use the Go driver manager.
+
+ .. code-block:: shell
+
+ go get github.com/apache/arrow-adbc/go
.. tab-item:: Python
:sync: python
.. code-block:: shell
+ # For conda-forge
+ mamba install adbc-driver-postgresql
+
+ # For pip
pip install adbc_driver_postgresql
+ .. tab-item:: R
+ :sync: r
+
+ .. code-block:: r
+
+ # install.packages("remotes")
+ remotes::install_github("apache/arrow-adbc/r/adbcpostgresql")
+
Usage
=====
@@ -84,14 +106,29 @@ the :cpp:class:`AdbcDatabase`. This should be a `connection URI
import adbc_driver_postgresql.dbapi
-
- uri = "postgresql://localhost:5433"
+ uri = "postgresql://user:pass@localhost:5433/postgres"
with adbc_driver_postgresql.dbapi.connect(uri) as conn:
pass
+ .. tab-item:: R
+ :sync: r
+
+ .. code-block:: r
+
+ library(adbcdrivermanager)
+
+ # Use the driver manager to connect to a database
+ uri <- Sys.getenv("ADBC_POSTGRESQL_TEST_URI")
+ db <- adbc_database_init(adbcpostgresql::adbcpostgresql(), uri = uri)
+ con <- adbc_connection_init(db)
+
Supported Features
==================
+The PostgreSQL driver mostly supports features defined in the ADBC API
+specification 1.0.0, but not all cases are fully implemented
+(particularly around bind parameters and prepared statements).
+
Bulk Ingestion
--------------
@@ -103,12 +140,6 @@ Partitioned Result Sets
Partitioned result sets are not supported.
-Performance
------------
-
-The driver makes use of COPY and the binary format to speed up result
-set reading. Formal benchmarking is forthcoming.
-
Transactions
------------
diff --git a/docs/source/driver/go/snowflake.rst b/docs/source/driver/snowflake.rst
similarity index 77%
rename from docs/source/driver/go/snowflake.rst
rename to docs/source/driver/snowflake.rst
index 37514561..273818db 100644
--- a/docs/source/driver/go/snowflake.rst
+++ b/docs/source/driver/snowflake.rst
@@ -19,21 +19,50 @@
Snowflake Driver
================
+**Available for:** C/C++, GLib/Ruby, Go, Python, R
+
The Snowflake Driver provides access to Snowflake Database Warehouses.
Installation
============
-The Snowflake Driver is shipped as a standalone library
-
.. tab-set::
- .. tab-item:: Go
- :sync: go
+ .. tab-item:: C/C++
+ :sync: cpp
+
+ For conda-forge users:
+
+ .. code-block:: shell
+
+ mamba install libadbc-driver-snowflake
+
+ .. tab-item:: Go
+ :sync: go
+
+ .. code-block:: shell
+
+ go get github.com/apache/arrow-adbc/go/adbc/driver/snowflake
+
+ .. tab-item:: Python
+ :sync: python
+
+ .. code-block:: shell
+
+ # For conda-forge
+ mamba install adbc-driver-snowflake
- .. code-block:: shell
+ # For pip
+ pip install adbc_driver_snowflake
- go get github.com/apache/arrow-adbc/go/adbc/driver/snowflake
+ .. tab-item:: R
+ :sync: r
+
+ .. code-block:: shell
+
+ # install.packages("remotes")
+ remotes::install_github("apache/arrow-adbc/r/adbcdrivermanager", build = FALSE)
+ remotes::install_github("apache/arrow-adbc/r/adbcsnowflake", build = FALSE)
Usage
=====
@@ -43,19 +72,41 @@ constructing the :cpp::class:`AdbcDatabase`.
.. tab-set::
- .. tab-item:: C++
- :sync: cpp
+ .. tab-item:: C++
+ :sync: cpp
+
+ .. code-block:: cpp
+
+ #include "adbc.h"
+
+ // Ignoring error handling
+ struct AdbcDatabase database;
+ AdbcDatabaseNew(&database, nullptr);
+ AdbcDatabaseSetOption(&database, "driver", "adbc_driver_snowflake", nullptr);
+ AdbcDatabaseSetOption(&database, "uri", "<snowflake uri>", nullptr);
+ AdbcDatabaseInit(&database, nullptr);
+
+ .. tab-item:: Python
+ :sync: python
+
+ .. code-block:: python
+
+ import adbc_driver_snowflake.dbapi
+
+ with adbc_driver_snowflake.dbapi.connect("<snowflake uri>") as conn:
+ pass
+
+ .. tab-item:: R
+ :sync: r
- .. code-block:: cpp
+ .. code-block:: r
- #include "adbc.h"
+ library(adbcdrivermanager)
- // Ignoring error handling
- struct AdbcDatabase database;
- AdbcDatabaseNew(&database, nullptr);
- AdbcDatabaseSetOption(&database, "driver", "adbc_driver_snowflake", nullptr);
- AdbcDatabaseSetOption(&database, "uri", "<snowflake uri>", nullptr);
- AdbcDatabaseInit(&database, nullptr);
+ # Use the driver manager to connect to a database
+ uri <- Sys.getenv("ADBC_SNOWFLAKE_TEST_URI")
+ db <- adbc_database_init(adbcsnowflake::adbcsnowflake(), uri = uri)
+ con <- adbc_connection_init(db)
URI Format
----------
@@ -294,33 +345,52 @@ Because Snowflake types do not necessary match up 1-to-1 with Arrow types
the following is what should be expected when requesting data. Any conversions
indicated are done to ensure consistency of the stream of record batches.
-+----------------+---------------+-----------------------------------------+
-| Snowflake Type | Arrow Type | Notes |
-+----------------+---------------+-----------------------------------------+
-| Integral Types | Int64 | All integral types in snowflake are |
-| | | stored as 64-bit integers. |
-+----------------+---------------+-----------------------------------------+
-| Float/Double | Float64 | Snowflake does not distinguish between |
-| | | float or double. All are 64-bit values |
-+----------------+---------------+-----------------------------------------+
-| Decimal/Numeric| Int64/Float64 | If Scale == 0 then Int64 is used, else |
-| | | Float64 is returned. |
-+----------------+---------------+-----------------------------------------+
-| Time | Time64(ns) | For ingestion, time32 will also work |
-+----------------+---------------+-----------------------------------------+
-| Date | Date32 | For ingestion, Date64 will also work |
-+----------------+---------------+-----------------------------------------+
-| Timestamp_LTZ | Timestamp(ns) | Local time zone will be used. |
-| Timestamp_NTZ | | No timezone specified in Arrow type info|
-| Timestamp_TZ | | Values will be converted to UTC |
-+----------------+---------------+-----------------------------------------+
-| Variant | String | Snowflake does not provide nested type |
-| Object | | information. So each value will be a |
-| Array | | string, similar to JSON, which can be |
-| | | parsed. The ``logicalType`` metadata key|
-| | | will contain the snowflake field type. |
-+----------------+---------------+-----------------------------------------+
-| Geography | String | There is no canonical Arrow type for |
-| Geometry | | these and snowflake returns them as |
-| | | strings. |
-+----------------+---------------+-----------------------------------------+
+.. list-table::
+ :header-rows: 1
+
+ * - Snowflake Type
+ - Arrow Type
+ - Notes
+
+ * - integral types
+ - int64
+ - All integral types in Snowflake are stored as 64-bit integers.
+
+ * - float/double
+ - float64
+ - Snowflake does not distinguish between float or double. Both are 64-bit values.
+
+ * - decimal/numeric
+ - int64/float64
+ - If scale == 0, then int64 is used, else float64.
+
+ * - time
+ - time64[ns]
+ - For ingestion, time32 can also be used.
+
+ * - date
+ - date32
+ - For ingestion, date64 can also be used.
+
+ * - | timestamp_ltz
+ | timestamp_ntz
+ | timestamp_tz
+ - timestamp[ns]
+ - Local time zone will be used. No timezone will be specified in
+ the Arrow type. Values will be converted to UTC.
+
+ * - | variant
+ | object
+ | array
+ - string
+ - Snowflake does not provide information about nested
+ types. Values will be strings in a format similar to JSON that
+ can be parsed. The Arrow type will contain a metadata key
+ ``logicalType`` with the Snowflake field type.
+
+ * - | geography
+ | geometry
+ - string
+ - There is no current canonical Arrow (extension) type for these
+ types, so they will be returned as the string values that
+ Snowflake provides.
diff --git a/docs/source/driver/cpp/sqlite.rst b/docs/source/driver/sqlite.rst
similarity index 74%
rename from docs/source/driver/cpp/sqlite.rst
rename to docs/source/driver/sqlite.rst
index 3b2b3800..4693b7d1 100644
--- a/docs/source/driver/cpp/sqlite.rst
+++ b/docs/source/driver/sqlite.rst
@@ -19,34 +19,47 @@
SQLite Driver
=============
-The SQLite driver provides access to SQLite databases.
+**Available for:** C/C++, GLib/Ruby, Go, Python, R
-Status
-======
+The SQLite driver provides access to SQLite databases.
-The SQLite driver is essentially a "reference" driver that was used
-during ADBC development. It generally supports most ADBC features but
-has not received attention to optimization.
+This driver is essentially a "reference" driver that was used during
+ADBC development. It generally supports most ADBC features but has
+not received attention to optimization.
Installation
============
-The SQLite driver is shipped as a standalone library.
-
.. tab-set::
- .. tab-item:: C++
+ .. tab-item:: C/C++
:sync: cpp
- See :ref:`contributing` to build and install the package from source.
+ For conda-forge users:
+
+ .. code-block:: shell
+
+ mamba install libadbc-driver-sqlite
.. tab-item:: Python
:sync: python
.. code-block:: shell
+ # For conda-forge
+ mamba install adbc-driver-sqlite
+
+ # For pip
pip install adbc_driver_sqlite
+ .. tab-item:: R
+ :sync: r
+
+ .. code-block:: shell
+
+ # install.packages("remotes")
+ remotes::install_github("apache/arrow-adbc/r/adbcdrivermanager", build = FALSE)
+ remotes::install_github("apache/arrow-adbc/r/adbcsqlite", build = FALSE)
Usage
=====
@@ -69,7 +82,8 @@ shared across all connections.
// Ignoring error handling
struct AdbcDatabase database;
AdbcDatabaseNew(&database, nullptr);
- AdbcDatabaseSetOption(&database, "uri", "file:mydb.db", nullptr);
+ AdbcDatabaseSetOption(&database, "driver", "adbc_driver_sqlite", nullptr);
+ AdbcDatabaseSetOption(&database, "uri", "<sqlite uri>", nullptr);
AdbcDatabaseInit(&database, nullptr);
.. tab-item:: Python
@@ -82,6 +96,17 @@ shared across all connections.
with adbc_driver_sqlite.dbapi.connect() as conn:
pass
+ .. tab-item:: R
+ :sync: r
+
+ .. code-block:: r
+
+ library(adbcdrivermanager)
+
+ # Use the driver manager to connect to a database
+ db <- adbc_database_init(adbcsqlite::adbcsqlite(), uri = ":memory:")
+ con <- adbc_connection_init(db)
+
Supported Features
==================
diff --git a/docs/source/driver/status.rst b/docs/source/driver/status.rst
index 58fbd579..fd1bb663 100644
--- a/docs/source/driver/status.rst
+++ b/docs/source/driver/status.rst
@@ -15,9 +15,9 @@
.. specific language governing permissions and limitations
.. under the License.
-============================================
-Driver Feature Support/Implementation Status
-============================================
+============================
+Driver Implementation Status
+============================
Implementation Status
=====================
diff --git a/docs/source/go/index.rst b/docs/source/go/index.rst
deleted file mode 100644
index 570eae94..00000000
--- a/docs/source/go/index.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-.. 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.
-
-===
-Go
-===
-
-.. toctree::
- :maxdepth: 2
-
-.. note:: Under construction
diff --git a/docs/source/index.rst b/docs/source/index.rst
index dad57ff1..a5540e64 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -19,57 +19,44 @@
Apache Arrow ADBC
=================
-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.
-
-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.
+To get started, choose a language and follow the Quickstart page.
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
-
- format/specification
- format/versioning
- format/comparison
faq
.. toctree::
- :maxdepth: 2
- :caption: Drivers
+ :maxdepth: 1
+ :caption: Supported Environments
- driver/installation
- driver/status
- driver/cpp/index
- driver/go/index
- driver/java/index
+ C/C++ <cpp/index>
+ Go <https://pkg.go.dev/github.com/apache/arrow-adbc/go/adbc>
+ Java <java/index>
+ Python <python/index>
.. toctree::
:maxdepth: 1
- :caption: Tutorials
+ :caption: Drivers
- python/quickstart
+ driver/installation
+ driver/status
+ driver/flight_sql
+ driver/jdbc
+ driver/postgresql
+ driver/snowflake
+ driver/sqlite
.. toctree::
:maxdepth: 1
- :caption: Language-Specific APIs
+ :caption: Specification
- C/C++ <cpp/index>
- Go <go/index>
- Java <java/index>
- Python <python/index>
+ format/specification
+ format/versioning
+ format/comparison
.. toctree::
:maxdepth: 1
@@ -79,6 +66,20 @@ To learn more about ADBC, see the `introductory blog post
development/nightly
development/releasing
+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.
+
+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.
+
Indices and tables
==================
diff --git a/docs/source/python/quickstart.rst b/docs/source/python/quickstart.rst
index 8177607a..834005dd 100644
--- a/docs/source/python/quickstart.rst
+++ b/docs/source/python/quickstart.rst
@@ -15,9 +15,9 @@
.. specific language governing permissions and limitations
.. under the License.
-===================
-Quickstart (Python)
-===================
+==========
+Quickstart
+==========
Here we'll briefly tour basic features of ADBC with the SQLite driver.