Skip to content

v1.10.0-ce — MySQL compatibility

Released: 2026-07-16 · Tag: v1.10.0-ce · Docker: synapcores/community:v1.10.0-ce

Porting from MySQL used to mean rewriting your schema and your queries. v1.10.0 closes that gap: the MySQL dialect applications actually depend on now runs unchanged, and the constraints you relied on are really enforced — not accepted and silently ignored.

What shipped (M7)

# Feature Syntax
F1 Upserts INSERT ... ON DUPLICATE KEY UPDATE, INSERT IGNORE, REPLACE
F2 JSON -> / ->> path ops + JSON_EXTRACT / JSON_SET / JSON_ARRAY / JSON_OBJECT / JSON_CONTAINS
F3 ENUM ENUM('a','b',...) → enforced CHECK (col IN (...))
F4 Auto-timestamps ON UPDATE CURRENT_TIMESTAMP refresh on row update
F5 Full-text FULLTEXT(...) + MATCH(...) AGAINST(...), single- and multi-column
F6 Type aliases VARCHAR(n), DATETIME, LONGBLOB, DECIMAL, DOUBLE, BIGINT, utf8mb4, ENGINE=InnoDB
F7 Constraint enforcement index-backed UNIQUE / PRIMARY KEY conflict checks
S1 mysqldump importer chunked oversized INSERTs, escape/DELIMITER/LOCK/SET translation
-- Upserts, as written
INSERT INTO inventory (sku, qty) VALUES ('A1', 5)
ON DUPLICATE KEY UPDATE qty = qty + 5;

-- JSON accessors + predicates
SELECT data->>'$.email' FROM users WHERE JSON_CONTAINS(tags, '"vip"');

-- ENUM (enforced), auto-timestamp, full-text
CREATE TABLE tickets (id INT PRIMARY KEY, status ENUM('open','closed'),
                      updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
CREATE TABLE docs (id INT, body TEXT, FULLTEXT(body));
SELECT id FROM docs WHERE MATCH(body) AGAINST('quick fox');

Enforced, not decorative

UNIQUE and PRIMARY KEY conflicts are checked against an index-backed probe (O(log n)), not silently dropped. A duplicate is rejected; a DELETE frees the key so a re-insert succeeds — matching MySQL's behavior. Underneath, DELETE and key-changing UPDATE now maintain their PK/UNIQUE secondary indexes, and DROP TABLE purges them, so the check never trips on a stale index entry.

Performance was a hard gate

No parity feature is allowed to slow the engine down. Because enforcement is index-backed rather than a full-table scan, it stays sub-linear as tables grow: native inserts show no regression, and constrained inserts carry only single-digit-percent overhead. A feature that cost more would not have shipped.

Validation

  • State-asserting validator (published image): 88/88, 0 failed, 0 skipped.
  • MySQL-parity conformance (published image): 56/56 — including the DELETE+re-insert regression guard and UNIQUE/PK negative controls.
  • Non-AVX-512 canary: documented-config-only boot, EMBED (384-dim MiniLM), zero illegal-instruction; published binary objdump ZMM = 0.
  • Perf-invariant gate: native insert no-regression; F7 constrained +7.7% (within budget).

Install

docker pull synapcores/community:v1.10.0-ce
# or pin the installer:
curl -fsSL https://get.synapcores.com | SYNAPCORES_VERSION=v1.10.0-ce sh

Drop-in from v1.9.1 — no schema migration. Existing tables are unaffected; the new syntax and enforcement apply to tables you create with it. Bring a mysqldump, import it, and run your existing queries.