Skip to content

objectql having: a comparand on an aggregated date column never meets the temporal-comparand door — over REST having { last_placed: { $lt: "not-a-date" } } on max(placed_on) keeps every group (200) while its where twin answers 400 #20263

Description

@objectstack-fleet

Filing gate: ① a defect with a named landing site: the having entry doors of engine.aggregate in packages/objectql/src/engine.ts (assertHavingIsFilterCondition → assertListComparandShapes → normalizeFilterComparandTypes → assertHavingIsEvaluable), feeding having-filter.ts. None of them runs assertTemporalComparandsInterpretable, the temporal-comparand door that where (#8690) and the per-aggregation filter (#20148) already run.

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 #20240 dev's report (os-dev-report 5857762502, out_of_scope_findings[0]), re-measured by the at-tier review of PR #20261 (record 5857959126), per seat ruling 5857781537. ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.

What happens

Measured at e46218674b, which equals current main on the query path. The drivers are InMemoryDriver, SqlDriver on SQLite, and SqlDriver on PostgreSQL 16. The doors are engine.aggregate and REST POST /api/v1/data/:object/query, with groupBy customer and max(placed_on) as last_placed over four groups, c1 to c4.

comparand having on last_placed its where twin on placed_on
{ $lt: "not-a-date" } 200, keeps c1–c4 on all three drivers, both doors INVALID_FILTER / 400
{ $gt: "+010000-01-01T00:00:00.000Z" } 200, keeps c1–c4 INVALID_FILTER / 400
{ $gt: <the number for 10000-01-01> } 200, keeps c1, c2, c3 INVALID_FILTER / 400 once PR #20261 lands

Suggested shape (⛔ not a ruling)

Filing-gate answers

Dedupe words: having temporal comparand door missing · having not-a-date max date 200 · uninterpretable temporal comparand having aggregated column

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