Overview
| Property | Value |
|---|---|
| Engine ID | mariadb |
| Wire Protocol | MySQL wire protocol (shared with MySQL) |
| Classifier | AST-based (vitess/sqlparser) with MariaDB regex extensions |
| Shadow | Docker mariadb:<version> |
ID(), Init() (passes mariadb engine name), and NewProxy() (enables RETURNING support for MariaDB 10.5+).
Connection Parameters: Same as MySQL.
Differences from MySQL
- INSERT … RETURNING — MariaDB 10.5+ supports
RETURNINGon INSERT/DELETE. The proxy appendsRETURNING pk_col1, pk_col2to INSERTs sent to shadow, parses the result set for exact PKs, providing PostgreSQL-level delta tracking fidelity. mariadb-dump— Usesmariadb-dumpinstead ofmysqldumpfor schema dumps (MySQL’smysqldumpqueriesCOLUMN_STATISTICSwhich MariaDB doesn’t support).mariadb-admin— Usesmariadb-adminfor container readiness checks (falls back tomysqladmin).- Container prefix — Shadow containers use
mori-mariadb-shadow-prefix instead ofmori-mysql-shadow-. - No
only_full_group_byissue — MariaDB does not enable this SQL mode by default, avoiding the aggregate re-aggregation conflict that affects MySQL. - MariaDB-specific classification — Regex patterns added for
INSERT/DELETE/REPLACE ... RETURNING,EXECUTE IMMEDIATE, andCREATE/DROP SEQUENCE.
Differences from PostgreSQL
Inherits all MySQL differences from PostgreSQL (noctid, no cursors, no LISTEN/UNLISTEN, auto-increment offsets, etc.). See the MySQL engine page for the full list.
Known Limitations
- Inherits all MySQL limitations
- Vitess parser is hardcoded to MySQL 8.0.30 — MariaDB-specific syntax falls through to regex fallback which may be a little less accurate.

