1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

MDEV-33790 Incorrect DEFAULT expression evaluated in UPDATE

The problem was that Item_default_value::associate_with_target_field
assigned passed as argument field as an argument which changed argument
in case of default() call with certain field (i.e. deault(field)).

There is no way to get wrong field in constructor so we will not reassign
parameter.
This commit is contained in:
Oleksandr Byelkin
2024-04-23 11:37:11 +02:00
parent 77d5104fee
commit 62287320d4
3 changed files with 55 additions and 3 deletions

View File

@ -67,3 +67,26 @@ update t1 set b=default, c=default(b) where a=1;
select * from t1;
drop table t1;
set timestamp=default;
--echo #
--echo # MDEV-33790: Incorrect DEFAULT expression evaluated in UPDATE
--echo #
create table t1 (
a int,
b timestamp default '2010-10-10 10:10:10' on update now(),
c varchar(100) default 'x');
create table t2 (a int primary key);
insert t1 (a) values (1),(2);
insert t2 (a) values (1),(2);
select * from t1;
set timestamp=unix_timestamp('2011-11-11 11-11-11');
update t1,t2 set b=default, c=default(b) where t1.a=1 and t1.a= t2.a;
select * from t1;
drop table t1, t2;
set timestamp=default;
--echo #
--echo # End of 10.4 tests
--echo #