Skip to content

Preserve bulk_update object and field iterators - #2320

Merged
waketzheng merged 6 commits into
tortoise:developfrom
IlyaKhalafi:fix/bulk-update-iterables
Oct 24, 2026
Merged

waketzheng merged 6 commits into
tortoise:developfrom
IlyaKhalafi:fix/bulk-update-iterables

Conversation

@IlyaKhalafi

Copy link
Copy Markdown
Contributor

Description

This PR fixes bulk_update consuming object and field iterators before all batches run. With this, iterator inputs update every batch, with object membership and field names captured when the query is created.

Fixes #2317

Motivation and Context

Both inputs accept iterables, but validation exhausts object iterators and batching exhausts field iterators.

How Has This Been Tested?

The new cases fail five times on the original code, with four passing controls. The full SQLite suite passes with 1983 passed, 149 skipped and two expected failures. make check passes.

Checklist

  • I have read the contribution guide
  • My code follows the project style
  • I have added regression tests
  • I have added a changelog entry

@codspeed

codspeed Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Merging this PR will not alter performance

1 warning

⚠️ 21 benchmarks are dominated by system calls

System calls cannot be simulated consistently and are left out of the measure. The reported value understates the real cost. Switch to the Walltime instrument to measure them.

Learn more about system calls

See affected benchmarks

✅ 24 untouched benchmarks


Comparing IlyaKhalafi:fix/bulk-update-iterables (2a172d8) with develop (cec625e)

Open in CodSpeed

@IlyaKhalafi
IlyaKhalafi force-pushed the fix/bulk-update-iterables branch from 6a49970 to 2c079b7 Compare October 23, 2026 16:35
@waketzheng
waketzheng merged commit 536fc3a into tortoise:develop Oct 24, 2026
25 checks passed
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.

bulk_update consumes object and field iterators before all updates run

2 participants