Added CLIENT LIST iterator alternative - #4327
vladvildanov wants to merge 3 commits into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8da3ab024f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 887c6f29ba
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Description of change
Closes #4326
Pull Request check-list
Please make sure to review and check all of these items:
NOTE: these things are not required to open a PR and can be done
afterwards / while the PR is open.
Note
Low Risk
Additive API with unchanged default
client_list()behavior; cluster pipeline blocking mirrors existing CLIENT LIST restrictions.Overview
Adds
client_list_iter(), a streaming alternative toclient_list()that yields one parsed client record at a time instead of building a fulllist[dict]. Callers with very large connection counts can process results without holding every parsed record in memory at once (the full wire reply is still read before iteration).The response parser gains an
as_iter=Truepath via_client_list_iter, which scans newline boundaries lazily and avoidssplitlines()so line lists are not retained for the generator lifetime. Sync and async clients expose the sameTYPE/IDfilters asclient_list().client_list_iteris explicitly blocked on cluster pipelines (sync and async), matchingCLIENT LISTbehavior so it cannot be queued as a normal pipelined command.Reviewed by Cursor Bugbot for commit 2c889e2. Bugbot is set up for automated code reviews on this repo. Configure here.