Say what PageSize does on a roll-up - #44
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PageSizeonRollUpandDailyRollUpdoes not bound the response. A roll-up returning 1,686points returns the same 1,686 with
PageSizeset to 1440.It bounds the query. Two checks use it, they round in opposite directions, and neither names it
when it refuses:
⌊cap ÷ window⌋— whole windows that fit the data type's range capINVALID_ROLLUP_QUERY_DURATIONDailyRollUponly⌈range ÷ window⌉— windows needed to cover the range, a partial one counting as oneINVALID_DATA_POINT_NAMEThe ceiling ignores the range asked for, so a one-day request is refused at the same boundary as a
ninety-day one.
Leaving
PageSizeunset satisfies both checks in most cases, because unset behaves as though itwere
⌈range ÷ window⌉. Not in all cases: that implied value is itself subject to the ceiling, soa range needing more windows than the cap allows is refused with nothing set. On
RollUpanexplicit value within the ceiling is then the way through, and the response is unaffected. On
DailyRollUpthe two bounds leave no accepted value, and the combination cannot be requested atall.
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.mdnow records the observedbehaviour beside it, and
semantics.jsoncarries the same against both operations.Scope
Documentation only. No generated file changes:
codegen verifymatches all committed sources bytefor byte.
Not claimed, because it was not established: nothing about
heart-rate, which the credential usedcould 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