ArpeNetezza — Compatibility
Which Netezza versions, auth methods, and client platforms ArpeNetezza is known to work with, and which parts of the ADBC API it implements. The support states used across the Arpeio driver family:
| State | Meaning |
|---|---|
| ✅ Validated | Verified directly against a live server or service. |
| 🟢 Supported | Expected to work and covered by the same protocol surface, but not run continuously. Report issues and they will be treated as bugs. |
| 🟡 Not yet validated | Should be compatible on protocol grounds, but unverified. No promise yet. |
| ❌ Not supported | Refused by the driver. |
ArpeNetezza speaks the Netezza wire protocol natively over TCP (+ optional TLS): Netezza's HSV2 handshake, PostgreSQL v3-style message framing, and the DBOS binary tuple stream for results. The handshake protocol version is negotiated: the driver opens at version 6 and accepts whatever the server proposes down to version 2. The type mapping is in Data types.
Netezza Performance Server
| Version | State | Notes |
|---|---|---|
| NPS 11.x on IBM Cloud | ✅ Validated | Validated on NPS 11.3.1.3: the ADBC validation suite runs live (199 passed, 4 known failures), plus live round-trip tests of every supported type and of bulk ingest. |
| NPS 7.x | ✅ Validated (unencrypted) | Validated on NPS 7.2.1.7 by exporting large tables to Parquet with FastBCP, with sslmode=disable. NPS 7 only offers TLS 1.0 / 1.1; tls_min_version=1.0 allows them, but an encrypted connection to NPS 7 is not validated yet (see Authentication → NPS 7). Use v0.3.4 or later: earlier versions misread NPS 7 NUMERIC columns. |
| Other NPS releases (handshake protocol v2–v6) | 🟡 Not yet validated | Same handshake and result format; no live run. |
There is no Netezza-version code split in the handshake or the decoder. Since
v0.3.4, the driver reads the server version once per session
(SELECT version()) to interpret NPS 7 column type modifiers.
Authentication methods
| Method | State | Notes |
|---|---|---|
| Username + password, cleartext (inside TLS) | ✅ Validated | What IBM Cloud NPS requests; verified live. |
| Username + password, MD5 or SHA-256 digest | 🟢 Supported | Selected by the server; covered by known-answer tests, not yet run against a server that requests it. |
TLS 1.2 / 1.3 (prefer, require, verify-ca, verify-full) | ✅ Validated | Verified live on IBM Cloud NPS 11.3 (which needs the intermediate CA in ssl_root_cert, see Authentication). |
TLS 1.0 / 1.1 (NPS 7, tls_min_version) | 🟡 Not yet validated | Tested against a simulated server only. |
| Kerberos / Windows SSPI | ❌ Not supported | Refused at connect. |
| Client certificates (mutual TLS) | ❌ Not supported | No client-certificate option. |
Client platforms
| Platform | State | Notes |
|---|---|---|
| Linux x64 | ✅ Validated | Primary platform. The released .so is built against glibc 2.28 with OpenSSL linked in, so it runs on RHEL 8 / Rocky 8 and newer. |
| Windows x64 | 🟡 Not yet validated | A self-contained .dll (OpenSSL and the MSVC runtime linked in) is built for every release, but not yet tested against a server. |
| macOS, ARM | — | No released binary. |
ADBC conformance
ArpeNetezza implements the ADBC 1.1.0 API (it also accepts 1.0.0 callers).
| Area | State |
|---|---|
ExecuteQuery, ExecuteUpdate | Implemented. Rows affected is -1 for result sets and for DDL. |
ExecuteSchema | Implemented for row-returning queries (a zero-row probe). |
Prepare, Bind | Implemented with client-side parameter substitution; see Bound parameters. |
BindStream | Bulk ingest only. |
GetParameterSchema | Counts the placeholders; types are int32 unless parameters were bound. |
| Bulk ingest | create, append, replace, create_append, temporary tables. |
| Transactions | Commit / Rollback with autocommit off; autocommit on by default. |
Cancel (statement and connection) | Implemented: an out-of-band cancel request on a separate socket. |
GetInfo | Implemented. The vendor version is the NPS release (e.g. 11.3.1.3). The vendor name is reported as PostgreSQL, a leftover from the code the driver was forked from. |
GetObjects | Implemented: one catalog (the connected database), schemas, tables, views and columns from information_schema. Primary key, unique and foreign key constraints come from _v_relation_keydata, only when a table name filter is given. Netezza records no CHECK constraints. |
GetTableSchema | Implemented, from information_schema.columns; see Data types for how it differs from a query's schema. |
GetTableTypes | A fixed list: TABLE, VIEW, SYSTEM TABLE, GLOBAL TEMPORARY, LOCAL TEMPORARY. |
GetStatistics | Row count and per-column null count. A table name is required; pass the schema too, otherwise the driver looks in public. |
GetStatisticNames | Returns an empty result. |
| Current catalog / schema | Readable and settable through adbc.connection.catalog / adbc.connection.db_schema. |
ExecutePartitions, ReadPartition | ❌ Not supported. |
| Substrait plans | ❌ Not supported. |
See also
- Connection: connecting to each of the above
- Data types: the Netezza → Arrow type mapping
- Troubleshooting: when a supported target does not connect