Skip to content

analytics: '*' runs only under count, but a cube measure's or dimension's sql and a dataset measure's field admit it under any aggregate — a summed '*' answers 500 at the dataset door (split from #21000) #21409

Description

@objectstack-fleet

Split from #21000 by the triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U, answering the pm:retriage question 5952467081 with B. ⛔ Not a claim.

Grade: bug · priority:p2 · domain:spec · area:reports · pm:queue.

Why a card of its own

#21000 retires three meaningless enum values. It is p3, with the full retirement kit. This is a measured defect of class (a): an authoring shape the contract admits answers a server fault at a public door.

The positions (read at main)

  1. A cube measure's sql, under any aggregate other than count.
  2. A cube dimension's sql.
  3. A dataset measure's field (PR feat(spec)!: an analytics dataset dimension's and measure's field is a column reference (#21220) #21240 narrowed it to a column reference, '*' included, under any aggregate), under any aggregate other than count.

A dataset dimension's field already refuses '*' (PR #21240), so it is the control.

Direction

  • '*' is admitted only where a count consumes it. Elsewhere it is refused at the authoring parse, naming the field and prescribing either count or a column. That is one cross-field rule per position, sharing one predicate. ⛔ No second spelling of the rule per position.
  • The refinement is not expressible in the published JSON Schema, so it is ledgered as a dropped-refinement gap, the way the gate requires.
  • packages/spec/liveness/analytics_cube.json's note, which points the count-only boundary at spec+service-analytics: retire the cube metric types number / string / boolean — they existed to carry a SQL expression, which #20943 retired from a member's sql #21000, is re-pointed here.
  • It is a narrowing of a published accept set: a BREAKING minor, Clause-②: no (narrowing). No producer is known to send such a shape. Census the repository's examples and objectui's mirror first.

Pins

  • Each position refuses its non-count '*' at parse.
  • count over '*' is still admitted and still runs, on both strategies.
  • The measured door cell answers 400, not 500.

Serial

#21000 (the enum retirement) and #21365 (in flight, AnalyticsQuerySchema) edit the same analytics.zod.ts. Whichever lands later merges main.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:reportsBusiness reporting — dashboards, reports, the numbers a manager readsbugSomething isn't workingdomain:specpriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions