fix(ext/node): StatementSync.iterate() should reset is_iter_finished flag on every call#31361
Conversation
WalkthroughThis PR changes Sequence Diagram(s)sequenceDiagram
autonumber
participant Caller
participant StatementSync
participant DB
note right of StatementSync `#DDEBF7`: field is_iter_finished: Cell<bool>
Caller->>StatementSync: prepare() -> returns StatementSync (is_iter_finished = Cell.new(false))
Caller->>StatementSync: iterate() --(reset)--> StatementSync: is_iter_finished.set(false)
loop each next()
Caller->>StatementSync: next()
alt rows available
StatementSync->>DB: fetch row
DB-->>StatementSync: row
StatementSync-->>Caller: Some(row)
else no more rows
StatementSync-->>StatementSync: is_iter_finished.set(true)
StatementSync-->>Caller: None
end
end
Caller->>StatementSync: return() (early)
StatementSync-->>StatementSync: is_iter_finished.set(true)
StatementSync-->>Caller: Iterator finished
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
🔇 Additional comments (6)
Comment |
StatementSync.iterate() should not reuse previous stateStatementSync.iterate() should reset is_iter_finished flag on every call
…ed` flag on every call (#31361)
Closes #30144