Skip to content

[finding] $ne with an array comparand splits across backends: driver-sql and driver-memory refuse (400), driver-mongodb answers, formula matches every row — and both shared faces pass it #19886

Description

@os-support-ai

Ruled: 5805254639 · letter A (class-1) · 2026-09-24T00:31Z

Filing gate: ② a maintainer decision, carrying a (b) reading. Ruling 乙 (5793368540) covers the equality slot, and PR #19882 deliberately ⛔ does not extend it to $ne.

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.

The contract

NE_DESCRIPTION in packages/spec/src/data/filter.zod.ts on origin/main 1f89ba0d70, re-read by this seat: 「The comparand is a literal, or a { $field } reference to another column of the same table」. An array is neither.

The split (the implementing round's readings)

backend { tags: { $ne: ['a'] } }
driver-sql / driver-memory refused, 400
driver-mongodb answered (mingo, the named proxy, selects the rows whose tags is not the array ['a'] and does not contain it; live mongod NOT MEASURED)
@objectstack/formula matches every row
the shared comparand-shape face and objectql's wrapper pass it

The ViewFilterRuleSchema door already refuses not_equals with an array at authoring time (PR #19514).

Why it needs its own ruling

It is the equality slot's negation, with the same one-contract-several-answers shape that ruling 乙 settled. But ruling 乙's letter names equality. Extending the refusal to $ne narrows another published accept set, so it is ⛔ not a seat's call.

Dedupe

MCP issue search, this repo, at 2026-09-23T14:52Z: $ne array comparand not_equals array mongodb answers cross-backend returned 2 hits, #19757 (the equality slot this ruling covered) and #6682 (unrelated).

Dedupe words: $ne array comparand mongodb answers · not_equals array cross-backend split · inequality slot array

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions