mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-3929 Add system variable explicit_defaults_for_timestamp for compatibility with MySQL
This commit is contained in:
@@ -1166,7 +1166,7 @@ create table t2 as select concat(a) from t1;
|
||||
show create table t2;
|
||||
drop table t1, t2;
|
||||
|
||||
create table t1 (a timestamp);
|
||||
create table t1 (a timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
|
||||
insert into t1 values (0);
|
||||
insert into t1 values (20010203040506);
|
||||
insert into t1 values (19800203040506);
|
||||
@@ -1478,7 +1478,7 @@ select hex(a) from v1;
|
||||
drop table t1;
|
||||
drop view v1;
|
||||
|
||||
create table t1 (a timestamp);
|
||||
create table t1 (a timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
|
||||
insert into t1 values (0);
|
||||
insert into t1 values (20010203040506);
|
||||
insert into t1 values (19800203040506);
|
||||
|
@@ -500,7 +500,7 @@ drop table t1;
|
||||
# Test of opening table twice and timestamps
|
||||
#
|
||||
set @a:=now();
|
||||
eval CREATE TABLE t1 (a int not null, b timestamp not null, primary key (a)) engine=$engine_type;
|
||||
eval CREATE TABLE t1 (a int not null, b timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, primary key (a)) engine=$engine_type;
|
||||
insert into t1 (a) values(1),(2),(3);
|
||||
select t1.a from t1 natural join t1 as t2 where t1.b >= @a order by t1.a;
|
||||
select a from t1 natural join t1 as t2 where b >= @a order by a;
|
||||
@@ -727,9 +727,9 @@ eval CREATE TABLE t1 (
|
||||
cname char(15) NOT NULL default '',
|
||||
carrier_id smallint(6) NOT NULL default '0',
|
||||
privacy tinyint(4) NOT NULL default '0',
|
||||
last_mod_date timestamp NOT NULL,
|
||||
last_mod_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
last_mod_id smallint(6) NOT NULL default '0',
|
||||
last_app_date timestamp NOT NULL,
|
||||
last_app_date timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
last_app_id smallint(6) default '-1',
|
||||
version smallint(6) NOT NULL default '0',
|
||||
assigned_scps int(11) default '0',
|
||||
@@ -746,9 +746,9 @@ eval CREATE TABLE t2 (
|
||||
cname char(15) NOT NULL default '',
|
||||
carrier_id smallint(6) NOT NULL default '0',
|
||||
privacy tinyint(4) NOT NULL default '0',
|
||||
last_mod_date timestamp NOT NULL,
|
||||
last_mod_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
last_mod_id smallint(6) NOT NULL default '0',
|
||||
last_app_date timestamp NOT NULL,
|
||||
last_app_date timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
last_app_id smallint(6) default '-1',
|
||||
version smallint(6) NOT NULL default '0',
|
||||
assigned_scps int(11) default '0',
|
||||
|
@@ -165,6 +165,9 @@ INSERT INTO global_suppressions VALUES
|
||||
|
||||
("The slave I.O thread stops because a fatal error is encountered when it try to get the value of SERVER_ID variable from master."),
|
||||
|
||||
/*It will print a warning if server is run without --explicit_defaults_for_timestamp.*/
|
||||
("TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details)*"),
|
||||
|
||||
/* Added 2009-08-XX after fixing Bug #42408 */
|
||||
|
||||
("Although a path was specified for the .* option, log tables are used"),
|
||||
|
@@ -33,7 +33,8 @@ eval create table t9
|
||||
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
|
||||
c5 integer, c6 bigint, c7 float, c8 double,
|
||||
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
|
||||
c13 date, c14 datetime, c15 timestamp, c16 time,
|
||||
c13 date, c14 datetime, c15 timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
ON UPDATE CURRENT_TIMESTAMP, c16 time,
|
||||
c17 year, c18 tinyint, c19 bool, c20 char,
|
||||
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
|
||||
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
|
||||
|
@@ -25,7 +25,12 @@ alter table t1 engine=innodb;
|
||||
select * from t1 order by a;
|
||||
select * from t1 order by a+0;
|
||||
drop table t1;
|
||||
eval create table t1 (a $type(4)) engine=innodb;
|
||||
let attr=;
|
||||
if ($type == timestamp)
|
||||
{
|
||||
let attr=NOT NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4);
|
||||
}
|
||||
eval create table t1 (a $type(4)$attr) engine=innodb;
|
||||
insert t1 values ('2010-12-11 01:02:03.456789');
|
||||
select * from t1;
|
||||
select extract(microsecond from a + interval 100 microsecond) from t1 where a>'2010-11-12 01:02:03.456';
|
||||
@@ -93,7 +98,12 @@ drop table t1, t2;
|
||||
#
|
||||
# SP
|
||||
#
|
||||
eval create table t1 (a $type(6), b $type(6));
|
||||
let attr=;
|
||||
if ($type == timestamp)
|
||||
{
|
||||
let attr=NOT NULL DEFAULT '0000-00-00 00:00:00.000000';
|
||||
}
|
||||
eval create table t1 (a $type(6)$attr, b $type(6)$attr);
|
||||
eval create procedure foo(x $type, y $type(4)) insert into t1 values (x, y);
|
||||
call foo('2010-02-03 4:5:6.789123', '2010-02-03 4:5:6.789123');
|
||||
select * from t1;
|
||||
|
Reference in New Issue
Block a user