diff --git a/tokio-postgres/src/copy_in.rs b/tokio-postgres/src/copy_in.rs index f9b8f599..fc712f6d 100644 --- a/tokio-postgres/src/copy_in.rs +++ b/tokio-postgres/src/copy_in.rs @@ -7,6 +7,7 @@ use bytes::{Buf, BufMut, BytesMut}; use futures::channel::mpsc; use futures::future; use futures::{ready, Sink, SinkExt, Stream, StreamExt}; +use log::debug; use pin_project_lite::pin_project; use postgres_protocol::message::backend::Message; use postgres_protocol::message::frontend; @@ -199,6 +200,8 @@ pub async fn copy_in(client: &InnerClient, statement: Statement) -> Result Result { + debug!("executing copy out statement {}", statement.name()); + let buf = query::encode(client, &statement, slice_iter(&[]))?; let responses = start(client, buf).await?; Ok(CopyOutStream { diff --git a/tokio-postgres/src/prepare.rs b/tokio-postgres/src/prepare.rs index 57927b8f..49397deb 100644 --- a/tokio-postgres/src/prepare.rs +++ b/tokio-postgres/src/prepare.rs @@ -8,6 +8,7 @@ use crate::{Column, Error, Statement}; use bytes::Bytes; use fallible_iterator::FallibleIterator; use futures::{pin_mut, TryStreamExt}; +use log::debug; use postgres_protocol::message::backend::Message; use postgres_protocol::message::frontend; use std::future::Future; @@ -111,6 +112,12 @@ fn prepare_rec<'a>( } fn encode(client: &InnerClient, name: &str, query: &str, types: &[Type]) -> Result { + if types.is_empty() { + debug!("preparing query {}: {}", name, query); + } else { + debug!("preparing query {} with types {:?}: {}", name, types, query); + } + client.with_buf(|buf| { frontend::parse(name, query, types.iter().map(Type::oid), buf).map_err(Error::encode)?; frontend::describe(b'S', &name, buf).map_err(Error::encode)?; diff --git a/tokio-postgres/src/query.rs b/tokio-postgres/src/query.rs index a821caf8..7792f0a8 100644 --- a/tokio-postgres/src/query.rs +++ b/tokio-postgres/src/query.rs @@ -5,6 +5,7 @@ use crate::types::{IsNull, ToSql}; use crate::{Error, Portal, Row, Statement}; use bytes::{Bytes, BytesMut}; use futures::{ready, Stream}; +use log::{debug, log_enabled, Level}; use pin_project_lite::pin_project; use postgres_protocol::message::backend::Message; use postgres_protocol::message::frontend; @@ -21,9 +22,9 @@ where I: IntoIterator, I::IntoIter: ExactSizeIterator, { - let buf = if log::log_enabled!(log::Level::Debug) { + let buf = if log_enabled!(Level::Debug) { let params = params.into_iter().collect::>(); - log::debug!( + debug!( "executing statement {} with parameters: {:?}", statement.name(), params, @@ -69,9 +70,9 @@ where I: IntoIterator, I::IntoIter: ExactSizeIterator, { - let buf = if log::log_enabled!(log::Level::Debug) { + let buf = if log_enabled!(Level::Debug) { let params = params.into_iter().collect::>(); - log::debug!( + debug!( "executing statement {} with parameters: {:?}", statement.name(), params, diff --git a/tokio-postgres/src/simple_query.rs b/tokio-postgres/src/simple_query.rs index 04899fb9..82ac3566 100644 --- a/tokio-postgres/src/simple_query.rs +++ b/tokio-postgres/src/simple_query.rs @@ -5,6 +5,7 @@ use crate::{Error, SimpleQueryMessage, SimpleQueryRow}; use bytes::Bytes; use fallible_iterator::FallibleIterator; use futures::{ready, Stream}; +use log::debug; use pin_project_lite::pin_project; use postgres_protocol::message::backend::Message; use postgres_protocol::message::frontend; @@ -14,6 +15,8 @@ use std::sync::Arc; use std::task::{Context, Poll}; pub async fn simple_query(client: &InnerClient, query: &str) -> Result { + debug!("executing simple query: {}", query); + let buf = encode(client, query)?; let responses = client.send(RequestMessages::Single(FrontendMessage::Raw(buf)))?; @@ -25,6 +28,8 @@ pub async fn simple_query(client: &InnerClient, query: &str) -> Result Result<(), Error> { + debug!("executing statement batch: {}", query); + let buf = encode(client, query)?; let mut responses = client.send(RequestMessages::Single(FrontendMessage::Raw(buf)))?;