WIP Query

This commit is contained in:
Ryan Leckey
2019-06-29 21:57:04 -07:00
parent c895ef52fe
commit e8ecbeda36
7 changed files with 84 additions and 19 deletions

View File

@@ -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) => {

View File

@@ -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?;

View File

@@ -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);
}
}