← All databases

Database · native ODBC

Vertica into Apache Arrow with ADBC

Vertica 25.3 (OpenText Analytics Database), read and written through adbcBridge — the ADBC driver that loads the database's ODBC driver — verified on Linux and Windows x64. Everything below is the compatibility matrix's record for this row.

Status

Linux✓ pass

PASS

macOS arm64platform

driver unavailable: vertica.com's macOS download is vsql only, no ODBC

Windows x64✓ pass

PASS (Vertica Database (via ODBC) 25.03.0000, opentext/vertica-k8s:25.3.0-8-minimal bootstrapped with fixtures/setup_vertica.sh; Vertica client 25.1.0 MSI, driver name Vertica — the 25.3 client URL 404s and 25.1 drives the 25.3 server). Windows note: run the vcluster create_db step from PowerShell, not Git Bash (path conversion mangles /opt/vertica/bin/vcluster), and --password "" must be passed as an empty argument — PowerShell 5.1 drops it, leaving dbadmin with a non-empty password to reset

Driver and connection string

ODBC driver
Vertica ODBC 25.1 (libverticaodbc.so, native wire)
Wire
native ODBC
adbcBridge
0.1.1 (release)

The connection string the matrix used, as the connection strings reference records it (Databases with their own native protocol and ODBC driver); {drv} is the driver library or its name from odbcinst.ini, and the host, port and credentials are the test server's.

Driver={drv};Server=127.0.0.1;Port=15433;Database=VMart;UID=dbadmin;PWD=;

Python

import adbcbridge

# {drv}: the ODBC driver library (path), or its name from odbcinst.ini
conn = adbcbridge.connect(uri="Driver={drv};Server=127.0.0.1;Port=15433;Database=VMart;UID=dbadmin;PWD=;")
with conn.cursor() as cur:
    cur.execute("SELECT * FROM my_table")
    table = cur.fetch_arrow_table()      # pyarrow.Table

Polars and pandas

import polars as pl, pandas as pd

df = pl.read_database("SELECT * FROM my_table", connection=conn)   # Polars, Arrow-native
pdf = pd.read_sql("SELECT * FROM my_table", conn)                   # pandas 2.2+, ADBC connection

pip install adbcbridge brings the driver library; the Vertica ODBC driver is installed the way its vendor documents, then named in Driver=. Rust, Go, C# and Java use the same connection string through their ADBC driver managers — see the docs.

What the matrix recorded

first-party driver on 5433 — the port speaks the PostgreSQL v3 wire (libpq connects, server_version 14.0) but the PostgreSQL catalogs are absent, so psqlodbc fails at its connect-time pg_type lookup (Relation "pg_type" does not exist) and cannot drive it.

What this stack needed