mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/dlenev/src/mysql-4.1-bg11060
This commit is contained in:
commit
b5b3b32d0a
3 changed files with 30 additions and 1 deletions
|
@ -557,3 +557,9 @@ id
|
|||
3
|
||||
deallocate prepare stmt;
|
||||
drop table t1, t2;
|
||||
create table t1 (id int);
|
||||
prepare stmt from "insert into t1 (id) select id from t1 union select id from t1";
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
deallocate prepare stmt;
|
||||
drop table t1;
|
||||
|
|
|
@ -569,3 +569,15 @@ select t2.id from t2, t1 where (t1.id=1 and t2.t1_id=t1.id);
|
|||
|
||||
deallocate prepare stmt;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Bug#11060 "Server crashes on calling stored procedure with INSERT SELECT
|
||||
# UNION SELECT" aka "Server crashes on re-execution of prepared INSERT ...
|
||||
# SELECT with UNION".
|
||||
#
|
||||
create table t1 (id int);
|
||||
prepare stmt from "insert into t1 (id) select id from t1 union select id from t1";
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
deallocate prepare stmt;
|
||||
drop table t1;
|
||||
|
|
|
@ -1578,10 +1578,21 @@ bool delayed_insert::handle_inserts(void)
|
|||
int
|
||||
select_insert::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
|
||||
{
|
||||
int res;
|
||||
LEX *lex= thd->lex;
|
||||
SELECT_LEX *lex_current_select_save= lex->current_select;
|
||||
DBUG_ENTER("select_insert::prepare");
|
||||
|
||||
unit= u;
|
||||
if (check_insert_fields(thd, table, *fields, values))
|
||||
/*
|
||||
Since table in which we are going to insert is added to the first
|
||||
select, LEX::current_select should point to the first select while
|
||||
we are fixing fields from insert list.
|
||||
*/
|
||||
lex->current_select= &lex->select_lex;
|
||||
res= check_insert_fields(thd, table, *fields, values);
|
||||
lex->current_select= lex_current_select_save;
|
||||
if (res)
|
||||
DBUG_RETURN(1);
|
||||
|
||||
restore_record(table,default_values); // Get empty record
|
||||
|
|
Loading…
Reference in a new issue