This package contains bindings for the PostgreSQL driver, using the driver manager to provide a DBAPI 2.0/PEP 249-compatible interface on top.
import adbc_driver_postgresql.dbapi uri = "postgresql://postgres:password@localhost:5432/postgres" with adbc_driver_postgresql.dbapi.connect(uri) as conn: with conn.cursor() as cur: cur.execute("SELECT 1") print(cur.fetch_arrow_table())
Dependencies: a build of the PostgreSQL driver, and the adbc-driver-manager
Python package. Optionally, install PyArrow to use the DBAPI 2.0-compatible interface.
Set the environment variable ADBC_POSTGRESQL_LIBRARY
to the path to libadbc_driver_postgresql.{dll,dylib,so}
before running pip install
.
# If not already installed pip install -e ../adbc_driver_manager export ADBC_POSTGRESQL_LIBRARY=/path/to/libadbc_driver_postgresql.so pip install --no-deps -e .
For users building from the arrow-adbc source repository, you can alternately use CMake to manage library dependencies and set environment variables for you. Assuming you specify -DADBC_DRIVER_POSTGRESQL=ON
you can also add -DADBC_BUILD_PYTHON=ON
to define a python
target.
For example, assuming you run cmake from the project root:
cmake -S c -B build --preset debug -DADBC_BUILD_PYTHON=ON cmake --build build --target python
will properly build and install the Python library for you.
See CONTRIBUTING.md for details on the general build process.
A running instance of PostgreSQL is required. For example, using Docker:
$ docker run -it --rm \ -e POSTGRES_PASSWORD=password \ -e POSTGRES_DB=tempdb \ -p 5432:5432 \ postgres
Then, to run the tests, set the environment variable specifying the PostgreSQL URI before running tests:
$ export ADBC_POSTGRESQL_TEST_URI=postgresql://localhost:5432/postgres?user=postgres&password=password $ pytest -vvx
See CONTRIBUTING.md for details on the general test process.