diff --git a/examples/testlibpq3.rs b/examples/testlibpq3.rs index f6bdab8..fefdbec 100644 --- a/examples/testlibpq3.rs +++ b/examples/testlibpq3.rs @@ -61,7 +61,7 @@ fn main() -> Result<(), Box> { */ /* Here is our out-of-line parameter value */ - let param_values = vec![Some(b"joe's place\0".to_vec())]; + let param_values: Vec> = vec![Some(b"joe's place\0")]; let res = conn.exec_params( "SELECT * FROM test1 WHERE t = $1", @@ -91,7 +91,7 @@ fn main() -> Result<(), Box> { let binary_int_val = htonl(2); /* Set up parameter arrays for PQexecParams */ - let param_values = vec![Some(binary_int_val)]; + let param_values = vec![Some(&binary_int_val[..])]; let param_formats = vec![libpq::Format::Binary]; let res = conn.exec_params( @@ -165,6 +165,6 @@ fn ntohl(netlong: &[u8]) -> Result { netlong[..4].try_into().map(i32::from_be_bytes) } -fn htonl(hostlong: i32) -> Vec { - hostlong.to_be_bytes().to_vec() +fn htonl(hostlong: i32) -> [u8; 4] { + hostlong.to_be_bytes() } diff --git a/src/connection/_async.rs b/src/connection/_async.rs index d1ec703..fd6ba77 100644 --- a/src/connection/_async.rs +++ b/src/connection/_async.rs @@ -32,7 +32,7 @@ impl Connection { &self, command: &str, param_types: &[crate::Oid], - param_values: &[Option>], + param_values: &[Option<&[u8]>], param_formats: &[crate::Format], result_format: crate::Format, ) -> crate::errors::Result { @@ -118,7 +118,7 @@ impl Connection { pub fn send_query_prepared( &self, name: Option<&str>, - param_values: &[Option>], + param_values: &[Option<&[u8]>], param_formats: &[crate::Format], result_format: crate::Format, ) -> crate::errors::Result { diff --git a/src/connection/_exec.rs b/src/connection/_exec.rs index 2a5bc4e..d7c1441 100644 --- a/src/connection/_exec.rs +++ b/src/connection/_exec.rs @@ -24,7 +24,7 @@ impl Connection { &self, command: &str, param_types: &[crate::Oid], - param_values: &[Option>], + param_values: &[Option<&[u8]>], param_formats: &[crate::Format], result_format: crate::Format, ) -> crate::PQResult { @@ -99,7 +99,7 @@ impl Connection { pub fn exec_prepared( &self, name: Option<&str>, - param_values: &[Option>], + param_values: &[Option<&[u8]>], param_formats: &[crate::Format], result_format: crate::Format, ) -> crate::PQResult { diff --git a/src/connection/mod.rs b/src/connection/mod.rs index 6a53a82..9e4f693 100644 --- a/src/connection/mod.rs +++ b/src/connection/mod.rs @@ -80,7 +80,7 @@ impl Connection { } fn transform_params( - param_values: &[Option>], + param_values: &[Option<&[u8]>], param_formats: &[crate::Format], ) -> (Vec<*const libc::c_char>, Vec, Vec) { if param_values.is_empty() { @@ -114,7 +114,7 @@ impl Connection { prefix: &str, command: &str, param_types: &[crate::Oid], - param_values: &[Option>], + param_values: &[Option<&[u8]>], param_formats: &[crate::Format], ) { use std::fmt::Write; @@ -284,7 +284,7 @@ mod test { let results = conn.exec_params( "SELECT $1", &[crate::types::INT4.oid], - &[Some(b"1\0".to_vec())], + &[Some(b"1\0")], &[], crate::Format::Text, ); @@ -299,7 +299,7 @@ mod test { let results = conn.exec_params( "SELECT $1", &[crate::types::INT4.oid], - &[Some(b"foo\0".to_vec())], + &[Some(b"foo\0")], &[], crate::Format::Text, ); @@ -310,13 +310,7 @@ mod test { #[should_panic] fn exec_text() { let conn = crate::test::new_conn(); - let _ = conn.exec_params( - "SELECT $1", - &[], - &[Some(b"foo".to_vec())], - &[], - crate::Format::Text, - ); + let _ = conn.exec_params("SELECT $1", &[], &[Some(b"foo")], &[], crate::Format::Text); } #[test] @@ -328,12 +322,8 @@ mod test { let results = conn.describe_prepared(Some("test1")); assert_eq!(results.nfields(), 1); - let results = conn.exec_prepared( - Some("test1"), - &[Some(b"fooo\0".to_vec())], - &[], - crate::Format::Text, - ); + let results = + conn.exec_prepared(Some("test1"), &[Some(b"fooo\0")], &[], crate::Format::Text); assert_eq!(results.value(0, 0), Some(&b"fooo"[..])); } @@ -360,7 +350,7 @@ mod test { conn.send_query_params( "SELECT $1", &[crate::types::TEXT.oid], - &[Some(b"fooo\0".to_vec())], + &[Some(b"fooo\0")], &[], crate::Format::Text, ) @@ -397,7 +387,7 @@ mod test { .unwrap(); while conn.result().is_some() {} - conn.send_query_prepared(None, &[Some(b"fooo\0".to_vec())], &[], crate::Format::Text) + conn.send_query_prepared(None, &[Some(b"fooo\0")], &[], crate::Format::Text) .unwrap(); assert_eq!(conn.result().unwrap().value(0, 0), Some(&b"fooo"[..])); assert!(conn.result().is_none());