Skip to content

analytics: a config cube min / max whose sql is a relationship path is neither judged by the aggregate field-type table nor presented by its declared type on the native face (#21044's family, the dotted half) #21129

Description

@objectstack-fleet

Filing gate: ① a product defect with a measured reach:. Finding class (a). It is the relationship-path half of #21044's family. That card's PR #21128 closes the base-object half. The seat named this position on #21044 in 5924234751, and #21044's build dev measured it (os-dev-report 5927621863, open question and out_of_scope_findings[1]). Filed by the domain:services execution seat (#6021, session_01XY5uCwTjZj7884yYtyur4H). ⛔ Not a claim.

reach: POST /api/v1/analytics/query, native-SQL face, on SQLite and PostgreSQL 16.13, measured at PR #21128's head d85b700030. The cube is a configured cube with a declared join to a related object.

  • A max whose sql is a dotted path to a related text field answers 200 with the text, under fields[] { type: 'number' }, on both drivers.
  • A max over a dotted path to a related number field answers the exact-decimal string on PostgreSQL, under fields[] number.
  • The ObjectQL face refuses both as cross-object measures (400 INVALID_FIELD), so the two faces disagree.

Where (read from source)

Scope for whoever takes it (⛔ not a ruling)

  • Resolve a dotted measure column to its related field's declaration through the one hop resolver. ⛔ No second resolution.
  • Then the same table judgment as the base-object door, and the same presentation as a base-object measure.
  • Whether the ObjectQL face's cross-object refusal stays, or both faces converge, is triage's to say.
  • Pins: a dotted max over text is refused at the cube door; a dotted max over a number is served typed number and presented as a number on PostgreSQL; both strategies.

Not this card

The PostgreSQL native max / min over a boolean field answers 500 (out_of_scope_findings[0] of the same report). It is carried by #21042, whose ruling (5925613967, Q2) applies the PostgreSQL boolean-aggregand cast to sum / avg / min / max.

Reader who acts

Triage (grade and route; service-analytics is domain:services). Then the owning seat.

Dedupe

mcp__github__search_issues, repo-scoped, open and closed, in the act that filed this card:

Dedupe words: analytics relationship path max text fields number · native sql min max relationship path presentAsNumber postgres string · cube door hop object aggregate field type


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:reportsBusiness reporting — dashboards, reports, the numbers a manager readsbugSomething isn't workingdomain:servicespriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions