Skip to content

Commit 8ade649

Browse files
authored
fix: generate header after query in DuckDB example (#271)
1 parent 164a33c commit 8ade649

1 file changed

Lines changed: 14 additions & 14 deletions

File tree

examples/duckdb.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,13 @@ impl SimpleQueryHandler for DuckDBBackend {
5555
let mut stmt = conn
5656
.prepare(query)
5757
.map_err(|e| PgWireError::ApiError(Box::new(e)))?;
58-
let header = Arc::new(row_desc_from_stmt(&stmt, &Format::UnifiedText)?);
59-
stmt.query(params![])
60-
.map(|rows| {
61-
let s = encode_row_data(rows, header.clone());
62-
vec![Response::Query(QueryResponse::new(header, s))]
63-
})
64-
.map_err(|e| PgWireError::ApiError(Box::new(e)))
58+
let rows = stmt
59+
.query(params![])
60+
.map_err(|e| PgWireError::ApiError(Box::new(e)))?;
61+
let row_stmt = rows.as_ref().unwrap();
62+
let header = Arc::new(row_desc_from_stmt(row_stmt, &Format::UnifiedText)?);
63+
let s = encode_row_data(rows, header.clone());
64+
Ok(vec![Response::Query(QueryResponse::new(header, s))])
6565
} else {
6666
conn.execute(query, params![])
6767
.map(|affected_rows| {
@@ -262,13 +262,13 @@ impl ExtendedQueryHandler for DuckDBBackend {
262262
.collect::<Vec<&dyn duckdb::ToSql>>();
263263

264264
if query.to_uppercase().starts_with("SELECT") {
265-
let header = Arc::new(row_desc_from_stmt(&stmt, &portal.result_column_format)?);
266-
stmt.query::<&[&dyn duckdb::ToSql]>(params_ref.as_ref())
267-
.map(|rows| {
268-
let s = encode_row_data(rows, header.clone());
269-
Response::Query(QueryResponse::new(header, s))
270-
})
271-
.map_err(|e| PgWireError::ApiError(Box::new(e)))
265+
let rows: Rows<'_> = stmt
266+
.query::<&[&dyn duckdb::ToSql]>(params_ref.as_ref())
267+
.map_err(|e| PgWireError::ApiError(Box::new(e)))?;
268+
let row_stmt = rows.as_ref().unwrap();
269+
let header = Arc::new(row_desc_from_stmt(row_stmt, &portal.result_column_format)?);
270+
let s = encode_row_data(rows, header.clone());
271+
Ok(Response::Query(QueryResponse::new(header, s)))
272272
} else {
273273
stmt.execute::<&[&dyn duckdb::ToSql]>(params_ref.as_ref())
274274
.map(|affected_rows| {

0 commit comments

Comments
 (0)