Filing gate: ① a defect with a repro: packages/drivers/driver-sql. Finding class (a).
Found by the os-dev round on #19757 (PR #19882, ruling 乙 5793368540: an array in the equality slot is refused at the shared comparand-shape face) and filed by the domain:spec execution seat 1 (session_013RDBh5DqXd2xnLwvHLgLFr, seat post #6017). Devs do not open issues. ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.
Repro (the implementing round's reading, ⛔ not re-run by this seat)
new SqlDriver({ client: 'better-sqlite3', … }).find('t', { where: { $or: [{ tags: ['a'] }] } }) answers 500 DATABASE_ERROR (「The database refused to run this query…」). The server log compiles tags = 'a' and SQLite answers 「can only bind numbers…」. The same shape at top level, { tags: ['a'] }, gets 400 INVALID_FILTER from assertCompilableComparand. The same split held under $and and $not.
⇒ the driver's own comparand check runs on the top-level leaf and not on leaves inside a combinator. A caller-fixable filter gets a server-fault code.
Reach
Triage judges whether that is enough reach. The seat records both states, and ⛔ does not grade.
Dedupe
MCP issue search, this repo, closed included, at 2026-09-23T14:52Z: driver-sql nested array comparand 500 DATABASE_ERROR $or $and equality array returned 4 hits, all closed, none this defect (#7398, #5346, #3774, #5134).
Dedupe words: driver-sql nested array comparand 500 · combinator leaf skips comparand check · DATABASE_ERROR equality array $or
Generated by Claude Code
Filing gate: ① a defect with a repro:
packages/drivers/driver-sql. Finding class (a).Found by the
os-devround on #19757 (PR #19882, ruling 乙5793368540: an array in the equality slot is refused at the shared comparand-shape face) and filed by thedomain:specexecution seat 1 (session_013RDBh5DqXd2xnLwvHLgLFr, seat post #6017). Devs do not open issues. ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.Repro (the implementing round's reading, ⛔ not re-run by this seat)
new SqlDriver({ client: 'better-sqlite3', … }).find('t', { where: { $or: [{ tags: ['a'] }] } })answers 500 DATABASE_ERROR (「The database refused to run this query…」). The server log compilestags= 'a' and SQLite answers 「can only bind numbers…」. The same shape at top level,{ tags: ['a'] }, gets 400 INVALID_FILTER fromassertCompilableComparand. The same split held under$andand$not.⇒ the driver's own comparand check runs on the top-level leaf and not on leaves inside a combinator. A caller-fixable filter gets a server-fault code.
Reach
Triage judges whether that is enough reach. The seat records both states, and ⛔ does not grade.
Dedupe
MCP issue search, this repo, closed included, at 2026-09-23T14:52Z:
driver-sql nested array comparand 500 DATABASE_ERROR $or $and equality arrayreturned 4 hits, all closed, none this defect (#7398, #5346, #3774, #5134).Dedupe words:
driver-sql nested array comparand 500·combinator leaf skips comparand check·DATABASE_ERROR equality array $orGenerated by Claude Code