Commit fd014b1
fix(service-analytics): the
* fix(service-analytics): the `unknown` dialect arm folds `$icontains` with a portable construct, not `translate()`
`normalizeSqlDialect` routes EVERYTHING it cannot name onto `unknown` — an
unset hook, `'oracle'`, `'libsql'`, a `SqlDriver` given a class client. #15780
left that arm folding with `translate()` on the reading that it "was never
broken", which held only for the dialects the arm was pictured as (mssql,
oracle). SQLite reaches it through four embedder compositions, and SQLite has
no `translate()`, so all three of this package's compilers emitted a statement
the engine refuses — a documented operator answering 500 because one OPTIONAL
field was left out.
The arm now folds with one nested `REPLACE` per ASCII letter: the same chain
the MySQL arm already used, minus its `CAST(… AS BINARY)`, so there is one
builder and the two cannot fold different alphabets. It parses on every SQL
dialect and is ASCII-only BY CONSTRUCTION, so it serves both families
`unknown` conflates — PostgreSQL/Oracle-like keep `translate()`'s exact result
set, SQLite-like get an answer at all.
- `postgres` is untouched and byte-identical; so is the case-EXACT family on
every arm (`fold` false makes the fold function the identity on both).
- ⛔ Not `LOWER()`, which `driver-sql`'s own `unknown` arm uses: it follows the
collation and would trade this parse failure for silently wrong rows on
PostgreSQL, the Unicode fold #4706 Q1 = A rules out.
- The pins that moved are re-aimed at the property, not regenerated, and the
pre-fix bytes are kept as a control that the engine still refuses them.
- `SqliteWasmDriver`'s `isSqlite` override — 0 direct test hits, the sole
reason no in-repo SQLite driver lands on this arm — gets a direct pin, with a
control showing the base class answers `unknown` for that very config.
Refs #16028
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpTx2tbq3pZRYAdoGt6E6Y
* docs(changeset): the `unknown` arm's portable `$icontains` fold, graded and with its moved cells enumerated
Refs #16028
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpTx2tbq3pZRYAdoGt6E6Y
---------
Co-authored-by: Claude <noreply@anthropic.com>unknown dialect arm folds $icontains with a portable construct, not translate() (#16204)1 parent 0e16fc4 commit fd014b1
10 files changed
Lines changed: 430 additions & 54 deletions
File tree
- .changeset
- packages
- drivers/driver-sqlite-wasm/src
- services/service-analytics/src
- __tests__
- strategies
Lines changed: 21 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
Lines changed: 87 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
0 commit comments