Commit 12c6eb3b authored by unknown's avatar unknown
Browse files

post merge fixes


sql/sql_parse.cc:
  Auto merged
parents 50985b67 39c32324
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1105,3 +1105,4 @@ vio/test-ssl
vio/test-sslclient
vio/test-sslserver
vio/viotest-ssl
acinclude.m4
+24 −0
Original line number Diff line number Diff line
@@ -2697,6 +2697,30 @@ call bug7992()|
call bug7992()|
drop procedure bug7992|
drop table t3|
drop table t2;
drop table t1;
drop procedure if exists sp1;
create table t1 (a int) engine=innodb|
create procedure sp1 ()
begin
truncate table t1; insert t1 values (1); rollback;
end
|
set autocommit=0;
insert t1 values (2);
call sp1();
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
commit;
set autocommit=1;
select * from t1;
a
2
call sp1();
select * from t1;
a
1
drop table t1;
drop procedure sp1;
create table t3 (
lpitnumber int(11) default null,
lrecordtype int(11) default null
+28 −0
Original line number Diff line number Diff line
@@ -3276,7 +3276,35 @@ call bug7992()|
call bug7992()|
drop procedure bug7992|
drop table t3|
delimiter ;|
drop table t2;
drop table t1;

#
# BUG#8850
#
--disable_warnings
drop procedure if exists sp1;
--enable_warnings
delimiter |;
create table t1 (a int) engine=innodb|
create procedure sp1 ()
begin
  truncate table t1; insert t1 values (1); rollback;
end
|
delimiter ;|
set autocommit=0;
insert t1 values (2);
--error 1192
call sp1();
commit;
set autocommit=1;
select * from t1;
call sp1();
select * from t1;
drop table t1;
drop procedure sp1;

#
# BUG#8849: problem with insert statement with table alias's
+2 −1
Original line number Diff line number Diff line
@@ -749,11 +749,12 @@ bool mysql_truncate(THD *thd, TABLE_LIST *table_list, bool dont_send_ok)
               table_list->db, table_list->table_name);
      DBUG_RETURN(TRUE);
    }
    if (!ha_supports_generate(table_type))
    if (!ha_supports_generate(table_type) || thd->lex->sphead)
    {
      /* Probably InnoDB table */
      table_list->lock_type= TL_WRITE;
      ha_enable_transaction(thd, FALSE);
      mysql_init_select(thd->lex);
      error= mysql_delete(thd, table_list, (COND*) 0, (SQL_LIST*) 0,
			  HA_POS_ERROR, 0);
      ha_enable_transaction(thd, TRUE);
+1 −1
Original line number Diff line number Diff line
@@ -3191,7 +3191,7 @@ mysql_execute_command(THD *thd)
      Don't allow this within a transaction because we want to use
      re-generate table
    */
    if (thd->locked_tables || thd->active_transaction())
    if ((thd->locked_tables && !lex->sphead) || thd->active_transaction())
    {
      my_message(ER_LOCK_OR_ACTIVE_TRANSACTION,
                 ER(ER_LOCK_OR_ACTIVE_TRANSACTION), MYF(0));