Skip to content

Commit ee74f6e

Browse files
authored
Merge pull request #239 from supabase/fix/scan-state-reset
fix: reset state when begin scan
2 parents 5e398a3 + 42aa7e1 commit ee74f6e

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

Diff for: wrappers/src/fdw/mssql_fdw/mssql_fdw.rs

+2
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,8 @@ impl ForeignDataWrapper<MssqlFdwError> for MssqlFdw {
192192
self.table = require_option("table", options)?.to_string();
193193
self.tgt_cols = columns.to_vec();
194194

195+
self.iter_idx = 0;
196+
195197
// create sql server client
196198
let tcp = self
197199
.rt

Diff for: wrappers/src/fdw/redis_fdw/redis_fdw.rs

+10-4
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,13 @@ impl RedisFdw {
7474
const FDW_NAME: &'static str = "RedisFdw";
7575
const BUF_SIZE: isize = 256;
7676

77+
fn reset(&mut self) {
78+
self.iter_idx = 0;
79+
self.scan_result.clear();
80+
self.iter_idx_stream = "-".to_string();
81+
self.scan_result_stream.clear();
82+
}
83+
7784
// fetch a target row for list and zset
7885
fn fetch_row_list(&mut self) -> RedisFdwResult<Option<Row>> {
7986
if let Some(ref mut conn) = &mut self.conn {
@@ -271,6 +278,8 @@ impl ForeignDataWrapper<RedisFdwError> for RedisFdw {
271278

272279
let mut conn = self.client.get_connection()?;
273280

281+
self.reset();
282+
274283
match src_type.as_str() {
275284
"list" | "zset" => {
276285
check_target_columns(
@@ -366,10 +375,7 @@ impl ForeignDataWrapper<RedisFdwError> for RedisFdw {
366375
}
367376

368377
fn re_scan(&mut self) -> RedisFdwResult<()> {
369-
self.iter_idx = 0;
370-
self.scan_result.clear();
371-
self.iter_idx_stream = "-".to_string();
372-
self.scan_result_stream.clear();
378+
self.reset();
373379
Ok(())
374380
}
375381

Diff for: wrappers/src/fdw/stripe_fdw/stripe_fdw.rs

+2
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,8 @@ impl ForeignDataWrapper<StripeFdwError> for StripeFdw {
660660
) -> StripeFdwResult<()> {
661661
let obj = require_option("object", options)?;
662662

663+
self.iter_idx = 0;
664+
663665
if let Some(client) = &self.client {
664666
let page_size = 100; // maximum page size limit for Stripe API
665667
let page_cnt = if let Some(limit) = limit {

0 commit comments

Comments
 (0)