mirror of
https://gitee.com/pnoker/iot-dc3.git
synced 2026-11-01 02:31:46 +08:00
dc3-db-mariadb brings MariaDB 10.6+ behind dc3.db.type=mariadb with the official mariadb-java-client and the same dual-dialect contract suite. MariaDB shares the MySQL seed wholesale (utf8mb4_unicode_ci — the 0900 collation is MySQL-8-only and MariaDB rejects it outright, so the seed translator and the hand-written 05 both moved to the portably-supported collation, re-verified against mysql:8.4). The mapper forks differ from the mysql twins in exactly one dimension, verified against a live 10.11 container first: MariaDB never adopted the AS-new ODKU row alias (syntax error on 10.11), so its 15 twins reference VALUES(col) instead — everything else (GET_LOCK/RELEASE_LOCK, FOR UPDATE SKIP LOCKED, recursive CTEs, INTERVAL ? SECOND, the JSON_UNQUOTE(JSON_EXTRACT(...)) double-hop, REGEXP_REPLACE without the g flag, DAYOFWEEK/HOUR units) proved compatible and rides the same statement bodies. Scope decision recorded in docs/db-dialects.md: DB2, H2 and HSQLDB are explicitly out (dialect cost with zero demand; embedded test databases unfit for multi-service concurrent IoT writes), SQLite equally unfit for the multi-service shape (database-level write lock, no network listener). Oracle and SQL Server stay on the roadmap with their real obstacles spelled out (MERGE-heavy rewrite; no ARM64 mssql image for local certification on Apple Silicon) — not started without a demand signal. Gates: db-tck 24/24 (postgres + mysql + mariadb, 8 each), data/auth/manager suites green (274 in data), full-repo compile green.