Skip to content

Commit 066274a

Browse files
committed
Bump to rust-postgres 0.5
1 parent 212b113 commit 066274a

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ repository = "https://github.com/sfackler/rust-postgres-array"
1010
default = ["uuid"]
1111

1212
[dependencies]
13-
postgres = "0.4"
13+
postgres = "0.5"
1414
rustc-serialize = "0.2"
1515
time = "0.1"
1616

src/impls/mod.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ macro_rules! from_sql_impl {
2525
check_types!(ty, $($oid),+);
2626

2727
match raw {
28-
Some(mut raw) => ::postgres::types::RawFromSql::raw_from_sql(&mut raw).map(Some),
28+
Some(mut raw) => ::postgres::types::RawFromSql::raw_from_sql(ty, &mut raw).map(Some),
2929
None => Ok(None),
3030
}
3131
}
@@ -70,7 +70,7 @@ macro_rules! to_sql_impl {
7070
mod uuid;
7171

7272
impl<T> RawFromSql for ArrayBase<Option<T>> where T: RawFromSql {
73-
fn raw_from_sql<R: Reader>(raw: &mut R) -> postgres::Result<ArrayBase<Option<T>>> {
73+
fn raw_from_sql<R: Reader>(ty: &Type, raw: &mut R) -> postgres::Result<ArrayBase<Option<T>>> {
7474
let ndim = try!(raw.read_be_u32()) as usize;
7575
let _has_null = try!(raw.read_be_i32()) == 1;
7676
let _element_type: Oid = try!(raw.read_be_u32());
@@ -95,7 +95,8 @@ impl<T> RawFromSql for ArrayBase<Option<T>> where T: RawFromSql {
9595
elements.push(None);
9696
} else {
9797
let mut limit = LimitReader::new(raw.by_ref(), len as usize);
98-
elements.push(Some(try!(RawFromSql::raw_from_sql(&mut limit))));
98+
elements.push(Some(try!(RawFromSql::raw_from_sql(&ty.element_type().unwrap(),
99+
&mut limit))));
99100
if limit.limit() != 0 {
100101
return Err(Error::BadData);
101102
}
@@ -123,7 +124,7 @@ fn raw_to_array<T>(array: &ArrayBase<Option<T>>, ty: &Type) -> Vec<u8> where T:
123124

124125
let _ = buf.write_be_i32(array.dimension_info().len() as i32);
125126
let _ = buf.write_be_i32(1);
126-
let _ = buf.write_be_u32(ty.member_type().to_oid());
127+
let _ = buf.write_be_u32(ty.element_type().unwrap().to_oid());
127128

128129
for info in array.dimension_info().iter() {
129130
let _ = buf.write_be_i32(info.len as i32);
@@ -134,7 +135,7 @@ fn raw_to_array<T>(array: &ArrayBase<Option<T>>, ty: &Type) -> Vec<u8> where T:
134135
match *v {
135136
Some(ref val) => {
136137
let mut inner_buf = vec![];
137-
let _ = val.raw_to_sql(&mut inner_buf);
138+
let _ = val.raw_to_sql(&ty.element_type().unwrap(), &mut inner_buf);
138139
let _ = buf.write_be_i32(inner_buf.len() as i32);
139140
let _ = buf.write(&*inner_buf);
140141
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy