Skip to content

Support ReadRows method in the TableClient - #898

Merged
vgvoleg merged 3 commits into
ydb-platform:mainfrom
zinal:cursor/table-client-read-rows-f0ab
Sep 14, 2026
Merged

vgvoleg merged 3 commits into
ydb-platform:mainfrom
zinal:cursor/table-client-read-rows-f0ab

Conversation

@zinal

@zinal zinal commented Sep 14, 2026

Copy link
Copy Markdown
Member

Pull request type

Please check the type of change your PR introduces:

  • Bugfix
  • Feature
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Documentation content changes
  • Other (please describe):

What is the current behavior?

Currently YDB Python SDK does not support the TableClient.ReadRows call

Issue Number: N/A

What is the new behavior?

This PR adds support for TableClient.ReadRows call, as well as the related tests.

Other information

cursoragent and others added 3 commits September 14, 2026 09:49
Expose the TableService ReadRows RPC on sync and async TableClient,
mirroring bulk_upsert: a session-less unary call that takes key
structures and optional column names and returns a ResultSet.

Co-authored-by: Maksim Zinal <zinal@ydb.tech>
BaseTableClient is shared by the async client, so the driver call may
return a coroutine. Annotate the result as Any, matching bulk_upsert.

Co-authored-by: Maksim Zinal <zinal@ydb.tech>
The async path was already mocked through driver.future; add the same
coverage for the unary __call__ used by the synchronous client.

Co-authored-by: Maksim Zinal <zinal@ydb.tech>
@codecov

codecov Bot commented Sep 14, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.61%. Comparing base (5425815) to head (0c753ac).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #898      +/-   ##
==========================================
+ Coverage   82.59%   82.61%   +0.01%     
==========================================
  Files          99       99              
  Lines       12921    12939      +18     
  Branches     1267     1268       +1     
==========================================
+ Hits        10672    10689      +17     
- Misses       1798     1799       +1     
  Partials      451      451              
Flag Coverage Δ
integration 80.43% <94.44%> (+0.01%) ⬆️
unit 48.86% <94.44%> (+0.34%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
ydb/_apis.py 100.00% <100.00%> (ø)
ydb/_session_impl.py 63.35% <100.00%> (+1.17%) ⬆️
ydb/aio/table.py 80.42% <100.00%> (+0.10%) ⬆️
ydb/table.py 66.84% <100.00%> (+0.14%) ⬆️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vgvoleg
vgvoleg merged commit c5479bd into ydb-platform:main Sep 14, 2026
31 checks passed
@zinal
zinal deleted the cursor/table-client-read-rows-f0ab branch September 14, 2026 13:04
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.

3 participants