Commit 855aa42f authored by unknown's avatar unknown

Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0

into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-ndb


sql/sql_parse.cc:
  Auto merged
parents 2a62cc64 43b718bc
......@@ -1105,3 +1105,4 @@ vio/test-ssl
vio/test-sslclient
vio/test-sslserver
vio/viotest-ssl
acinclude.m4
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<!--
This is a dummy changelog file. Don't use it yet.
It merges upward without conflict.
-->
<appendix id="news-5.0-x">
<title>
Changes in release 5.0.x
</title>
<para>
This is a dummy changelog file. Don't use it yet.
</para>
</appendix>
......@@ -2756,3 +2756,25 @@ a
drop procedure bug8937|
delete from t1|
drop table t1,t2;
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;
......@@ -3276,7 +3276,7 @@ call bug7992()|
call bug7992()|
drop procedure bug7992|
drop table t3|
delimiter ;|
#
# BUG#8849: problem with insert statement with table alias's
......@@ -3284,6 +3284,7 @@ drop table t3|
# Rolling back changes to AND/OR structure of ON and WHERE clauses in SP
#
delimiter |;
create table t3 (
lpitnumber int(11) default null,
lrecordtype int(11) default null
......@@ -3359,3 +3360,29 @@ delete from t1|
# practical, or create table t3, t3 etc temporarily (and drop them).
delimiter ;|
drop table t1,t2;
#
# 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;
......@@ -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);
......
......@@ -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));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment