Short write-ups of findings from running one workload through fifty-three databases' ODBC drivers: the exact error text, what causes it, and what to do. Each one is also recorded upstream.
2026-09-17
DuckDB ODBC (SQL_DBMS_VER segfault, parameter arrays that store set 0 in every row), ArcadeDB (BEGIN answered with a RowDescription) and SingleStore Connector/ODBC (strdup(NULL) in SQLColumns, SQLGetTypeInfo under ANSI_QUOTES) - what each bug was, how it was pinned down, and the pull request that fixes it.
2026-09-15
omniload's maintainer asked whether adbcBridge could give the dlt-based loader ADBC and ODBC reach; the answer is a fourth SQL backend, contributed as a pull request with tests on PostgreSQL, CrateDB and SQL Server.
2026-09-15
Through psqlodbc, TIMESTAMP(0), TIMESTAMPTZ(3) and TIME(3) columns arrived as microsecond Arrow types; adbcBridge 0.1.2 reads the declared unit, and the validation suite went from 265 to 293 of 327.
2026-09-15
Through psqlodbc, a timestamp with time zone arrives as the session's wall-clock time without its offset, so on a server whose zone is not UTC every zoned value was shifted, on read and on ingest; adbcBridge 0.1.3 puts the session on UTC.
2026-09-06
The native PostgreSQL ADBC driver could not connect to ArcadeDB; a probe comment became a diagnosed issue, a fix and a merge within a day. Verified.
2026-09-05
One ADBC workload through the native PostgreSQL and MySQL ADBC drivers and through adbcBridge on 28 PostgreSQL-wire and MySQL-wire databases - 14 pass both ways, 14 pass only over ODBC - plus a delegation defect this run found in adbcBridge itself and its workaround.
2026-09-03
Altibase ODBC 7.3 disagrees with itself above the BMP, reports CREATE_PARAMS "precision" so a generated VARCHAR is VARCHAR(1) (22026), and numbers its byte types outside ODBC.
2026-09-03
Exasol ODBC 25.2/26.2 refuses SQL_C_BINARY outright (HY003), fails a NULL SQL_DECIMAL parameter bound SQL_C_DEFAULT (SI002), and claims SQL_GD_BLOCK it cannot deliver.
2026-09-03
IBM i Access ODBC 1.1.0.29 against Db2 for i 7.5 — the Driver= value must stay under 36 characters, the libraries need a real /opt/ibm/iaccess, and a CLOB column costs a round trip per row.
2026-09-03
Three defects in the Actian Ingres 10.1 ODBC client, each with its exact error text - the signal-handler takeover that aborts a JVM, the four-byte SQLWCHAR that truncates the connection string under unixODBC, and the 32-byte Driver= buffer.
2026-09-03
Kinetica ODBC 7.1.9 accepts every SQLBindParameter and then shifts the values one position, sending the last as NULL under SQL_SUCCESS with an empty diagnostic queue.
2026-09-03
A sweep of older SQL Server, PostgreSQL, MariaDB and Firebird releases through the same driver and the same unmodified matrix entry, with only the port changed.
2026-09-03
SAP HANA client ODBC 2.29.25 (libodbcHDB) takes narrow SQL and SQL_C_CHAR parameters as Latin-1, not UTF-8, and returns its type table alphabetically so SECONDDATE outranks TIMESTAMP.
2026-09-03
Two defects in SingleStore Connector/ODBC 1.2.2 with their exact errors - SQLGetTypeInfo failing 42S22 under ANSI_QUOTES, and a SQLColumns segfault on a NULL catalog - and what it gets right.
2026-08-29
Apache Ignite's ODBC driver drops a NULL below the first row of a column-wise parameter array - a character column stores an empty string, a BINARY column segfaults the client inside SQLExecute.
2026-08-29
What clickhouse-odbc 1.5.5 does when you write through it - SQL_NULL_DATA ignored when a value buffer is bound, parameter arrays that land two rows of five, and no affected-row count.
2026-08-29
virtodbc.so from libvirtodbc0 7.2.12 stores UTF-16 text as garbage, aborts on any Charset= but the literal UTF-8, stores every SQL_C_SBIGINT as 0, and strides date parameter arrays by ColumnSize.
2026-08-28
ArcadeDB stores a space-separated timestamp with a fraction as NULL under a successful INSERT - the exact form psqlodbc binds. Filed by the project as a critical issue. And the NULL BOOLEAN note from August turned out to be fixed before we published it.
2026-08-28
Firebird ODBC 3.0.1 and 3.5.0-rc1 stride fixed-type parameter arrays by BufferLength, write NULL for every SQL_C_SBIGINT after a character bind, and discard ROWS_FETCHED_PTR set before SQLPrepare.
2026-08-25
Arrow Flight SQL ODBC 0.9.7, the driver Dremio publishes, advertises SQLBindParameter while answering HYC00, segfaults in SQLColumns without field metadata, and is iODBC-width on Apple Silicon.
2026-08-25
alexbrainman/odbc takes an access violation inside api.SQLGetDiagRec on Windows; on Linux and macOS an arrow-go finalizer releases an ArrowArrayStream mid-cgo and takes the process down.
2026-08-25
MySQL Connector/ODBC 26.7.1, Virtuoso 7.2.17 and Arrow Flight SQL ODBC 0.9.7 for macOS ship as iODBC-width drivers, and under unixODBC they return empty diagnostics or abort the process.
2026-08-25
OpenSearch SQL ODBC 1.5.0.0 converts any character value to today's date when asked for SQL_C_TYPE_TIMESTAMP, and its SQLError never returns SQL_NO_DATA, so a failed connect hangs unixODBC forever.
2026-08-25
Seven ways CrateDB, QuestDB, Materialize, RisingWave, ArcadeDB, Spanner and YDB answer psqlodbc 16 differently from PostgreSQL 16, each with the error text it produces.
2026-08-25
psqlodbc silently discarded a committed transaction on servers without SAVEPOINT and narrowed an out-of-range int8 to -1; both are fixed, and two version-and-build traps remain.
2026-08-25
sqliteodbc 0.99991 fails SQLGetData(SQL_C_NUMERIC) with a bare SQL_ERROR and zero diagnostic records, and accepts SQL_ATTR_PARAM_STATUS_PTR without ever writing to it.
2026-08-25
taos-odbc at 3.3.6.13 has no TIMESTAMP_STRUCT conversion, one route into a BOOL parameter and no DECIMAL at all, and it aborts the whole process when a client asks for ODBC 3.80.
2026-08-25
IBM's Db2 clidriver (Db2 and Informix) and Actian Ingres' driver are built with a four-byte SQLLEN on 64-bit Linux, so indicators are read at the wrong stride and NULLs disappear.
2026-08-25
unixODBC 2.3.12 and 2.3.14 overwrite their own stack reading the first SQL_ERROR diagnostic from a driver whose SQLWCHAR is four bytes - Virtuoso and Arrow Flight SQL on macOS, Ingres on Linux.
2026-08-25
Five drivers that pass on Linux fail on Windows on text: the system ANSI code page sits between the caller and the driver, and the repairs differ only in which call has to leave the wide path.
2026-08-24
Five findings in MariaDB Connector/ODBC with their exact errors - 3.2's array segfault and wrong row counts, its connect-time DUAL probe, its binary-literal path, and 3.1.15's missing NUL terminator.
2026-08-24
Seven findings in MySQL Connector/ODBC 9.4, 8.4 and 26.7.1 with their exact errors - the fractional seconds pyodbc loses, a SIGFPE in get_column_size, two segfaults, and four platform traps.
2026-08-24
Six servers behind MySQL Connector/ODBC 9.4 - what their server-side prepare does with a BLOB-typed string, a MYSQL_TYPE_NULL, a BIT array of NULLs, and a connector probe that assumes DUAL.
2026-08-24
Oracle Instant Client ODBC 23 (SQORA) accepts SQL_ATTR_ROW_ARRAY_SIZE on an open cursor and then segfaults in bcoReturnColData or silently drops rows; CLOB columns read a row at a time.
2026-08-23
DuckDB ODBC 1.5.5 - SQLGetInfo(SQL_DBMS_VER) segfaults, a parameter array stores set 0 in every row, a C++ exception across the FFI aborts Rust, and :memory: is a new database per connection.
2026-08-23
MySQL Connector/ODBC 9.4 runs strtol() on the NULL NUMERIC_PRECISION the MongoDB BI Connector reports for a DECIMAL column, and the process dies inside SQLColumns.