From 01862817c96a66128750e5cfa30a2a5d9e57e623 Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Mon, 30 Mar 2015 23:22:31 -0700 Subject: [PATCH] Add Debug bound on ToSql and log params during stmt execution --- src/lib.rs | 6 +++--- src/types/mod.rs | 2 +- src/types/slice.rs | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 2ab49bac..84a0bd19 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -65,7 +65,7 @@ use std::borrow::{ToOwned, Cow}; use std::cell::{Cell, RefCell}; use std::collections::{VecDeque, HashMap}; use std::fmt; -use std::iter::{IntoIterator, RandomAccessIterator}; +use std::iter::IntoIterator; use std::io::{self, BufStream}; use std::io::prelude::*; use std::mem; @@ -1353,7 +1353,7 @@ impl<'conn> Statement<'conn> { "expected {} parameters but got {}", self.param_types.len(), params.len()); - debug!("executing statement {}", self.name); + debug!("executing statement {} with parameters: {:?}", self.name, params); let mut values = vec![]; for (param, ty) in params.iter().zip(self.param_types.iter()) { let mut buf = vec![]; @@ -2032,7 +2032,7 @@ impl<'a> CopyInStatement<'a> { where I: Iterator, J: StreamIterator { let mut conn = self.conn.conn.borrow_mut(); - debug!("executing statement {}", self.name); + debug!("executing COPY IN statement {}", self.name); try!(conn.write_messages(&[ Bind { portal: "", diff --git a/src/types/mod.rs b/src/types/mod.rs index b9effb8a..e11444e0 100644 --- a/src/types/mod.rs +++ b/src/types/mod.rs @@ -605,7 +605,7 @@ pub enum IsNull { } /// A trait for types that can be converted into Postgres values. -pub trait ToSql { +pub trait ToSql: fmt::Debug { /// Converts the value of `self` into the binary format of the specified /// Postgres `Type`, writing it to `out`. /// diff --git a/src/types/slice.rs b/src/types/slice.rs index b31ee53e..fe72b043 100644 --- a/src/types/slice.rs +++ b/src/types/slice.rs @@ -24,6 +24,7 @@ use types::IsNull; /// } /// # Ok(()) } /// ``` +#[derive(Debug)] pub struct Slice<'a, T: 'a + ToSql>(pub &'a [T]); impl<'a, T: 'a + ToSql> ToSql for Slice<'a, T> {