Skip to content

Commit 1bb2d88

Browse files
singhpratechclaude
andcommitted
docs: Windows -- Azure SQL Edge passes, OceanBase does not fit, ColumnStore's failure was ours (fixed)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 7cb06ec commit 1bb2d88

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

‎bench/BENCHMARKS-windows.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,10 @@ prune -af` between entries.
146146
| ydb | PASS (`PostgreSQL (via ODBC) 14.0.5`) with psqlodbc 16.00.0007, registered by hand — 18.00.0002 fails at connect (`unrecognized configuration parameter "datestyle"`), and a DLL path in `Driver=` gets `IM002` from the Windows driver manager (unixODBC accepts one); 1,024 MB used at 1536m | 101,712 | 61,361 | 750 (756) | 38 |
147147
| starrocks | **FAIL** at the astral check only — fifth member of the class; StarRocks 4.x at 1536m (976 MB used) | 402,109 | 213,907 | 2,603 (3,957) | — |
148148

149+
| oceanbase | **server not runnable here: RAM** — `MODE=SLIM` at 1536m stalled 17 min at 1.442/1.5 GiB after `observer program health check ok`, never `boot success` (OOMKilled=false) | | | | |
150+
| azuresqledge | PASS (`SQL Server 16.00.5100`), msodbcsql 18, the Linux image in Docker Desktop — rows in the language file | | | | |
151+
| columnstore | **FAIL before 7cb06ec** — parameters pass with `NO_SSPS=1`, then the generated DDL is refused: the ColumnStore engine probe sat inside the MariaDB-connector block and never ran through MySQL's connector. A bridge bug found by this column, fixed at `7cb06ec` (verified on Linux through maodbc), not re-measured on Windows | | | | |
152+
149153
**A class, not five incidents:** MySQL Connector/ODBC 8.4.0 (the only version published for Windows) reads result sets from a MySQL-wire server that lacks the character-set session variables as 3-byte `utf8`, so astral-plane characters come back as `???` on read while storage is byte-exact; the same driver reads 🚀 from MySQL, Percona, MariaDB, TiDB and Dolt, which expose the variables, and Linux passes on 9.4. Affected: databend, greptimedb, matrixone, mongodbbi, starrocks. Everything else in
150154
their workloads passes, and their read rates are among the best on this machine.
151155

‎docs/COMPATIBILITY.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,19 +165,19 @@ Details and the machine descriptions: `bench/BENCHMARKS-macos.md`, `bench/BENCHM
165165
| duckdb | PASS | PASS (DuckDB ODBC 1.5.5.0, universal binary) | PASS (duckdb_odbc 1.5.5.0) |
166166
| postgres | PASS | PASS (PostgreSQL 15.15) | PASS (PostgreSQL 16.15, psqlodbc 18.00.0002, native install) |
167167
| mariadb | PASS | PASS (MariaDB 11.8 arm64, Connector/ODBC 3.2.9) — after the maodbc ≥ 3.2 quirk (`187dfac`): at 24dab36 Connector/C 3.4.9 segfaulted on a NULL DATE in a parameter array | PASS (MariaDB 12.3.3, native service; driven by MySQL Connector/ODBC 8.4.0 with `NO_SSPS=1` — MariaDB's own connector MSI was never needed) |
168-
| columnstore | PASS | PASS (MariaDB ColumnStore 11.1.1) — provisioning and the user created by hand; `columnstore.cnf` mounted from `/private/tmp` | pending — MariaDB 12.3 itself passed through MySQL Connector/ODBC 8.4.0 with `NO_SSPS=1`, so the browser-only MariaDB connector MSI is no longer the blocker |
168+
| columnstore | PASS | PASS (MariaDB ColumnStore 11.1.1) — provisioning and the user created by hand; `columnstore.cnf` mounted from `/private/tmp` | FAIL before `7cb06ec`: through MySQL Connector/ODBC 8.4.0 + `NO_SSPS=1` the parameters pass, then the generated ingest DDL is refused (`LONG VARCHAR`, `BIT`) — a bridge bug found here: the ColumnStore engine probe sat inside the MariaDB-connector block and never ran through MySQL's connector. **Fixed at 7cb06ec** (probe runs for any MySQL-wire connector; verified on Linux through maodbc); not yet re-measured on Windows |
169169
| oracle | PASS | PASS (Oracle 23.26.0200, Instant Client 23.3 arm64) — `NLS_LANG=.AL32UTF8` must be exported before the process starts | pending (Docker Desktop on WSL2 now available; tier 3 running one container at a time at 1 GB) |
170170
| clickhouse | PASS | PASS (ClickHouse 26.7.5.10, clickhouse-odbc 1.5.5 macOS zip, arm64) | PASS (ClickHouse 26.7.5.10; clickhouse-odbc 1.5.5 Unicode from the GitHub MSI; server at 1 GB, 97 MB used) |
171171
| mssql | PASS | PASS (SQL Server 2022) | PASS (SQL Server 2025 RTM 17.0.1000.7, msodbcsql 18) |
172-
| azuresqledge | PASS | PASS (SQL Server 15.00.2000, arm64 image, msodbcsql 18.6.2.1 arm64) | pending (Docker Desktop on WSL2 now available; tier 3 running one container at a time at 1 GB) |
172+
| azuresqledge | PASS | PASS (SQL Server 15.00.2000, arm64 image, msodbcsql 18.6.2.1 arm64) | PASS (Azure SQL Edge, SQL Server 16.00.5100; msodbcsql 18; the Linux image in Docker Desktop) |
173173
| mysql | PASS | PASS (MySQL 8.4.11 arm64, MariaDB Connector/ODBC 3.2.9) — after the maodbc ≥ 3.2 quirk (`187dfac`): at 24dab36 the connector's array path misreported the row count | PASS (MySQL 8.4.9 x64, MySQL Connector/ODBC 8.4.0; `héllo`/`日本語` byte-exact both ways, `column_size` in characters) |
174174
| tidb | PASS | pending | PASS (TiDB v7.5.1, MySQL wire 8.0.11; MySQL Connector/ODBC 8.4.0 with `NO_SSPS=1` — without it the first bound parameter fails with `(2031) No data supplied for parameters in prepared statement`, in pyodbc too; Connector/ODBC 9.x, which needs no such setting on Linux, is not published for Windows) |
175175
| dolt | PASS | PASS (Dolt, MySQL wire 8.0.33) | PASS (Dolt, MySQL wire 8.0.33; MySQL Connector/ODBC 8.4.0 with `NO_SSPS=1`; the packaged MSI's compiled-in plugin dir is right, so no `PLUGIN_DIR`) |
176176
| databend | PASS | PASS with MySQL Connector/ODBC 26.7.1 (Oracle's macOS arm64 binary, built for iODBC) through a bridge built against iODBC 3.52.16 — `MySQL (via ODBC) 8.0.90-v1.2.881`; **FAIL through MariaDB Connector/ODBC 3.2.9** at its connect-time probe `SELECT 1 FROM DUAL WHERE @@sql_mode LIKE '%ansi_quotes%'` (`Unknown table "default"."default".DUAL`), identical through pyodbc | FAIL: the astral check — `héllo 🚀` is stored byte-exact (`68c3a96c6c6f20f09f9a80`, every write path) but reads back as `héllo ???` on every read path, pyodbc included: MySQL Connector/ODBC 8.4.0 decodes Databend's result sets as 3-byte `utf8` because Databend implements neither `@@character_set_client` nor `@@character_set_connection` (both return 0) and ignores `charset=` in the connection string; the same driver reads 🚀 from MySQL, TiDB, Percona and MariaDB. Everything else in the workload passes; Linux passes on Connector/ODBC 9.4 (not published for Windows) |
177177
| percona | PASS | pending | PASS (Percona Server 8.4.11-11, MySQL wire; MySQL Connector/ODBC 8.4.0 with the default connection string — no `NO_SSPS`, as for MySQL itself) |
178178
| matrixone | PASS | PASS (MatrixOne, MySQL wire 8.0.30) | FAIL: the astral check only — same signature (`@@character_set_client` 0, BMP text fine, 🚀 → `???`). MySQL Connector/ODBC 8.4.0 (the only version published for Windows) reads result sets from a MySQL-wire server that lacks the character-set session variables as 3-byte `utf8`, so astral-plane characters come back as `???` on read while storage is byte-exact; the same driver reads 🚀 from MySQL, Percona, MariaDB, TiDB and Dolt, which expose the variables, and Linux passes on 9.4. Everything else passes with `NO_SSPS=1`; MatrixOne v4.2.0, 405 MB in-container |
179179
| doris | PASS | PASS with MySQL Connector/ODBC 26.7.1 (Oracle's macOS arm64 binary, built for iODBC) through a bridge built against iODBC 3.52.16 — `MySQL (via ODBC) 5.7.99`, 300/2,000 rows as on Linux; **FAIL through MariaDB Connector/ODBC 3.2.9**: the server NPEs on its server-side prepared INSERT and rejects the `_binary '<raw bytes>'` literal its `PREPONCLIENT=1` path inlines | server not runnable here: the image is 7 GB against 5–10 GB of free host disk and the server holds ~2.5 GB resident under a 6 GB cap, against a 2.4 GB VM — not attempted, deliberately, since the pull alone would have filled the disk under Docker |
180-
| oceanbase | PASS | PASS (OceanBase CE, MySQL wire 5.7.25) — `MODE=SLIM`, boots in 40 s, 4.3 GiB peak | pending (Docker Desktop on WSL2 now available; tier 3 running one container at a time at 1 GB) |
180+
| oceanbase | PASS | PASS (OceanBase CE, MySQL wire 5.7.25) — `MODE=SLIM`, boots in 40 s, 4.3 GiB peak | server not runnable here: RAM — `MODE=SLIM` at `--memory=1536m` stalled for 17 minutes at 1.442 of 1.5 GiB after `observer program health check ok` and never reached `boot success` (OOMKilled=false; on macOS the same image peaks at 4.3 GiB) |
181181
| greptimedb | PASS | PASS with MySQL Connector/ODBC 26.7.1 (Oracle's macOS arm64 binary, built for iODBC) through a bridge built against iODBC 3.52.16 — `MySQL (via ODBC) 8.4.2`; **FAIL through MariaDB Connector/ODBC 3.2.9** at the same `DUAL` probe (`Table not found: greptime.public.dual`), identical through pyodbc | FAIL: the astral check only — `héllo 🚀` reads back as `héllo ???` through pyodbc and the bridge alike (`@@character_set_client` returns 0). MySQL Connector/ODBC 8.4.0 (the only version published for Windows) reads result sets from a MySQL-wire server that lacks the character-set session variables as 3-byte `utf8`, so astral-plane characters come back as `???` on read while storage is byte-exact; the same driver reads 🚀 from MySQL, Percona, MariaDB, TiDB and Dolt, which expose the variables, and Linux passes on 9.4. Everything else passes; GreptimeDB 1.1.4, 41 MB in-container |
182182
| starrocks | PASS | PASS with MySQL Connector/ODBC 26.7.1 (Oracle's macOS arm64 binary, built for iODBC) through a bridge built against iODBC 3.52.16 — `MySQL (via ODBC) 8.0.33`, 300/2,000 rows; **FAIL through MariaDB Connector/ODBC 3.2.9**: syntax error at the connector's inlined `_binary ''` literal, with and without `PREPONCLIENT=1` | FAIL: the astral check only — fifth member of the class: MySQL Connector/ODBC 8.4.0 (the only version published for Windows) reads result sets from a MySQL-wire server that lacks the character-set session variables as 3-byte `utf8`, so astral-plane characters come back as `???` on read while storage is byte-exact; the same driver reads 🚀 from MySQL, Percona, MariaDB, TiDB and Dolt, which expose the variables, and Linux passes on 9.4. Everything else passes with the second-fastest fetch of the Windows campaign; StarRocks 4.x (allin1-ubuntu), fits at `--memory=1536m` (976 MB used, `MemLimit 1.215GB`) |
183183
| mongodbbi | PASS | PASS (BI Connector, MySQL wire 5.7.12; read-only) — no macOS build of mongosqld 2.14.x exists, the linux-arm64 build runs inside the `mongo:7` arm64 container | FAIL: the astral check only — the fourth member of the class: MySQL Connector/ODBC 8.4.0 (the only version published for Windows) reads result sets from a MySQL-wire server that lacks the character-set session variables as 3-byte `utf8`, so astral-plane characters come back as `???` on read while storage is byte-exact; the same driver reads 🚀 from MySQL, Percona, MariaDB, TiDB and Dolt, which expose the variables, and Linux passes on 9.4. Everything else in the read-only workload passes; mongosqld v2.14.22 over mongo:7, libssl 1.1 staged per the README, 125 MB in-container, no `NO_SSPS` needed |

0 commit comments

Comments
 (0)