Skip to content

Commit 566d164

Browse files
committed
chore: fix server.rs
1 parent 0e44dbf commit 566d164

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

src/bin/server.rs

+18-12
Original file line numberDiff line numberDiff line change
@@ -172,19 +172,25 @@ impl SimpleQueryHandler for SessionBackend {
172172
_ => {
173173
let mut guard = self.tx.lock();
174174

175-
let iter = if let Some(transaction) = guard.as_mut() {
176-
unsafe { transaction.as_mut().run(query) }.map(Box::new)
177-
as Result<Box<dyn ResultIter>, _>
178-
} else {
179-
self.inner.run(query).map(Box::new)
180-
}
181-
.map_err(|e| PgWireError::ApiError(Box::new(e)))?;
182-
183175
let mut tuples = Vec::new();
184-
for tuple in iter {
185-
tuples.push(tuple.map_err(|e| PgWireError::ApiError(Box::new(e)))?);
186-
}
187-
Ok(vec![Response::Query(encode_tuples(iter.schema(), tuples)?)])
176+
let response = if let Some(transaction) = guard.as_mut() {
177+
let mut iter = unsafe { transaction.as_mut().run(query) }
178+
.map_err(|e| PgWireError::ApiError(Box::new(e)))?;
179+
for tuple in iter.by_ref() {
180+
tuples.push(tuple.map_err(|e| PgWireError::ApiError(Box::new(e)))?);
181+
}
182+
encode_tuples(iter.schema(), tuples)?
183+
} else {
184+
let mut iter = self
185+
.inner
186+
.run(query)
187+
.map_err(|e| PgWireError::ApiError(Box::new(e)))?;
188+
for tuple in iter.by_ref() {
189+
tuples.push(tuple.map_err(|e| PgWireError::ApiError(Box::new(e)))?);
190+
}
191+
encode_tuples(iter.schema(), tuples)?
192+
};
193+
Ok(vec![Response::Query(response)])
188194
}
189195
}
190196
}

src/db.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ impl<S: Storage> Database<S> {
328328
}
329329
}
330330

331-
pub trait ResultIter: Iterator<Item = Result<Tuple, DatabaseError>> + Sized {
331+
pub trait ResultIter: Iterator<Item = Result<Tuple, DatabaseError>> {
332332
fn schema(&self) -> &SchemaRef;
333333

334334
fn done(self) -> Result<(), DatabaseError>;

0 commit comments

Comments
 (0)