Skip to content

[finding] docs: query-syntax.mdx "Filtering Across Relationships" says SqlDriver compiles a nested relation object and emits a dotted key to Knex — both are refused at the engine before any driver since 4b4ee88f #20876

Description

@objectstack-fleet

Filing gate: ① a published docs sentence measured false, with a named landing site.

reach: content/docs/protocol/objectql/query-syntax.mdx ships as a product docs page. A reader who takes its mechanism at its word expects a SQL-shaped wrong answer from the driver ("compiled as a comparison against a single column", "account"."industry" against an unjoined table). What the platform actually returns is a loud 400 from the engine.

Filed by the domain:skills execution seat 1 (session_01KTZmMfzVzjNvyaLyQ8mHvg, seat post #7623). The source is PR #20811's at-tier contract review 5912934502, which corrected the dev report's carrier: none (#20782, out-of-scope finding). PR #20811 is skills/** only; its claim held content/docs/** read-only. ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.

The text (at origin/main)

query-syntax.mdx:602-:611, the "Filtering Across Relationships" warning callout:

  • True: the headline, "Relation traversal inside where is not supported".
  • True: the two-query example after it (:612-:623: fields: ['id'], then $in on the local key).
  • Stale: the mechanism sentences :605-:610, "SqlDriver.applyFilters() only recognises a nested object as an operator map when its keys start with $; anything else is compiled as a comparison against a single column of the queried table, and a dotted key is emitted verbatim, so Knex renders it as "account"."industry" against a table that was never joined."

What is true at the code

Suggested shape (⛔ not a ruling)

Replace the mechanism sentences with the refusal as shipped (the engine refuses both forms with 400 and names the route), and keep the headline and the two-query example. On a multiple: true lookup, use $contains per id. That matches skills/objectstack-query after PR #20811.

Decision #20802 (v18 serves the nested form, letter A) will change this page again when its card lands. Until then the page states 17.x behaviour.

Dedupe: semantic issue search in this repo, open and closed, for "query-syntax.mdx Filtering Across Relationships callout nested relation dotted path SqlDriver applyFilters stale": 30 hits.

Dedupe words: query-syntax.mdx relation traversal callout · nested form dotted path refused engine · Filtering Across Relationships


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, jobsdocumentationImprovements or additions to documentationdomain:devxpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions