Skip to content

Commit 6255acb

Browse files
committed
chore: fix server.rs
1 parent 0e44dbf commit 6255acb

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

src/bin/server.rs

+14-12
Original file line numberDiff line numberDiff line change
@@ -172,19 +172,21 @@ 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) }.map_err(|e| PgWireError::ApiError(Box::new(e)))?;
178+
for tuple in iter.by_ref() {
179+
tuples.push(tuple.map_err(|e| PgWireError::ApiError(Box::new(e)))?);
180+
}
181+
encode_tuples(iter.schema(), tuples)?
182+
} else {
183+
let mut iter = self.inner.run(query).map_err(|e| PgWireError::ApiError(Box::new(e)))?;
184+
for tuple in iter.by_ref() {
185+
tuples.push(tuple.map_err(|e| PgWireError::ApiError(Box::new(e)))?);
186+
}
187+
encode_tuples(iter.schema(), tuples)?
188+
};
189+
Ok(vec![Response::Query(response)])
188190
}
189191
}
190192
}

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)