Skip to main content

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:

StateMeaning
✅ ValidatedVerified directly against a live server or service.
🟢 SupportedExpected to work and covered by the same protocol surface, but not run continuously. Report issues and they will be treated as bugs.
🟡 Not yet validatedShould be compatible on protocol grounds, but unverified. No promise yet.
❌ Not supportedRefused 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​

VersionStateNotes
NPS 11.x on IBM Cloud✅ ValidatedValidated 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 validatedSame 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​

MethodStateNotes
Username + password, cleartext (inside TLS)✅ ValidatedWhat IBM Cloud NPS requests; verified live.
Username + password, MD5 or SHA-256 digest🟢 SupportedSelected 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)✅ ValidatedVerified 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 validatedTested against a simulated server only.
Kerberos / Windows SSPI❌ Not supportedRefused at connect.
Client certificates (mutual TLS)❌ Not supportedNo client-certificate option.

Client platforms​

PlatformStateNotes
Linux x64✅ ValidatedPrimary 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 validatedA 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).

AreaState
ExecuteQuery, ExecuteUpdateImplemented. Rows affected is -1 for result sets and for DDL.
ExecuteSchemaImplemented for row-returning queries (a zero-row probe).
Prepare, BindImplemented with client-side parameter substitution; see Bound parameters.
BindStreamBulk ingest only.
GetParameterSchemaCounts the placeholders; types are int32 unless parameters were bound.
Bulk ingestcreate, append, replace, create_append, temporary tables.
TransactionsCommit / Rollback with autocommit off; autocommit on by default.
Cancel (statement and connection)Implemented: an out-of-band cancel request on a separate socket.
GetInfoImplemented. 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.
GetObjectsImplemented: 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.
GetTableSchemaImplemented, from information_schema.columns; see Data types for how it differs from a query's schema.
GetTableTypesA fixed list: TABLE, VIEW, SYSTEM TABLE, GLOBAL TEMPORARY, LOCAL TEMPORARY.
GetStatisticsRow count and per-column null count. A table name is required; pass the schema too, otherwise the driver looks in public.
GetStatisticNamesReturns an empty result.
Current catalog / schemaReadable and settable through adbc.connection.catalog / adbc.connection.db_schema.
ExecutePartitions, ReadPartition❌ Not supported.
Substrait plans❌ Not supported.

See also​