Skip to content

Commit 75de360

Browse files
committed
Update for API changes
1 parent 721288a commit 75de360

7 files changed

Lines changed: 97 additions & 96 deletions

File tree

src/lib.rs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ extern crate extra;
6969
extern crate openssl;
7070
extern crate serialize;
7171
extern crate sync;
72+
extern crate time;
7273
#[phase(syntax)]
7374
extern crate phf_mac;
7475
extern crate phf;
@@ -568,7 +569,7 @@ impl InnerPostgresConnection {
568569
match if_ok_pg!(self.read_message()) {
569570
ParseComplete => {}
570571
ErrorResponse { fields } => {
571-
if_ok!(self.wait_for_ready());
572+
try!(self.wait_for_ready());
572573
return Err(PgDbError(PostgresDbError::new(fields)));
573574
}
574575
_ => unreachable!()
@@ -589,14 +590,14 @@ impl InnerPostgresConnection {
589590
_ => unreachable!()
590591
};
591592

592-
if_ok!(self.wait_for_ready());
593+
try!(self.wait_for_ready());
593594

594595
// now that the connection is ready again, get unknown type names
595596
for param in param_types.mut_iter() {
596597
match *param {
597598
PgUnknownType { oid, .. } =>
598599
*param = PgUnknownType {
599-
name: if_ok!(self.get_type_name(oid)),
600+
name: try!(self.get_type_name(oid)),
600601
oid: oid
601602
},
602603
_ => {}
@@ -607,7 +608,7 @@ impl InnerPostgresConnection {
607608
match desc.ty {
608609
PgUnknownType { oid, .. } =>
609610
desc.ty = PgUnknownType {
610-
name: if_ok!(self.get_type_name(oid)),
611+
name: try!(self.get_type_name(oid)),
611612
oid: oid
612613
},
613614
_ => {}
@@ -629,7 +630,7 @@ impl InnerPostgresConnection {
629630
Some(name) => return Ok(name.clone()),
630631
None => {}
631632
}
632-
let name = if_ok!(self.quick_query(
633+
let name = try!(self.quick_query(
633634
format!("SELECT typname FROM pg_type WHERE oid={}", oid)))[0][0]
634635
.unwrap();
635636
self.unknown_types.insert(oid, name.clone());
@@ -657,7 +658,7 @@ impl InnerPostgresConnection {
657658
opt.map(|b| str::from_utf8_owned(b).unwrap()))
658659
.collect()),
659660
ErrorResponse { fields } => {
660-
if_ok!(self.wait_for_ready());
661+
try!(self.wait_for_ready());
661662
return Err(PgDbError(PostgresDbError::new(fields)));
662663
}
663664
_ => {}
@@ -762,7 +763,7 @@ impl PostgresConnection {
762763
pub fn try_transaction<'a>(&'a self)
763764
-> Result<PostgresTransaction<'a>, PostgresError> {
764765
check_desync!(self);
765-
if_ok!(self.quick_query("BEGIN"));
766+
try!(self.quick_query("BEGIN"));
766767
Ok(PostgresTransaction {
767768
conn: self,
768769
commit: Cell::new(true),
@@ -889,15 +890,15 @@ impl<'conn> PostgresTransaction<'conn> {
889890
fn finish_inner(&mut self) -> Result<(), PostgresError> {
890891
if task::failing() || !self.commit.get() {
891892
if self.nested {
892-
if_ok!(self.conn.quick_query("ROLLBACK TO sp"));
893+
try!(self.conn.quick_query("ROLLBACK TO sp"));
893894
} else {
894-
if_ok!(self.conn.quick_query("ROLLBACK"));
895+
try!(self.conn.quick_query("ROLLBACK"));
895896
}
896897
} else {
897898
if self.nested {
898-
if_ok!(self.conn.quick_query("RELEASE sp"));
899+
try!(self.conn.quick_query("RELEASE sp"));
899900
} else {
900-
if_ok!(self.conn.quick_query("COMMIT"));
901+
try!(self.conn.quick_query("COMMIT"));
901902
}
902903
}
903904
Ok(())
@@ -934,7 +935,7 @@ impl<'conn> PostgresTransaction<'conn> {
934935
pub fn try_transaction<'a>(&'a self)
935936
-> Result<PostgresTransaction<'a>, PostgresError> {
936937
check_desync!(self.conn);
937-
if_ok!(self.conn.quick_query("SAVEPOINT sp"));
938+
try!(self.conn.quick_query("SAVEPOINT sp"));
938939
Ok(PostgresTransaction {
939940
conn: self.conn,
940941
commit: Cell::new(true),

src/message.rs

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ trait WriteCStr {
125125

126126
impl<W: Writer> WriteCStr for W {
127127
fn write_cstr(&mut self, s: &str) -> IoResult<()> {
128-
if_ok!(self.write(s.as_bytes()));
128+
try!(self.write(s.as_bytes()));
129129
self.write_u8(0)
130130
}
131131
}
@@ -144,78 +144,78 @@ impl<W: Writer> WriteMessage for W {
144144
match *message {
145145
Bind { portal, statement, formats, values, result_formats } => {
146146
ident = Some('B');
147-
if_ok!(buf.write_cstr(portal));
148-
if_ok!(buf.write_cstr(statement));
147+
try!(buf.write_cstr(portal));
148+
try!(buf.write_cstr(statement));
149149

150-
if_ok!(buf.write_be_i16(formats.len() as i16));
150+
try!(buf.write_be_i16(formats.len() as i16));
151151
for format in formats.iter() {
152-
if_ok!(buf.write_be_i16(*format));
152+
try!(buf.write_be_i16(*format));
153153
}
154154

155-
if_ok!(buf.write_be_i16(values.len() as i16));
155+
try!(buf.write_be_i16(values.len() as i16));
156156
for value in values.iter() {
157157
match *value {
158158
None => {
159-
if_ok!(buf.write_be_i32(-1));
159+
try!(buf.write_be_i32(-1));
160160
}
161161
Some(ref value) => {
162-
if_ok!(buf.write_be_i32(value.len() as i32));
163-
if_ok!(buf.write(*value));
162+
try!(buf.write_be_i32(value.len() as i32));
163+
try!(buf.write(*value));
164164
}
165165
}
166166
}
167167

168-
if_ok!(buf.write_be_i16(result_formats.len() as i16));
168+
try!(buf.write_be_i16(result_formats.len() as i16));
169169
for format in result_formats.iter() {
170-
if_ok!(buf.write_be_i16(*format));
170+
try!(buf.write_be_i16(*format));
171171
}
172172
}
173173
CancelRequest { code, process_id, secret_key } => {
174-
if_ok!(buf.write_be_i32(code));
175-
if_ok!(buf.write_be_i32(process_id));
176-
if_ok!(buf.write_be_i32(secret_key));
174+
try!(buf.write_be_i32(code));
175+
try!(buf.write_be_i32(process_id));
176+
try!(buf.write_be_i32(secret_key));
177177
}
178178
Close { variant, name } => {
179179
ident = Some('C');
180-
if_ok!(buf.write_u8(variant));
181-
if_ok!(buf.write_cstr(name));
180+
try!(buf.write_u8(variant));
181+
try!(buf.write_cstr(name));
182182
}
183183
Describe { variant, name } => {
184184
ident = Some('D');
185-
if_ok!(buf.write_u8(variant));
186-
if_ok!(buf.write_cstr(name));
185+
try!(buf.write_u8(variant));
186+
try!(buf.write_cstr(name));
187187
}
188188
Execute { portal, max_rows } => {
189189
ident = Some('E');
190-
if_ok!(buf.write_cstr(portal));
191-
if_ok!(buf.write_be_i32(max_rows));
190+
try!(buf.write_cstr(portal));
191+
try!(buf.write_be_i32(max_rows));
192192
}
193193
Parse { name, query, param_types } => {
194194
ident = Some('P');
195-
if_ok!(buf.write_cstr(name));
196-
if_ok!(buf.write_cstr(query));
197-
if_ok!(buf.write_be_i16(param_types.len() as i16));
195+
try!(buf.write_cstr(name));
196+
try!(buf.write_cstr(query));
197+
try!(buf.write_be_i16(param_types.len() as i16));
198198
for ty in param_types.iter() {
199-
if_ok!(buf.write_be_i32(*ty));
199+
try!(buf.write_be_i32(*ty));
200200
}
201201
}
202202
PasswordMessage { password } => {
203203
ident = Some('p');
204-
if_ok!(buf.write_cstr(password));
204+
try!(buf.write_cstr(password));
205205
}
206206
Query { query } => {
207207
ident = Some('Q');
208-
if_ok!(buf.write_cstr(query));
208+
try!(buf.write_cstr(query));
209209
}
210210
StartupMessage { version, parameters } => {
211-
if_ok!(buf.write_be_i32(version));
211+
try!(buf.write_be_i32(version));
212212
for &(ref k, ref v) in parameters.iter() {
213-
if_ok!(buf.write_cstr(k.as_slice()));
214-
if_ok!(buf.write_cstr(v.as_slice()));
213+
try!(buf.write_cstr(k.as_slice()));
214+
try!(buf.write_cstr(v.as_slice()));
215215
}
216-
if_ok!(buf.write_u8(0));
216+
try!(buf.write_u8(0));
217217
}
218-
SslRequest { code } => if_ok!(buf.write_be_i32(code)),
218+
SslRequest { code } => try!(buf.write_be_i32(code)),
219219
Sync => {
220220
ident = Some('S');
221221
}
@@ -225,15 +225,15 @@ impl<W: Writer> WriteMessage for W {
225225
}
226226

227227
match ident {
228-
Some(ident) => if_ok!(self.write_u8(ident as u8)),
228+
Some(ident) => try!(self.write_u8(ident as u8)),
229229
None => ()
230230
}
231231

232232
let buf = buf.unwrap();
233233

234234
// add size of length value
235-
if_ok!(self.write_be_i32((buf.len() + mem::size_of::<i32>()) as i32));
236-
if_ok!(self.write(buf));
235+
try!(self.write_be_i32((buf.len() + mem::size_of::<i32>()) as i32));
236+
try!(self.write(buf));
237237

238238
Ok(())
239239
}
@@ -246,7 +246,7 @@ trait ReadCStr {
246246

247247
impl<R: Buffer> ReadCStr for R {
248248
fn read_cstr(&mut self) -> IoResult<~str> {
249-
let mut buf = if_ok!(self.read_until(0));
249+
let mut buf = try!(self.read_until(0));
250250
buf.pop();
251251
Ok(str::from_utf8_owned(buf).unwrap())
252252
}
@@ -261,39 +261,39 @@ impl<R: Reader> ReadMessage for R {
261261
fn read_message(&mut self) -> IoResult<BackendMessage> {
262262
debug!("Reading message");
263263

264-
let ident = if_ok!(self.read_u8());
264+
let ident = try!(self.read_u8());
265265
// subtract size of length value
266-
let len = if_ok!(self.read_be_i32()) as uint - mem::size_of::<i32>();
267-
let mut buf = MemReader::new(if_ok!(self.read_bytes(len)));
266+
let len = try!(self.read_be_i32()) as uint - mem::size_of::<i32>();
267+
let mut buf = MemReader::new(try!(self.read_bytes(len)));
268268

269269
let ret = match ident as char {
270270
'1' => ParseComplete,
271271
'2' => BindComplete,
272272
'3' => CloseComplete,
273273
'A' => NotificationResponse {
274-
pid: if_ok!(buf.read_be_i32()),
275-
channel: if_ok!(buf.read_cstr()),
276-
payload: if_ok!(buf.read_cstr())
274+
pid: try!(buf.read_be_i32()),
275+
channel: try!(buf.read_cstr()),
276+
payload: try!(buf.read_cstr())
277277
},
278-
'C' => CommandComplete { tag: if_ok!(buf.read_cstr()) },
279-
'D' => if_ok!(read_data_row(&mut buf)),
280-
'E' => ErrorResponse { fields: if_ok!(read_fields(&mut buf)) },
278+
'C' => CommandComplete { tag: try!(buf.read_cstr()) },
279+
'D' => try!(read_data_row(&mut buf)),
280+
'E' => ErrorResponse { fields: try!(read_fields(&mut buf)) },
281281
'I' => EmptyQueryResponse,
282282
'K' => BackendKeyData {
283-
process_id: if_ok!(buf.read_be_i32()),
284-
secret_key: if_ok!(buf.read_be_i32())
283+
process_id: try!(buf.read_be_i32()),
284+
secret_key: try!(buf.read_be_i32())
285285
},
286286
'n' => NoData,
287-
'N' => NoticeResponse { fields: if_ok!(read_fields(&mut buf)) },
288-
'R' => if_ok!(read_auth_message(&mut buf)),
287+
'N' => NoticeResponse { fields: try!(read_fields(&mut buf)) },
288+
'R' => try!(read_auth_message(&mut buf)),
289289
's' => PortalSuspended,
290290
'S' => ParameterStatus {
291-
parameter: if_ok!(buf.read_cstr()),
292-
value: if_ok!(buf.read_cstr())
291+
parameter: try!(buf.read_cstr()),
292+
value: try!(buf.read_cstr())
293293
},
294-
't' => if_ok!(read_parameter_description(&mut buf)),
295-
'T' => if_ok!(read_row_description(&mut buf)),
296-
'Z' => ReadyForQuery { state: if_ok!(buf.read_u8()) },
294+
't' => try!(read_parameter_description(&mut buf)),
295+
'T' => try!(read_row_description(&mut buf)),
296+
'Z' => ReadyForQuery { state: try!(buf.read_u8()) },
297297
ident => fail!("Unknown message identifier `{}`", ident)
298298
};
299299
debug!("Read message {:?}", ret);
@@ -304,25 +304,25 @@ impl<R: Reader> ReadMessage for R {
304304
fn read_fields(buf: &mut MemReader) -> IoResult<~[(u8, ~str)]> {
305305
let mut fields = ~[];
306306
loop {
307-
let ty = if_ok!(buf.read_u8());
307+
let ty = try!(buf.read_u8());
308308
if ty == 0 {
309309
break;
310310
}
311311

312-
fields.push((ty, if_ok!(buf.read_cstr())));
312+
fields.push((ty, try!(buf.read_cstr())));
313313
}
314314

315315
Ok(fields)
316316
}
317317

318318
fn read_data_row(buf: &mut MemReader) -> IoResult<BackendMessage> {
319-
let len = if_ok!(buf.read_be_i16()) as uint;
319+
let len = try!(buf.read_be_i16()) as uint;
320320
let mut values = vec::with_capacity(len);
321321

322322
for _ in range(0, len) {
323-
let val = match if_ok!(buf.read_be_i32()) {
323+
let val = match try!(buf.read_be_i32()) {
324324
-1 => None,
325-
len => Some(if_ok!(buf.read_bytes(len as uint)))
325+
len => Some(try!(buf.read_bytes(len as uint)))
326326
};
327327
values.push(val);
328328
}
@@ -331,11 +331,11 @@ fn read_data_row(buf: &mut MemReader) -> IoResult<BackendMessage> {
331331
}
332332

333333
fn read_auth_message(buf: &mut MemReader) -> IoResult<BackendMessage> {
334-
Ok(match if_ok!(buf.read_be_i32()) {
334+
Ok(match try!(buf.read_be_i32()) {
335335
0 => AuthenticationOk,
336336
2 => AuthenticationKerberosV5,
337337
3 => AuthenticationCleartextPassword,
338-
5 => AuthenticationMD5Password { salt: if_ok!(buf.read_bytes(4)) },
338+
5 => AuthenticationMD5Password { salt: try!(buf.read_bytes(4)) },
339339
6 => AuthenticationSCMCredential,
340340
7 => AuthenticationGSS,
341341
9 => AuthenticationSSPI,
@@ -344,29 +344,29 @@ fn read_auth_message(buf: &mut MemReader) -> IoResult<BackendMessage> {
344344
}
345345

346346
fn read_parameter_description(buf: &mut MemReader) -> IoResult<BackendMessage> {
347-
let len = if_ok!(buf.read_be_i16()) as uint;
347+
let len = try!(buf.read_be_i16()) as uint;
348348
let mut types = vec::with_capacity(len);
349349

350350
for _ in range(0, len) {
351-
types.push(if_ok!(buf.read_be_u32()));
351+
types.push(try!(buf.read_be_u32()));
352352
}
353353

354354
Ok(ParameterDescription { types: types })
355355
}
356356

357357
fn read_row_description(buf: &mut MemReader) -> IoResult<BackendMessage> {
358-
let len = if_ok!(buf.read_be_i16()) as uint;
358+
let len = try!(buf.read_be_i16()) as uint;
359359
let mut types = vec::with_capacity(len);
360360

361361
for _ in range(0, len) {
362362
types.push(RowDescriptionEntry {
363-
name: if_ok!(buf.read_cstr()),
364-
table_oid: if_ok!(buf.read_be_u32()),
365-
column_id: if_ok!(buf.read_be_i16()),
366-
type_oid: if_ok!(buf.read_be_u32()),
367-
type_size: if_ok!(buf.read_be_i16()),
368-
type_modifier: if_ok!(buf.read_be_i32()),
369-
format: if_ok!(buf.read_be_i16())
363+
name: try!(buf.read_cstr()),
364+
table_oid: try!(buf.read_be_u32()),
365+
column_id: try!(buf.read_be_i16()),
366+
type_oid: try!(buf.read_be_u32()),
367+
type_size: try!(buf.read_be_i16()),
368+
type_modifier: try!(buf.read_be_i32()),
369+
format: try!(buf.read_be_i16())
370370
});
371371
}
372372

0 commit comments

Comments
 (0)