mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
Bug#8057
Fix crash with LAST_INSERT_ID() in UPDATE, Tests included, mysql-test/r/update.result: Bug#8057 Test for bug mysql-test/t/update.test: Bug#8057 Test for bug sql/item_func.cc: Bug#8057 Don't create new Item in val_int()
This commit is contained in:
parent
bcb31692fc
commit
3c925ee0f1
3 changed files with 18 additions and 6 deletions
|
@ -212,3 +212,10 @@ insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
|
|||
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
|
||||
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
|
||||
drop table t1, t2;
|
||||
create table t1 (id int not null auto_increment primary key, id_str varchar(32));
|
||||
insert into t1 (id_str) values ("test");
|
||||
update t1 set id_str = concat(id_str, id) where id = last_insert_id();
|
||||
select * from t1;
|
||||
id id_str
|
||||
1 test1
|
||||
drop table t1;
|
||||
|
|
|
@ -170,3 +170,12 @@ insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
|
|||
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
|
||||
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Bug #8057
|
||||
#
|
||||
create table t1 (id int not null auto_increment primary key, id_str varchar(32));
|
||||
insert into t1 (id_str) values ("test");
|
||||
update t1 set id_str = concat(id_str, id) where id = last_insert_id();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
|
|
@ -2284,14 +2284,10 @@ longlong Item_func_last_insert_id::val_int()
|
|||
longlong value=args[0]->val_int();
|
||||
current_thd->insert_id(value);
|
||||
null_value=args[0]->null_value;
|
||||
return value;
|
||||
}
|
||||
else
|
||||
{
|
||||
Item *it= get_system_var(current_thd, OPT_SESSION, "last_insert_id", 14,
|
||||
"last_insert_id()");
|
||||
return it->val_int();
|
||||
}
|
||||
current_thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
|
||||
return current_thd->insert_id();
|
||||
}
|
||||
|
||||
/* This function is just used to test speed of different functions */
|
||||
|
|
Loading…
Add table
Reference in a new issue