title: issue with SavePoint in mysql
body: <p>I am trying to use the savepoints in MySQL and it seems that something is going wrong.</p>
  
  <p><a href="https://stackoverflow.com/questions/4547592/mysql-transaction-conundrum/4547678#4547678">MySQL transaction conundrum</a></p>
  
  <p>I get an error as shown below:</p>
  
  <blockquote>
    <p>ERROR 1305 (42000): SAVEPOINT
    sp_prc_work does not exist</p>
  </blockquote>
  
  <p>My procedures with or without savepoints works exactly the same. What I expected was that the value '4', 'pqr' should not appear in the table since 
  the entire transaction will be rolled back. But both, 3 and 4 ID's are inserted. I understand why does the entry '3', 'pqr' is there, but I guess the id '4' should not be there.</p>
  
  <pre><code>drop table if exists test.savepoint_test;
  drop procedure if exists second_fail;
  drop procedure if exists prc_work;
  
  CREATE TABLE test.savepoint_test (
  id int not null default '0',
  name varchar(100),
  primary key (id)
  )engine=InnoDB;
  
  insert into test.savepoint_test values ('1', 'abc');
  insert into test.savepoint_test values ('2', 'xyz');
  
  select * from test.savepoint_test;
  
  delimiter $$
  
  CREATE PROCEDURE second_fail()
  BEGIN
          INSERT  into test.savepoint_test values ('3', 'pqr');
          INSERT  into test.savepoint_test values ('2', 'mnp');
  END;
  
  $$
  
  CREATE PROCEDURE prc_work()
  BEGIN
          DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK TO sp_prc_work;
          SAVEPOINT sp_prc_work;
          INSERT  into test.savepoint_test values ('4', 'pqr');
          INSERT  into test.savepoint_test values ('2', 'mnp');
  END;
  
  $$
  
  delimiter ;
  
  
  call second_fail();
  
  select * from test.savepoint_test;
  
  call prc_work();
  
  select * from test.savepoint_test;
  </code></pre>