mirror of
https://github.com/launchbadge/sqlx.git
synced 2026-03-20 17:14:02 +00:00
WIP Query
This commit is contained in:
@@ -38,7 +38,6 @@ pub async fn establish<'a, 'b: 'a>(
|
||||
|
||||
conn.send(message).await?;
|
||||
|
||||
// FIXME: This feels like it could be reduced (see other connection flows)
|
||||
while let Some(message) = conn.stream.next().await {
|
||||
match message? {
|
||||
Message::Authentication(Authentication::Ok) => {
|
||||
|
||||
@@ -4,14 +4,13 @@ use futures::{
|
||||
task::{Context, Poll},
|
||||
Stream,
|
||||
};
|
||||
use std::fmt::Debug;
|
||||
use runtime::net::TcpStream;
|
||||
use sqlx_core::ConnectOptions;
|
||||
use sqlx_postgres_protocol::{Encode, Message, Terminate};
|
||||
use std::{io, pin::Pin};
|
||||
use std::{fmt::Debug, io, pin::Pin};
|
||||
|
||||
mod establish;
|
||||
// mod query;
|
||||
mod query;
|
||||
|
||||
pub struct Connection {
|
||||
stream: Framed<TcpStream>,
|
||||
@@ -42,9 +41,9 @@ impl Connection {
|
||||
Ok(conn)
|
||||
}
|
||||
|
||||
// pub async fn execute<'a, 'b: 'a>(&'a mut self, query: &'b str) -> io::Result<()> {
|
||||
// query::query(self, query).await
|
||||
// }
|
||||
pub async fn execute<'a: 'b, 'b>(&'a mut self, query: &'b str) -> io::Result<()> {
|
||||
query::query(self, query).await
|
||||
}
|
||||
|
||||
pub async fn close(mut self) -> io::Result<()> {
|
||||
self.send(Terminate).await?;
|
||||
|
||||
@@ -1,22 +1,18 @@
|
||||
use super::Connection;
|
||||
use crate::protocol::{client::Query, server::Message as ServerMessage};
|
||||
use futures::StreamExt;
|
||||
use sqlx_postgres_protocol::{Message, Query};
|
||||
use std::io;
|
||||
|
||||
pub async fn query<'a, 'b: 'a>(conn: &'a mut Connection, query: &'a str) -> io::Result<()> {
|
||||
conn.send(Query { query }).await?;
|
||||
pub async fn query<'a: 'b, 'b>(conn: &'a mut Connection, query: &'b str) -> io::Result<()> {
|
||||
conn.send(Query::new(query)).await?;
|
||||
|
||||
// FIXME: This feels like it could be reduced (see other connection flows)
|
||||
while let Some(message) = conn.incoming.next().await {
|
||||
match message {
|
||||
ServerMessage::ReadyForQuery(_) => {
|
||||
while let Some(message) = conn.stream.next().await {
|
||||
match message? {
|
||||
Message::ReadyForQuery(_) => {
|
||||
break;
|
||||
}
|
||||
|
||||
ServerMessage::CommandComplete(body) => {
|
||||
}
|
||||
|
||||
_ => {
|
||||
message => {
|
||||
unimplemented!("received {:?} unimplemented message", message);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user