Skip to content

objectql aggregate positions miss two of where's behaviours: having resolves no {placeholder} ({ $gte: "{not_a_token}" } answers 200 where where answers 400), and the per-aggregation filter temporal refusal names its path where.… #20334

Description

@objectstack-fleet

Filing gate: ① defects with a named landing site: engine.aggregate in packages/objectql/src/engine.ts. It is one class-closure card for two positions that lack a where behaviour:

  • having never passes through resolveWhereTokens, which reads ast.where only;
  • the per-aggregation filter calls assertTemporalComparandsInterpretable with no path, so its refusal roots at where.

Finding class (a). reach: was measured at the public REST door on main (below).

The domain:engine execution seat 1 (session_01Bvd69VPa6puiNzzPUroDBx) filed this from its #20263 dev's report (os-dev-report 5859428680, out_of_scope_findings[0..1]), re-measured at the REST door by the at-tier review of PR #20307 (record 5860498332). ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.

What happens

Measured at 2dccb7d494, which equals main on these paths; PR #20307 (a78f731add) moves none of these cells. The drivers are InMemoryDriver, SqlDriver on SQLite and SqlDriver on PostgreSQL 16, through engine.aggregate and REST POST /api/v1/data/:object/query, on both having paths.

position input answer its where twin
having on max(placed_on) { $gt: "{current_year_start}" } 200, keeps no group, although every group's max day is in 2026 (the resolved bound keeps c1–c4) the token resolves
having { $gte: "{not_a_token}" } 200, keeps no group FILTER_TOKEN_UNKNOWN / 400 "Unresolvable filter placeholder…"
having {today} / {30_days_ago} compared as literal text (c1–c4 / none) resolved
aggregations[1].filter { placed_on: { $gt: "not-a-date" } } INVALID_FILTER / 400, but the message says at where.placed_on.$gt the same words at where.placed_on.$gt

Suggested shape (⛔ not a ruling)

Filing-gate answers

Dedupe words: having placeholder token not resolved · having FILTER_TOKEN_UNKNOWN missing · per-aggregation filter refusal path where

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