From 3ed7ae62d8ad0ccb5f765a7b8b6397ce110d30ea Mon Sep 17 00:00:00 2001 From: Donovan Preston Date: Fri, 28 Feb 2020 14:42:16 -0500 Subject: [PATCH] fix: Fix #457 remaining blocking execute --- src/db/spanner/models.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/db/spanner/models.rs b/src/db/spanner/models.rs index eea21a24..849b6006 100644 --- a/src/db/spanner/models.rs +++ b/src/db/spanner/models.rs @@ -1445,7 +1445,7 @@ impl SpannerDb { "ids".to_owned(), as_list_value(params.bsos.iter().map(|pbso| pbso.id.clone())), ); - let existing = self + let mut streaming = self .sql( "SELECT bso_id FROM bsos @@ -1455,9 +1455,12 @@ impl SpannerDb { AND bso_id IN UNNEST(@ids)", )? .params(sqlparams) - .execute(&self.conn)? - .map_results(|mut row| row[0].take_string_value()) - .collect::>>()?; + .execute_async(&self.conn)?; + let mut existing = vec![]; + while let Some(row) = streaming.next_async().await { + let mut row = row?; + existing.push(row[0].take_string_value()); + } let mut inserts = vec![]; let mut updates = HashMap::new();