Loading mysql-test/r/sp.result +24 −0 Original line number Diff line number Diff line Loading @@ -4046,4 +4046,28 @@ boo 2 drop procedure bug14643_1| drop procedure bug14643_2| drop procedure if exists bug14304| drop table if exists t3, t4| create table t3(a int primary key auto_increment)| create table t4(a int primary key auto_increment)| create procedure bug14304() begin insert into t3 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 select null as a; insert into t3 set a=null; insert into t3 set a=null; select * from t3; end| call bug14304()| a 1 2 3 drop procedure bug14304| drop table t3, t4| drop table t1,t2; mysql-test/t/sp.test +31 −0 Original line number Diff line number Diff line Loading @@ -4823,6 +4823,37 @@ call bug14643_2()| drop procedure bug14643_1| drop procedure bug14643_2| # # BUG#14304: auto_increment field incorrect set in SP # --disable_warnings drop procedure if exists bug14304| drop table if exists t3, t4| --enable_warnings create table t3(a int primary key auto_increment)| create table t4(a int primary key auto_increment)| create procedure bug14304() begin insert into t3 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 select null as a; insert into t3 set a=null; insert into t3 set a=null; select * from t3; end| call bug14304()| drop procedure bug14304| drop table t3, t4| # # BUG#NNNN: New bug synopsis Loading sql/sp_head.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1069,7 +1069,7 @@ int sp_head::execute(THD *thd) } /* we should cleanup free_list and memroot, used by instruction */ thd->free_items(); thd->cleanup_after_query(); free_root(&execute_mem_root, MYF(0)); /* Loading sql/sql_class.cc +2 −0 Original line number Diff line number Diff line Loading @@ -1949,6 +1949,7 @@ void THD::reset_sub_statement_state(Sub_statement_state *backup, backup->last_insert_id= last_insert_id; backup->next_insert_id= next_insert_id; backup->insert_id_used= insert_id_used; backup->clear_next_insert_id= clear_next_insert_id; backup->limit_found_rows= limit_found_rows; backup->examined_row_count= examined_row_count; backup->sent_row_count= sent_row_count; Loading Loading @@ -2000,6 +2001,7 @@ void THD::restore_sub_statement_state(Sub_statement_state *backup) last_insert_id= backup->last_insert_id; next_insert_id= backup->next_insert_id; insert_id_used= backup->insert_id_used; clear_next_insert_id= backup->clear_next_insert_id; limit_found_rows= backup->limit_found_rows; sent_row_count= backup->sent_row_count; client_capabilities= backup->client_capabilities; Loading sql/sql_class.h +1 −1 Original line number Diff line number Diff line Loading @@ -1090,7 +1090,7 @@ class Sub_statement_state ha_rows cuted_fields, sent_row_count, examined_row_count; ulong client_capabilities; uint in_sub_stmt; bool enable_slow_log, insert_id_used; bool enable_slow_log, insert_id_used, clear_next_insert_id; my_bool no_send_ok; SAVEPOINT *savepoints; }; Loading Loading
mysql-test/r/sp.result +24 −0 Original line number Diff line number Diff line Loading @@ -4046,4 +4046,28 @@ boo 2 drop procedure bug14643_1| drop procedure bug14643_2| drop procedure if exists bug14304| drop table if exists t3, t4| create table t3(a int primary key auto_increment)| create table t4(a int primary key auto_increment)| create procedure bug14304() begin insert into t3 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 select null as a; insert into t3 set a=null; insert into t3 set a=null; select * from t3; end| call bug14304()| a 1 2 3 drop procedure bug14304| drop table t3, t4| drop table t1,t2;
mysql-test/t/sp.test +31 −0 Original line number Diff line number Diff line Loading @@ -4823,6 +4823,37 @@ call bug14643_2()| drop procedure bug14643_1| drop procedure bug14643_2| # # BUG#14304: auto_increment field incorrect set in SP # --disable_warnings drop procedure if exists bug14304| drop table if exists t3, t4| --enable_warnings create table t3(a int primary key auto_increment)| create table t4(a int primary key auto_increment)| create procedure bug14304() begin insert into t3 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 set a=null; insert into t4 select null as a; insert into t3 set a=null; insert into t3 set a=null; select * from t3; end| call bug14304()| drop procedure bug14304| drop table t3, t4| # # BUG#NNNN: New bug synopsis Loading
sql/sp_head.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1069,7 +1069,7 @@ int sp_head::execute(THD *thd) } /* we should cleanup free_list and memroot, used by instruction */ thd->free_items(); thd->cleanup_after_query(); free_root(&execute_mem_root, MYF(0)); /* Loading
sql/sql_class.cc +2 −0 Original line number Diff line number Diff line Loading @@ -1949,6 +1949,7 @@ void THD::reset_sub_statement_state(Sub_statement_state *backup, backup->last_insert_id= last_insert_id; backup->next_insert_id= next_insert_id; backup->insert_id_used= insert_id_used; backup->clear_next_insert_id= clear_next_insert_id; backup->limit_found_rows= limit_found_rows; backup->examined_row_count= examined_row_count; backup->sent_row_count= sent_row_count; Loading Loading @@ -2000,6 +2001,7 @@ void THD::restore_sub_statement_state(Sub_statement_state *backup) last_insert_id= backup->last_insert_id; next_insert_id= backup->next_insert_id; insert_id_used= backup->insert_id_used; clear_next_insert_id= backup->clear_next_insert_id; limit_found_rows= backup->limit_found_rows; sent_row_count= backup->sent_row_count; client_capabilities= backup->client_capabilities; Loading
sql/sql_class.h +1 −1 Original line number Diff line number Diff line Loading @@ -1090,7 +1090,7 @@ class Sub_statement_state ha_rows cuted_fields, sent_row_count, examined_row_count; ulong client_capabilities; uint in_sub_stmt; bool enable_slow_log, insert_id_used; bool enable_slow_log, insert_id_used, clear_next_insert_id; my_bool no_send_ok; SAVEPOINT *savepoints; }; Loading