| Bug #12480 | NOW() is not constant in a trigger | ||
|---|---|---|---|
| Submitted: | 10 Aug 2005 8:09 | Modified: | 18 Aug 2005 22:49 |
| Reporter: | Michael Widenius | ||
| Status: | Closed | ||
| Category: | Server | Severity: | S1 (Critical) |
| Version: | 5.0 | OS: | |
| Assigned to: | Michael Widenius | Target Version: | |
[10 Aug 2005 8:09]
Michael Widenius
[12 Aug 2005 19:16]
Jim Winstead
here's a test case that uses the new sleep() function.
create table t1 (a timestamp default '2005-05-05 01:01:01',
b timestamp default '2005-05-05 01:01:01');
delimiter //;
create function t_slow_now() returns timestamp
begin
do sleep(2);
return now();
end;
//
insert into t1 set a = now(), b = t_slow_now();//
create trigger t_before before insert on t1
for each row begin
set new.b = t_slow_now();
end
//
delimiter ;//
insert into t1 set a = now();
select * from t1;
drop trigger t_before;
drop function t_slow_now;
drop table t1;
[15 Aug 2005 19:32]
Michael Widenius
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.
If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information
about accessing the source trees is available at
http://www.mysql.com/doc/en/Installing_source_tree.html
Additional info:
Fix will be in 5.0.12
[18 Aug 2005 1:28]
Jim Winstead
This change was made in 5.0.12.
[18 Aug 2005 22:49]
Mike Hillyer
Documented in 5.0.12 changelog: <listitem><para><literal>NOW()</literal>, <literal>CURRENT_TIME</literal> and values generated by timestamp columns are now constant for the duration of a stored function or trigger. This prevents the breaking of statements-based replication. (Bug #12480, Bug #12481)</para></listitem>
[11 Jan 13:18]
Bugs System
Pushed into 6.0.5-alpha
[11 Jan 13:21]
Bugs System
Pushed into 5.1.23-rc
[11 Jan 13:22]
Bugs System
Pushed into 5.0.56
