Does the JSON value in expr contain value (as a fragment/sub-document,
or, where the dialect has no native containment predicate, as an exact
equality check)?
mysql/mariadb: JSON_CONTAINS(col, '<value-json>') (matches
buildJsonContains in src/dialects/{mysql,mariadb}/index.ts).
postgres/cockroachdb: native jsonb containment operator -> col @> '<value-json>'::jsonb.
sqlite: SQLite has no containment operator; mirrors the whole-document
equality fallback used by buildJsonContains in
src/dialects/sqlite/index.ts -> col = '<value-json>'.
mssql, oracle, snowflake, redshift, db2, clickhouse: none of these expose
a native "does this JSON document contain this sub-fragment" predicate
(as opposed to key existence or exact-path equality), so this throws a
clear "not supported" error rather than emitting a plausible-looking but
semantically wrong query.
Does the JSON value in
exprcontainvalue(as a fragment/sub-document, or, where the dialect has no native containment predicate, as an exact equality check)?JSON_CONTAINS(col, '<value-json>')(matchesbuildJsonContainsinsrc/dialects/{mysql,mariadb}/index.ts).col @> '<value-json>'::jsonb.buildJsonContainsinsrc/dialects/sqlite/index.ts->col = '<value-json>'.