Skip to main content

A libpq-based ADBC driver for working with PostgreSQL.

Project description

ADBC PostgreSQL Driver for Python

This package contains bindings for the PostgreSQL driver, using the driver manager to provide a DBAPI 2.0/PEP 249-compatible interface on top.

Example

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())

Building

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 -DADBC_DRIVER_POSTSGRESQL=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.

Testing

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adbc_driver_postgresql-1.6.0.tar.gz (18.9 kB view details)

Uploaded Source

Built Distributions

adbc_driver_postgresql-1.6.0-py3-none-win_amd64.whl (2.9 MB view details)

Uploaded Python 3Windows x86-64

adbc_driver_postgresql-1.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

adbc_driver_postgresql-1.6.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

adbc_driver_postgresql-1.6.0-py3-none-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

adbc_driver_postgresql-1.6.0-py3-none-macosx_10_15_x86_64.whl (2.7 MB view details)

Uploaded Python 3macOS 10.15+ x86-64

File details

Details for the file adbc_driver_postgresql-1.6.0.tar.gz.

File metadata

  • Download URL: adbc_driver_postgresql-1.6.0.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for adbc_driver_postgresql-1.6.0.tar.gz
Algorithm Hash digest
SHA256 531b34ee2eb7c17ad5b3a791f05742d5e7c24725671fc8348be2ff48c0bdaf29
MD5 bc066eb4aa2e668018e938e64fdd9ba6
BLAKE2b-256 bf87ee97f199ebf0367bb93bab50f7bb4a23f723956e5869871ec51c7530bc2c

See more details on using hashes here.

File details

Details for the file adbc_driver_postgresql-1.6.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for adbc_driver_postgresql-1.6.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 23823cc70f8194c61e04b879c6ad6bae4871e1527b727b897cbc3039b6e4b892
MD5 afb76492391fbfb39670a36c94cb1965
BLAKE2b-256 5126b06d767a03fec4b0bd77aaaff6ea40de7c98d9e2b52aa646d125f0644298

See more details on using hashes here.

File details

Details for the file adbc_driver_postgresql-1.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for adbc_driver_postgresql-1.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c3d09a688fb95bbe5431b488431145d77b3e20f8adbc413b1c2530b6623a9a2a
MD5 50b6d892221148ee487badaed685a9e7
BLAKE2b-256 c1452d3514fd2bf7ee7e1e28c45fdb70f2a27db2f8cc8af7e7c28f846dd7b99d

See more details on using hashes here.

File details

Details for the file adbc_driver_postgresql-1.6.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for adbc_driver_postgresql-1.6.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a49a88d1d55c347c26e1de1199896b91f7bf581b6efd398e6c7241fa70a3fd20
MD5 a197bea1b90b6654c254c94cb37abc43
BLAKE2b-256 16c05967e0d47cf6e27474f630974b044c59e429103daf1a41031ec075013b02

See more details on using hashes here.

File details

Details for the file adbc_driver_postgresql-1.6.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for adbc_driver_postgresql-1.6.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d72dcf359b98c173e316e9e3761011bea7a67cb41a2d678b66c6834ccad809d
MD5 278655de2adaf6225128da18840e9160
BLAKE2b-256 7e79c3066a810938cf00a8566b4c89d6dcf6e0f7aaae230112eaf2dc71c643f3

See more details on using hashes here.

File details

Details for the file adbc_driver_postgresql-1.6.0-py3-none-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for adbc_driver_postgresql-1.6.0-py3-none-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a82803bcc7a73967bd08f2e70334b87706ef6dc7895606f7d5d7357df18789de
MD5 848064eee81ba7ff0f349b8e1f94558c
BLAKE2b-256 b730570d951dd918fdc7cbe57add0f68c9e76d71caf3f8d07d4f6b435735ba1e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page