Skip to content

Say what PageSize does on a roll-up - #44

Merged
kkdev92 merged 1 commit into
mainfrom
docs/rollup-pagesize
Aug 21, 2026
Merged

Say what PageSize does on a roll-up#44
kkdev92 merged 1 commit into
mainfrom
docs/rollup-pagesize

Conversation

@kkdev92

@kkdev92 kkdev92 commented Aug 21, 2026

Copy link
Copy Markdown
Owner

PageSize on RollUp and DailyRollUp does not bound the response. A roll-up returning 1,686
points returns the same 1,686 with PageSize set to 1440.

It bounds the query. Two checks use it, they round in opposite directions, and neither names it
when it refuses:

Rule Refusal
Ceiling, both operations at most ⌊cap ÷ window⌋ — whole windows that fit the data type's range cap INVALID_ROLLUP_QUERY_DURATION
Floor, DailyRollUp only at least ⌈range ÷ window⌉ — windows needed to cover the range, a partial one counting as one INVALID_DATA_POINT_NAME

The ceiling ignores the range asked for, so a one-day request is refused at the same boundary as a
ninety-day one.

Leaving PageSize unset satisfies both checks in most cases, because unset behaves as though it
were ⌈range ÷ window⌉. Not in all cases: that implied value is itself subject to the ceiling, so
a range needing more windows than the cap allows is refused with nothing set. On RollUp an
explicit value within the ceiling is then the way through, and the response is unaffected. On
DailyRollUp the two bounds leave no accepted value, and the combination cannot be requested at
all.

The property description both requests carry — a maximum number of points, 1440 by default — is
Google's own, reproduced as the generator found it. docs/data-points.md now records the observed
behaviour beside it, and semantics.json carries the same against both operations.

Scope

Documentation only. No generated file changes: codegen verify matches all committed sources byte
for byte.

Not claimed, because it was not established: nothing about heart-rate, which the credential used
could not read; and nothing about whether these operations ever page, only that no next page token
came back in anything tried.

🤖 Generated with Claude Code

It does not bound the response. A roll-up returning 1,686 points returns the
same 1,686 with PageSize set to 1440, and the count is unchanged across every
shape and data type tried.

It bounds the query. Two checks use it, they round in opposite directions, and
neither names it when it refuses. The ceiling, on both operations, is the whole
windows that fit the data type's range cap; exceeding it is refused as
INVALID_ROLLUP_QUERY_DURATION, and the check ignores the range asked for, so a
one-day request is refused at the same boundary as a ninety-day one. The floor,
on DailyRollUp alone, is the windows needed to cover the range with a partial
one counting as a whole; falling short is refused as INVALID_DATA_POINT_NAME.

Leaving it unset satisfies both in most cases, because unset behaves as though
it were the windows needed. Not in all cases: that implied value is subject to
the ceiling too, so a range needing more windows than the cap allows is refused
with nothing set. On RollUp an explicit value within the ceiling is then the
way through, and the response is unaffected. On DailyRollUp the two bounds
leave no accepted value and the combination cannot be requested.

The property description both requests carry is Google's own, reproduced as
the generator found it. The documentation records the observed behaviour beside
it, and semantics.json carries the same against both operations.

No generated file changes.

Co-authored-by: kkdev92 <kkdev92@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@kkdev92
kkdev92 merged commit 1159d98 into main Aug 21, 2026
10 checks passed
@kkdev92
kkdev92 deleted the docs/rollup-pagesize branch August 21, 2026 09:42
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