From c58edec63a4918503440e45ddba6ebe0a97c9163 Mon Sep 17 00:00:00 2001 From: George MacKerron Date: Fri, 5 May 2023 11:16:07 +0100 Subject: [PATCH] Small progress on sql-over-http --- proxy/src/http/websocket.rs | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/proxy/src/http/websocket.rs b/proxy/src/http/websocket.rs index 15aa853541..73e9ced4bf 100644 --- a/proxy/src/http/websocket.rs +++ b/proxy/src/http/websocket.rs @@ -16,7 +16,7 @@ use serde_json::Value; use tokio::sync::Mutex; use percent_encoding::percent_decode; -use tokio_postgres::types::ToSql; +use tokio_postgres::types::{ToSql, FromSql}; use std::collections::HashMap; use std::{ convert::Infallible, @@ -336,24 +336,18 @@ async fn handle_sql( .query(query, params) .await? .into_iter() - .filter_map(|el| { - if let tokio_postgres::SimpleQueryMessage::Row(row) = el { - let mut serilaized_row: HashMap = HashMap::new(); - for i in 0..row.len() { - let col = row.columns().get(i).map_or("?", |c| c.name()); - let val = row.get(i).unwrap_or("?"); - serilaized_row.insert(col.into(), val.into()); - } - Some(serilaized_row) - } else { - None + .filter_map(|row| { + let mut serialized_row: HashMap = HashMap::new(); + for i in 0..row.len() { + let col = row.columns().get(i).map_or("?", |c| c.name()); + let val = row.get(i).unwrap_or("?"); + serialized_row.insert(col.into(), val.into()); } + Some(serialized_row) }) .collect(); Ok(serde_json::to_string(&rows)?) - - // ConnectionCache::execute(&cache, conn_string, &hostname, sql).await } pub struct ConnectionCache {