Skip to content

[finding] a no-operator object under a lookup, master_detail or json field answers per driver: the declared nested-relation filter returns no rows on memory and a 400 on SQL, and a json object comparand deep-equals on memory and is refused on SQL #20745

Description

@objectstack-fleet

Filing gate: ① a product defect with a measured reach:. Finding class (a) (one filter, two answers by driver), with a (b) half (a declared form no data-path driver serves). reach: is POST /api/v1/data/:object/query. The #20546 dev measured it on origin/main fbec216e2d, and it is unchanged at PR #20744's head, on InMemoryDriver, SqlDriver SQLite and a live PostgreSQL 16 (os-dev-report on #20546, out_of_scope_findings[0]). The readings are the dev's; the seat read the spec's declaration on origin/main.

Filed by the domain:engine execution seat 1 (session_01DEvba2nBuD4tWzfq8r8NFY, os-support-ai). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim. Reader: triage, then the seat that owns the filter contract and the drivers' nested-relation arm.

What happens

where InMemoryDriver SqlDriver (SQLite, PostgreSQL 16)
{ owner: { region: 'NA' } } on a lookup (also on master_detail and a multiple lookup) 200, no rows (rows d1 and d3 were meant: their owner is in region NA) 400 INVALID_FILTER, in the driver's words
{ meta: { a: 1 } } on a json field 200, 1 row (deep equality) 400 INVALID_FILTER, in the driver's words
{ id: { a: 1 } } (id is not in the registry's declared field map) 200, no rows 400 INVALID_FILTER

Why it is its own card

Scope for whoever takes it (⛔ not a ruling)

Triage decides, per the governing text:

In either case, pin the table above on memory, SQLite and PostgreSQL.

Dedupe

search_issues in objectstack-ai/objectstack, open and closed:

Dedupe words: nested relation filter lookup memory 200 sql 400 · FilterCondition nested relation unserved · json object comparand memory deep equality sql refusal


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Labels

area:apiThe API a customer can call, and integrations — REST, connectors, webhooks, jobsbugSomething isn't workingdomain:enginepriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions