Skip to content

fix: preserve row sequence source errors matching Done - #281

Merged
apstndb merged 2 commits into
mainfrom
fix/seq-error-20260923
Sep 22, 2026
Merged

apstndb merged 2 commits into
mainfrom
fix/seq-error-20260923

Conversation

@apstndb

@apstndb apstndb commented Sep 22, 2026

Copy link
Copy Markdown
Owner

Keep yielded iterator.Done, wrapped Done, and joined source failures as errors in RunRowSeq and its deferred-metadata path. Previously they could be mistaken for successful exhaustion and trigger Finish.

Use a private exhaustion sentinel only for an exhausted sequence or native iterator completion. Preserve source error identity, abort without Finish, and release the source once. Document why exact sentinel comparison is intentional.

Validated: direct/wrapped/joined error regressions before and after a successful row, existing lifecycle/deferred-metadata tests, make check, race tests, Example tests, and dbsqlrows/gospanner tests with Go 1.25.13.

Fixes #275.

@apstndb
apstndb merged commit b077c53 into main Sep 22, 2026
5 checks passed
@apstndb
apstndb deleted the fix/seq-error-20260923 branch September 22, 2026 22:19
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.

writer: distinguish row-sequence exhaustion from yielded errors

1 participant