Skip to content

Document pre-aggregation measure identity, role matching, filter placement and limitations - #2380

Merged
shangyian merged 4 commits into
mainfrom
docs-external-preagg-caveats
Jul 31, 2026
Merged

Document pre-aggregation measure identity, role matching, filter placement and limitations#2380
shangyian merged 4 commits into
mainfrom
docs-external-preagg-caveats

Conversation

@shangyian

@shangyian shangyian commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

Documents pre-aggregation behavior that shipped in #2369, #2370 and #2375 but wasn't written down, plus the limitations that are easiest to get wrong in practice.

Test Plan

  • PR has an associated issue: #
  • make check passes
  • make test shows 100% unit test coverage

Deployment Plan

None -- docs only.

shangyian and others added 4 commits July 29, 2026 02:49
…tations

Measure matching now compares expression AND Phase-1 aggregation, so the
"matched by expression hash" description was inaccurate and the guarantee it
provides was unstated. Adds a section on registering several aggregations of one
column, documents where filters are applied relative to the roll-up, and records
five limitations that were previously only discoverable by experiment: no
dimension joins onto an aggregate, one uncovered metric affecting a whole grain
group, registrations pinned to a node revision, freshness not gating routing,
and the raw-values requirement for COUNT(DISTINCT) columns.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Grain matching canonicalizes dimension references, so a bare and a role-qualified
spelling of the same dimension match each other and a registration made with one
spelling still serves queries written with the other. A bare name is rejected only
when the dimension is reachable by several roles, where it names none of them.
Output aliases still follow the caller's spelling.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The "What this means when you model" bullet still said measures are matched by
hash, which reads as expression-only. Measure identity is the expression plus its
aggregation, as the matching section above now states.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Written before the role-free-link preference landed in #2375: a bare name
and a role-qualified spelling only match when exactly one named role reaches
the dimension. When a role-free link also exists, the bare name means that
link and the two stay distinct.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@netlify

netlify Bot commented Jul 31, 2026

Copy link
Copy Markdown

Deploy Preview for thriving-cassata-78ae72 ready!

Name Link
🔨 Latest commit f396a21
🔍 Latest deploy log https://app.netlify.com/projects/thriving-cassata-78ae72/deploys/6a6cd9a8d77d460008f5b664
😎 Deploy Preview https://deploy-preview-2380--thriving-cassata-78ae72.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@shangyian
shangyian merged commit 3a9085d into main Jul 31, 2026
21 checks passed
@shangyian
shangyian deleted the docs-external-preagg-caveats branch July 31, 2026 23:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant