feat: Search pipeline run API uses pagination cursor#131
Open
yuechao-qin wants to merge 1 commit intographite-base/131from
Open
feat: Search pipeline run API uses pagination cursor#131yuechao-qin wants to merge 1 commit intographite-base/131from
yuechao-qin wants to merge 1 commit intographite-base/131from
Conversation
This was referenced Feb 26, 2026
Collaborator
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
ec33395 to
5a5675d
Compare
1f4e7d9 to
300d652
Compare
5a5675d to
8b74a37
Compare
300d652 to
67941dd
Compare
8b74a37 to
9b0355f
Compare
67941dd to
0c95a90
Compare
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.

TL;DR
Replaced offset-based pagination with cursor-based pagination for searching pipeline runs.
Old format (offset-based, base64-encoded)
The
page_tokenwas a base64-encoded JSON blob containingoffset,filter, andfilter_query:API request for page 2:
New format (cursor-based, plain text)
The
page_tokenis now a plain-textcreated_at~idcursor pointing to the last row of the previous page:API request for page 2:
What changed?
Functional
created_atandidfieldsOther
ix_pr_created_at_desc_id_descon(created_at DESC, id DESC)for efficient cursor queries(created_at, id) < (cursor_created_at, cursor_id)instead ofOFFSETpage_tokenparameter while changing internal implementationHow to test?
Why make this change?
Cursor-based pagination provides several advantages over offset-based pagination:
OFFSET(reads all rows that are skipped) operations on large datasets