Test results
SQL Dump to SQLite: MySQL and Postgres Rows, Unchanged: test results
Tested 2026-10-08, skill version 1.0.0 at the time of loading this page. We run every skill on a strong and a weak model before it is listed, and publish both verdicts, including where the weak one fails.
Verdicts
- Date
- 2026-10-08
- Strong · claude-sonnet-5-5 (Claude Code alias "sonnet")
- Right on all 24 dumps, read by hand: every converted dump ran in SQLite and returned the same values as the source, with MySQL backticks, AUTO_INCREMENT keys, unsigned and enum columns, escaped quotes, percent and underscore in strings, Postgres booleans written as t and f, exact numerics, sequences, COPY blocks and timestamps carried over; no BEGIN or COMMIT left in a file meant for D1; and a refusal where SQLite cannot hold the column, such as a spatial POINT, instead of a silent change of type.
- Weak · claude-haiku-5-5 (Claude Code alias "haiku")
- Right on 23 of 24 dumps, read by hand, but it missed one: in a Postgres dump it turned one boolean written as t into 0 instead of 1.
With and without the skill
Tested 2026-10-08.
| Sonnet | Haiku | |||
|---|---|---|---|---|
| with | without | with | without | |
| Dumps converted or refused right (24 dumps) | 24/24 | 22/24 | 23/24 | 21/24 |
Same request on both sides, a fence removed first. Read by hand, Sonnet without the skill already carried over backticks, escapes, enums, booleans, numerics and COPY blocks with every value intact. It missed two: it kept a BEGIN in a file meant for D1, which D1 refuses, and it turned a spatial POINT column into plain text without a word instead of refusing. Haiku without the skill missed three: escaped percent and underscore, the key and BEGIN, and an exact numeric.
Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.
Note
Twenty-four MySQL and Postgres dumps written by us (17 with a trap, 7 plain). Each answer is run in a fresh SQLite database by our script, then the same queries are compared with the expected rows, types included; statements D1 rejects (BEGIN, COMMIT, transactions) are refused by pattern, and a dump with a type SQLite cannot hold must be refused in words. The D1 facts (no BEGIN TRANSACTION in a migration file, measured on a cloud database on 2026-10-08) are owner-measured; SQLite behaviour was checked by running every expected answer. No check was widened. One run per model and dump.
What was not measured
- Models other than the two named above were not run.
- Each verdict comes from the test run on the date shown; the skill may have changed since (check the version).
- Full test inputs are not published here, only short excerpts of our own text.
- Results on your own texts, languages and domains can differ.
Back to SQL Dump to SQLite: MySQL and Postgres Rows, Unchanged · Card (JSON)