mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
MDEV-20403 Assertion 0' or Assertion btr_validate_index(index, 0)' failed in row_upd_sec_index_entry or error code 126: Index is corrupted upon UPDATE with TIMESTAMP..ON UPDATE
remove a special treatment of a bare DEFAULT keyword that made it
behave inconsistently and differently from DEFAULT(column).
Now all forms of the explicit assignment of a default column value
behave identically, and all count as an explicitly assigned value
(for the purpose of ON UPDATE NOW).
followup for c7c481f4d9
This commit is contained in:
@@ -24,14 +24,14 @@ source 'include/function_defaults.inc';
|
||||
# MDEV-20403 Assertion `0' or Assertion `btr_validate_index(index, 0)' failed in row_upd_sec_index_entry or error code 126: Index is corrupted upon UPDATE with TIMESTAMP..ON UPDATE
|
||||
#
|
||||
|
||||
# ON UPDATE DEFAULT NOW and indexed virtual columns
|
||||
# ON UPDATE NOW and indexed virtual columns
|
||||
create table t1 (t timestamp, i int, v timestamp as (t) virtual, key(v));
|
||||
insert t1 (t,i) values ('2006-03-01 23:59:59',1);
|
||||
update t1 set i = 2;
|
||||
check table t1;
|
||||
drop table t1;
|
||||
|
||||
# ON UPDATE DEFAULT NOW and triggers
|
||||
# ON UPDATE NOW and triggers
|
||||
create table t1 (t timestamp, i int);
|
||||
create trigger tr1 before update on t1 for each row set @new:=new.t;
|
||||
insert t1 (t,i) values ('2006-03-01 23:59:59', 1);
|
||||
@@ -46,3 +46,24 @@ insert t1 (i) values (1);
|
||||
update t1, t1 as t2 set t1.i = 2;
|
||||
select if(@new = j, 'correct', 'wrong') from t1;
|
||||
drop table t1;
|
||||
|
||||
# SET xxx=DEFAULT
|
||||
create table t1 (a int, b varchar(20) default 'foo');
|
||||
insert t1 values (1,'bla'),(2, 'bar');
|
||||
select * from t1;
|
||||
update t1 set b=default where a=1;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
# ON UPDATE NOW and SET xxx=DEFAULT
|
||||
create table t1 (
|
||||
a int,
|
||||
b timestamp default '2010-10-10 10:10:10' on update now(),
|
||||
c varchar(100) default 'x');
|
||||
insert t1 (a) values (1),(2);
|
||||
select * from t1;
|
||||
set timestamp=unix_timestamp('2011-11-11 11-11-11');
|
||||
update t1 set b=default, c=default(b) where a=1;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
set timestamp=default;
|
||||
|
||||
Reference in New Issue
Block a user