@@ -254,24 +254,22 @@ impl PostgresConnection {
254254 query: query,
255255 param_types: types
256256 });
257+ self.write_message(&Describe { variant: 'S' as u8, name: stmt_name });
257258 self.write_message(&Sync);
258259
259- match self.read_message() {
260+ match_read_message!(self, {
260261 ParseComplete => (),
261- ErrorResponse { fields } =>
262- return Err(PostgresDbError::new(fields)),
262+ ErrorResponse { fields } => {
263+ self.wait_for_ready();
264+ return Err(PostgresDbError::new(fields));
265+ },
263266 resp => fail!(" Bad response: %?", resp.to_str())
264- }
265-
266- self.wait_for_ready();
267-
268- self.write_message(&Describe { variant: 'S' as u8, name: stmt_name });
269- self.write_message(&Sync);
267+ })
270268
271- let num_params = match self.read_message() {
272- ParameterDescription { types } => types.len (),
269+ match_read_message!(self, {
270+ ParameterDescription {_ } => (),
273271 resp => fail!(" Bad response: %?", resp.to_str())
274- };
272+ })
275273
276274 match_read_message!(self, {
277275 RowDescription {_} | NoData => (),
@@ -283,7 +281,6 @@ impl PostgresConnection {
283281 Ok(PostgresStatement {
284282 conn: self,
285283 name: stmt_name,
286- num_params: num_params,
287284 next_portal_id: Cell::new(0)
288285 })
289286 }
@@ -366,7 +363,6 @@ impl<'self> PostgresTransaction<'self> {
366363pub struct PostgresStatement<'self> {
367364 priv conn: &'self PostgresConnection,
368365 priv name: ~str,
369- priv num_params: uint,
370366 priv next_portal_id: Cell<uint>
371367}
372368
@@ -390,17 +386,8 @@ impl<'self> Drop for PostgresStatement<'self> {
390386}
391387
392388impl<'self> PostgresStatement<'self> {
393- pub fn num_params(&self) -> uint {
394- self.num_params
395- }
396-
397389 fn execute(&self, portal_name: &str, params: &[&ToSql])
398390 -> Option<PostgresDbError> {
399- if self.num_params != params.len() {
400- fail!(" Expected %u params but got %u", self.num_params,
401- params.len());
402- }
403-
404391 let formats = [];
405392 let values: ~[Option<~[u8]>] = params.iter().map(|val| val.to_sql())
406393 .collect();
0 commit comments