mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-16542 Fix ALTER TABLE FORCE to upgrade temporal types
This commit is contained in:
416
mysql-test/main/type_temporal_mysql56_debug.result
Normal file
416
mysql-test/main/type_temporal_mysql56_debug.result
Normal file
@ -0,0 +1,416 @@
|
|||||||
|
#
|
||||||
|
# Start of 10.4 tests
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# MDEV-16542 Fix ALTER TABLE FORCE to upgrade temporal types
|
||||||
|
#
|
||||||
|
CREATE PROCEDURE mdev16542_create_select()
|
||||||
|
BEGIN
|
||||||
|
SELECT '# CREATE..SELECT and SHOW' AS ``;
|
||||||
|
CREATE TABLE t2 AS SELECT
|
||||||
|
a0, a1, a2, a3, a4, a5, a6,
|
||||||
|
COALESCE(a0),
|
||||||
|
COALESCE(a1),
|
||||||
|
COALESCE(a2),
|
||||||
|
COALESCE(a3),
|
||||||
|
COALESCE(a4),
|
||||||
|
COALESCE(a5),
|
||||||
|
COALESCE(a6)
|
||||||
|
FROM t1;
|
||||||
|
SHOW CREATE TABLE t2;
|
||||||
|
DROP TABLE t2;
|
||||||
|
END;
|
||||||
|
$$
|
||||||
|
CREATE PROCEDURE mdev16542_alter_force_and_show()
|
||||||
|
BEGIN
|
||||||
|
SELECT '# ALTER..FORCE and SHOW' AS ``;
|
||||||
|
ALTER TABLE t1 FORCE;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
END;
|
||||||
|
$$
|
||||||
|
CREATE PROCEDURE mdev16542()
|
||||||
|
BEGIN
|
||||||
|
SET SESSION debug_dbug="+d,sql_type";
|
||||||
|
SELECT '# Original table' AS ``;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
CALL mdev16542_create_select();
|
||||||
|
CALL mdev16542_alter_force_and_show();
|
||||||
|
SELECT '# Setting @@global.mysql56_temporal_format=false' AS ``;
|
||||||
|
SET @@global.mysql56_temporal_format=false;
|
||||||
|
CALL mdev16542_create_select();
|
||||||
|
CALL mdev16542_alter_force_and_show();
|
||||||
|
SELECT '# Setting @@global.mysql56_temporal_format=true' AS ``;
|
||||||
|
SET @@global.mysql56_temporal_format=true;
|
||||||
|
CALL mdev16542_create_select();
|
||||||
|
CALL mdev16542_alter_force_and_show();
|
||||||
|
SET SESSION debug_dbug="-d,sql_type";
|
||||||
|
END;
|
||||||
|
$$
|
||||||
|
SET @@global.mysql56_temporal_format=true;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
a0 TIME,
|
||||||
|
a1 TIME(1),
|
||||||
|
a2 TIME(2),
|
||||||
|
a3 TIME(3),
|
||||||
|
a4 TIME(4),
|
||||||
|
a5 TIME(5),
|
||||||
|
a6 TIME(6)
|
||||||
|
);
|
||||||
|
CALL mdev16542;
|
||||||
|
|
||||||
|
# Original table
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` time /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a1` time(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a2` time(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a3` time(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a4` time(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a5` time(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a6` time(6) /* mysql-5.6 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# CREATE..SELECT and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a0` time /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a1` time(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a2` time(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a3` time(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a4` time(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a5` time(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a6` time(6) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a0)` time /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a1)` time(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a2)` time(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a3)` time(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a4)` time(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a5)` time(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a6)` time(6) /* mysql-5.6 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# ALTER..FORCE and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` time /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a1` time(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a2` time(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a3` time(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a4` time(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a5` time(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a6` time(6) /* mysql-5.6 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# Setting @@global.mysql56_temporal_format=false
|
||||||
|
|
||||||
|
# CREATE..SELECT and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a0` time /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a1` time(1) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a2` time(2) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a3` time(3) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a4` time(4) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a5` time(5) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a6` time(6) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a0)` time /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a1)` time(1) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a2)` time(2) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a3)` time(3) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a4)` time(4) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a5)` time(5) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a6)` time(6) /* mariadb-5.3 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# ALTER..FORCE and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` time /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a1` time(1) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a2` time(2) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a3` time(3) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a4` time(4) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a5` time(5) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a6` time(6) /* mariadb-5.3 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# Setting @@global.mysql56_temporal_format=true
|
||||||
|
|
||||||
|
# CREATE..SELECT and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a0` time /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a1` time(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a2` time(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a3` time(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a4` time(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a5` time(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a6` time(6) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a0)` time /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a1)` time(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a2)` time(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a3)` time(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a4)` time(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a5)` time(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a6)` time(6) /* mysql-5.6 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# ALTER..FORCE and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` time /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a1` time(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a2` time(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a3` time(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a4` time(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a5` time(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a6` time(6) /* mysql-5.6 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
a0 DATETIME,
|
||||||
|
a1 DATETIME(1),
|
||||||
|
a2 DATETIME(2),
|
||||||
|
a3 DATETIME(3),
|
||||||
|
a4 DATETIME(4),
|
||||||
|
a5 DATETIME(5),
|
||||||
|
a6 DATETIME(6)
|
||||||
|
);
|
||||||
|
CALL mdev16542;
|
||||||
|
|
||||||
|
# Original table
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` datetime /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a1` datetime(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a2` datetime(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a3` datetime(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a4` datetime(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a5` datetime(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a6` datetime(6) /* mysql-5.6 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# CREATE..SELECT and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a0` datetime /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a1` datetime(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a2` datetime(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a3` datetime(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a4` datetime(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a5` datetime(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a6` datetime(6) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a0)` datetime /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a1)` datetime(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a2)` datetime(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a3)` datetime(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a4)` datetime(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a5)` datetime(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a6)` datetime(6) /* mysql-5.6 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# ALTER..FORCE and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` datetime /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a1` datetime(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a2` datetime(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a3` datetime(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a4` datetime(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a5` datetime(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a6` datetime(6) /* mysql-5.6 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# Setting @@global.mysql56_temporal_format=false
|
||||||
|
|
||||||
|
# CREATE..SELECT and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a0` datetime /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a1` datetime(1) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a2` datetime(2) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a3` datetime(3) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a4` datetime(4) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a5` datetime(5) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a6` datetime(6) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a0)` datetime /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a1)` datetime(1) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a2)` datetime(2) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a3)` datetime(3) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a4)` datetime(4) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a5)` datetime(5) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a6)` datetime(6) /* mariadb-5.3 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# ALTER..FORCE and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` datetime /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a1` datetime(1) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a2` datetime(2) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a3` datetime(3) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a4` datetime(4) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a5` datetime(5) /* mariadb-5.3 */ DEFAULT NULL,
|
||||||
|
`a6` datetime(6) /* mariadb-5.3 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# Setting @@global.mysql56_temporal_format=true
|
||||||
|
|
||||||
|
# CREATE..SELECT and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a0` datetime /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a1` datetime(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a2` datetime(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a3` datetime(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a4` datetime(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a5` datetime(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a6` datetime(6) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a0)` datetime /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a1)` datetime(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a2)` datetime(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a3)` datetime(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a4)` datetime(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a5)` datetime(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`COALESCE(a6)` datetime(6) /* mysql-5.6 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# ALTER..FORCE and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` datetime /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a1` datetime(1) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a2` datetime(2) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a3` datetime(3) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a4` datetime(4) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a5` datetime(5) /* mysql-5.6 */ DEFAULT NULL,
|
||||||
|
`a6` datetime(6) /* mysql-5.6 */ DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
a0 TIMESTAMP,
|
||||||
|
a1 TIMESTAMP(1),
|
||||||
|
a2 TIMESTAMP(2),
|
||||||
|
a3 TIMESTAMP(3),
|
||||||
|
a4 TIMESTAMP(4),
|
||||||
|
a5 TIMESTAMP(5),
|
||||||
|
a6 TIMESTAMP(6)
|
||||||
|
);
|
||||||
|
CALL mdev16542;
|
||||||
|
|
||||||
|
# Original table
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` timestamp /* mysql-5.6 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||||
|
`a1` timestamp(1) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0',
|
||||||
|
`a2` timestamp(2) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00',
|
||||||
|
`a3` timestamp(3) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000',
|
||||||
|
`a4` timestamp(4) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000',
|
||||||
|
`a5` timestamp(5) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000',
|
||||||
|
`a6` timestamp(6) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# CREATE..SELECT and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a0` timestamp /* mysql-5.6 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||||
|
`a1` timestamp(1) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0',
|
||||||
|
`a2` timestamp(2) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00',
|
||||||
|
`a3` timestamp(3) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000',
|
||||||
|
`a4` timestamp(4) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000',
|
||||||
|
`a5` timestamp(5) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000',
|
||||||
|
`a6` timestamp(6) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
|
||||||
|
`COALESCE(a0)` timestamp /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a1)` timestamp(1) /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a2)` timestamp(2) /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a3)` timestamp(3) /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a4)` timestamp(4) /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a5)` timestamp(5) /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a6)` timestamp(6) /* mysql-5.6 */ NULL DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# ALTER..FORCE and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` timestamp /* mysql-5.6 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||||
|
`a1` timestamp(1) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0',
|
||||||
|
`a2` timestamp(2) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00',
|
||||||
|
`a3` timestamp(3) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000',
|
||||||
|
`a4` timestamp(4) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000',
|
||||||
|
`a5` timestamp(5) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000',
|
||||||
|
`a6` timestamp(6) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# Setting @@global.mysql56_temporal_format=false
|
||||||
|
|
||||||
|
# CREATE..SELECT and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a0` timestamp /* mariadb-5.3 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||||
|
`a1` timestamp(1) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0',
|
||||||
|
`a2` timestamp(2) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00',
|
||||||
|
`a3` timestamp(3) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000',
|
||||||
|
`a4` timestamp(4) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000',
|
||||||
|
`a5` timestamp(5) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000',
|
||||||
|
`a6` timestamp(6) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
|
||||||
|
`COALESCE(a0)` timestamp /* mariadb-5.3 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a1)` timestamp(1) /* mariadb-5.3 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a2)` timestamp(2) /* mariadb-5.3 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a3)` timestamp(3) /* mariadb-5.3 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a4)` timestamp(4) /* mariadb-5.3 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a5)` timestamp(5) /* mariadb-5.3 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a6)` timestamp(6) /* mariadb-5.3 */ NULL DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# ALTER..FORCE and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` timestamp /* mariadb-5.3 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||||
|
`a1` timestamp(1) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0',
|
||||||
|
`a2` timestamp(2) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00',
|
||||||
|
`a3` timestamp(3) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000',
|
||||||
|
`a4` timestamp(4) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000',
|
||||||
|
`a5` timestamp(5) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000',
|
||||||
|
`a6` timestamp(6) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# Setting @@global.mysql56_temporal_format=true
|
||||||
|
|
||||||
|
# CREATE..SELECT and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a0` timestamp /* mysql-5.6 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||||
|
`a1` timestamp(1) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0',
|
||||||
|
`a2` timestamp(2) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00',
|
||||||
|
`a3` timestamp(3) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000',
|
||||||
|
`a4` timestamp(4) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000',
|
||||||
|
`a5` timestamp(5) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000',
|
||||||
|
`a6` timestamp(6) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
|
||||||
|
`COALESCE(a0)` timestamp /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a1)` timestamp(1) /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a2)` timestamp(2) /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a3)` timestamp(3) /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a4)` timestamp(4) /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a5)` timestamp(5) /* mysql-5.6 */ NULL DEFAULT NULL,
|
||||||
|
`COALESCE(a6)` timestamp(6) /* mysql-5.6 */ NULL DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
|
||||||
|
# ALTER..FORCE and SHOW
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a0` timestamp /* mysql-5.6 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||||
|
`a1` timestamp(1) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0',
|
||||||
|
`a2` timestamp(2) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00',
|
||||||
|
`a3` timestamp(3) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000',
|
||||||
|
`a4` timestamp(4) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000',
|
||||||
|
`a5` timestamp(5) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000',
|
||||||
|
`a6` timestamp(6) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
DROP TABLE t1;
|
||||||
|
SET @@global.mysql56_temporal_format=DEFAULT;
|
||||||
|
DROP PROCEDURE mdev16542;
|
||||||
|
DROP PROCEDURE mdev16542_create_select;
|
||||||
|
DROP PROCEDURE mdev16542_alter_force_and_show;
|
||||||
|
#
|
||||||
|
# End of 10.4 tests
|
||||||
|
#
|
105
mysql-test/main/type_temporal_mysql56_debug.test
Normal file
105
mysql-test/main/type_temporal_mysql56_debug.test
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
--echo #
|
||||||
|
--echo # Start of 10.4 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-16542 Fix ALTER TABLE FORCE to upgrade temporal types
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
DELIMITER $$;
|
||||||
|
CREATE PROCEDURE mdev16542_create_select()
|
||||||
|
BEGIN
|
||||||
|
SELECT '# CREATE..SELECT and SHOW' AS ``;
|
||||||
|
CREATE TABLE t2 AS SELECT
|
||||||
|
a0, a1, a2, a3, a4, a5, a6,
|
||||||
|
COALESCE(a0),
|
||||||
|
COALESCE(a1),
|
||||||
|
COALESCE(a2),
|
||||||
|
COALESCE(a3),
|
||||||
|
COALESCE(a4),
|
||||||
|
COALESCE(a5),
|
||||||
|
COALESCE(a6)
|
||||||
|
FROM t1;
|
||||||
|
SHOW CREATE TABLE t2;
|
||||||
|
DROP TABLE t2;
|
||||||
|
END;
|
||||||
|
$$
|
||||||
|
|
||||||
|
CREATE PROCEDURE mdev16542_alter_force_and_show()
|
||||||
|
BEGIN
|
||||||
|
SELECT '# ALTER..FORCE and SHOW' AS ``;
|
||||||
|
ALTER TABLE t1 FORCE;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
END;
|
||||||
|
$$
|
||||||
|
|
||||||
|
CREATE PROCEDURE mdev16542()
|
||||||
|
BEGIN
|
||||||
|
SET SESSION debug_dbug="+d,sql_type";
|
||||||
|
SELECT '# Original table' AS ``;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
CALL mdev16542_create_select();
|
||||||
|
CALL mdev16542_alter_force_and_show();
|
||||||
|
|
||||||
|
SELECT '# Setting @@global.mysql56_temporal_format=false' AS ``;
|
||||||
|
SET @@global.mysql56_temporal_format=false;
|
||||||
|
CALL mdev16542_create_select();
|
||||||
|
CALL mdev16542_alter_force_and_show();
|
||||||
|
|
||||||
|
SELECT '# Setting @@global.mysql56_temporal_format=true' AS ``;
|
||||||
|
SET @@global.mysql56_temporal_format=true;
|
||||||
|
CALL mdev16542_create_select();
|
||||||
|
CALL mdev16542_alter_force_and_show();
|
||||||
|
SET SESSION debug_dbug="-d,sql_type";
|
||||||
|
END;
|
||||||
|
$$
|
||||||
|
DELIMITER ;$$
|
||||||
|
|
||||||
|
SET @@global.mysql56_temporal_format=true;
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
a0 TIME,
|
||||||
|
a1 TIME(1),
|
||||||
|
a2 TIME(2),
|
||||||
|
a3 TIME(3),
|
||||||
|
a4 TIME(4),
|
||||||
|
a5 TIME(5),
|
||||||
|
a6 TIME(6)
|
||||||
|
);
|
||||||
|
CALL mdev16542;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
a0 DATETIME,
|
||||||
|
a1 DATETIME(1),
|
||||||
|
a2 DATETIME(2),
|
||||||
|
a3 DATETIME(3),
|
||||||
|
a4 DATETIME(4),
|
||||||
|
a5 DATETIME(5),
|
||||||
|
a6 DATETIME(6)
|
||||||
|
);
|
||||||
|
CALL mdev16542;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
a0 TIMESTAMP,
|
||||||
|
a1 TIMESTAMP(1),
|
||||||
|
a2 TIMESTAMP(2),
|
||||||
|
a3 TIMESTAMP(3),
|
||||||
|
a4 TIMESTAMP(4),
|
||||||
|
a5 TIMESTAMP(5),
|
||||||
|
a6 TIMESTAMP(6)
|
||||||
|
);
|
||||||
|
CALL mdev16542;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
SET @@global.mysql56_temporal_format=DEFAULT;
|
||||||
|
DROP PROCEDURE mdev16542;
|
||||||
|
DROP PROCEDURE mdev16542_create_select;
|
||||||
|
DROP PROCEDURE mdev16542_alter_force_and_show;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.4 tests
|
||||||
|
--echo #
|
@ -10709,11 +10709,6 @@ Column_definition::Column_definition(THD *thd, Field *old_field,
|
|||||||
key_length/= charset->mbmaxlen;
|
key_length/= charset->mbmaxlen;
|
||||||
break;
|
break;
|
||||||
case MYSQL_TYPE_STRING:
|
case MYSQL_TYPE_STRING:
|
||||||
/* Change CHAR -> VARCHAR if dynamic record length */
|
|
||||||
if (old_field->type() == MYSQL_TYPE_VAR_STRING)
|
|
||||||
set_handler(&type_handler_varchar);
|
|
||||||
/* fall through */
|
|
||||||
|
|
||||||
case MYSQL_TYPE_ENUM:
|
case MYSQL_TYPE_ENUM:
|
||||||
case MYSQL_TYPE_SET:
|
case MYSQL_TYPE_SET:
|
||||||
case MYSQL_TYPE_VARCHAR:
|
case MYSQL_TYPE_VARCHAR:
|
||||||
@ -10761,6 +10756,8 @@ Column_definition::Column_definition(THD *thd, Field *old_field,
|
|||||||
|
|
||||||
char_length= (uint)length;
|
char_length= (uint)length;
|
||||||
|
|
||||||
|
type_handler()->Column_definition_implicit_upgrade(this);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Copy the default (constant/function) from the column object orig_field, if
|
Copy the default (constant/function) from the column object orig_field, if
|
||||||
supplied. We do this if all these conditions are met:
|
supplied. We do this if all these conditions are met:
|
||||||
|
@ -2184,6 +2184,12 @@ int show_create_table(THD *thd, TABLE_LIST *table_list, String *packet,
|
|||||||
field->sql_type(type);
|
field->sql_type(type);
|
||||||
packet->append(type.ptr(), type.length(), system_charset_info);
|
packet->append(type.ptr(), type.length(), system_charset_info);
|
||||||
|
|
||||||
|
DBUG_EXECUTE_IF("sql_type",
|
||||||
|
packet->append(" /* ");
|
||||||
|
packet->append(field->type_handler()->version().ptr());
|
||||||
|
packet->append(" */ ");
|
||||||
|
);
|
||||||
|
|
||||||
if (field->has_charset() && !(sql_mode & (MODE_MYSQL323 | MODE_MYSQL40)))
|
if (field->has_charset() && !(sql_mode & (MODE_MYSQL323 | MODE_MYSQL40)))
|
||||||
{
|
{
|
||||||
if (field->charset() != share->table_charset)
|
if (field->charset() != share->table_charset)
|
||||||
|
@ -472,6 +472,11 @@ const Name
|
|||||||
Type_handler_datetime_common::m_name_datetime(STRING_WITH_LEN("datetime")),
|
Type_handler_datetime_common::m_name_datetime(STRING_WITH_LEN("datetime")),
|
||||||
Type_handler_timestamp_common::m_name_timestamp(STRING_WITH_LEN("timestamp"));
|
Type_handler_timestamp_common::m_name_timestamp(STRING_WITH_LEN("timestamp"));
|
||||||
|
|
||||||
|
const Name
|
||||||
|
Type_handler::m_version_default(STRING_WITH_LEN("")),
|
||||||
|
Type_handler::m_version_mariadb53(STRING_WITH_LEN("mariadb-5.3")),
|
||||||
|
Type_handler::m_version_mysql56(STRING_WITH_LEN("mysql-5.6"));
|
||||||
|
|
||||||
|
|
||||||
const Type_limits_int
|
const Type_limits_int
|
||||||
Type_handler_tiny::m_limits_sint8= Type_limits_sint8(),
|
Type_handler_tiny::m_limits_sint8= Type_limits_sint8(),
|
||||||
@ -6532,3 +6537,40 @@ bool Type_handler_decimal_result::Item_eq_value(THD *thd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
|
|
||||||
|
void Type_handler_var_string::
|
||||||
|
Column_definition_implicit_upgrade(Column_definition *c) const
|
||||||
|
{
|
||||||
|
// Change old VARCHAR to new VARCHAR
|
||||||
|
c->set_handler(&type_handler_varchar);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Type_handler_time_common::
|
||||||
|
Column_definition_implicit_upgrade(Column_definition *c) const
|
||||||
|
{
|
||||||
|
if (opt_mysql56_temporal_format)
|
||||||
|
c->set_handler(&type_handler_time2);
|
||||||
|
else
|
||||||
|
c->set_handler(&type_handler_time);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Type_handler_datetime_common::
|
||||||
|
Column_definition_implicit_upgrade(Column_definition *c) const
|
||||||
|
{
|
||||||
|
if (opt_mysql56_temporal_format)
|
||||||
|
c->set_handler(&type_handler_datetime2);
|
||||||
|
else
|
||||||
|
c->set_handler(&type_handler_datetime);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Type_handler_timestamp_common::
|
||||||
|
Column_definition_implicit_upgrade(Column_definition *c) const
|
||||||
|
{
|
||||||
|
if (opt_mysql56_temporal_format)
|
||||||
|
c->set_handler(&type_handler_timestamp2);
|
||||||
|
else
|
||||||
|
c->set_handler(&type_handler_timestamp);
|
||||||
|
}
|
||||||
|
@ -1031,6 +1031,9 @@ public:
|
|||||||
class Type_handler
|
class Type_handler
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
static const Name m_version_default;
|
||||||
|
static const Name m_version_mysql56;
|
||||||
|
static const Name m_version_mariadb53;
|
||||||
String *print_item_value_csstr(THD *thd, Item *item, String *str) const;
|
String *print_item_value_csstr(THD *thd, Item *item, String *str) const;
|
||||||
String *print_item_value_temporal(THD *thd, Item *item, String *str,
|
String *print_item_value_temporal(THD *thd, Item *item, String *str,
|
||||||
const Name &type_name, String *buf) const;
|
const Name &type_name, String *buf) const;
|
||||||
@ -1096,6 +1099,7 @@ public:
|
|||||||
const Type_handler *h2);
|
const Type_handler *h2);
|
||||||
|
|
||||||
virtual const Name name() const= 0;
|
virtual const Name name() const= 0;
|
||||||
|
virtual const Name version() const { return m_version_default; }
|
||||||
virtual enum_field_types field_type() const= 0;
|
virtual enum_field_types field_type() const= 0;
|
||||||
virtual enum_field_types real_field_type() const { return field_type(); }
|
virtual enum_field_types real_field_type() const { return field_type(); }
|
||||||
/**
|
/**
|
||||||
@ -1253,6 +1257,9 @@ public:
|
|||||||
virtual Field *make_conversion_table_field(TABLE *TABLE,
|
virtual Field *make_conversion_table_field(TABLE *TABLE,
|
||||||
uint metadata,
|
uint metadata,
|
||||||
const Field *target) const= 0;
|
const Field *target) const= 0;
|
||||||
|
// Automatic upgrade, e.g. for ALTER TABLE t1 FORCE
|
||||||
|
virtual void Column_definition_implicit_upgrade(Column_definition *c) const
|
||||||
|
{ }
|
||||||
virtual bool Column_definition_fix_attributes(Column_definition *c) const= 0;
|
virtual bool Column_definition_fix_attributes(Column_definition *c) const= 0;
|
||||||
virtual bool Column_definition_prepare_stage1(THD *thd,
|
virtual bool Column_definition_prepare_stage1(THD *thd,
|
||||||
MEM_ROOT *mem_root,
|
MEM_ROOT *mem_root,
|
||||||
@ -2878,6 +2885,7 @@ public:
|
|||||||
return Item_divisor_precision_increment_with_seconds(item);
|
return Item_divisor_precision_increment_with_seconds(item);
|
||||||
}
|
}
|
||||||
const Type_handler *type_handler_for_comparison() const;
|
const Type_handler *type_handler_for_comparison() const;
|
||||||
|
void Column_definition_implicit_upgrade(Column_definition *c) const;
|
||||||
bool Column_definition_fix_attributes(Column_definition *c) const;
|
bool Column_definition_fix_attributes(Column_definition *c) const;
|
||||||
bool Item_save_in_value(Item *item, st_value *value) const;
|
bool Item_save_in_value(Item *item, st_value *value) const;
|
||||||
bool Item_send(Item *item, Protocol *protocol, st_value *buf) const
|
bool Item_send(Item *item, Protocol *protocol, st_value *buf) const
|
||||||
@ -2923,6 +2931,7 @@ class Type_handler_time: public Type_handler_time_common
|
|||||||
public:
|
public:
|
||||||
static uint hires_bytes(uint dec) { return m_hires_bytes[dec]; }
|
static uint hires_bytes(uint dec) { return m_hires_bytes[dec]; }
|
||||||
virtual ~Type_handler_time() {}
|
virtual ~Type_handler_time() {}
|
||||||
|
const Name version() const { return m_version_mariadb53; }
|
||||||
uint32 calc_pack_length(uint32 length) const;
|
uint32 calc_pack_length(uint32 length) const;
|
||||||
Field *make_conversion_table_field(TABLE *, uint metadata,
|
Field *make_conversion_table_field(TABLE *, uint metadata,
|
||||||
const Field *target) const;
|
const Field *target) const;
|
||||||
@ -2948,6 +2957,7 @@ class Type_handler_time2: public Type_handler_time_common
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~Type_handler_time2() {}
|
virtual ~Type_handler_time2() {}
|
||||||
|
const Name version() const { return m_version_mysql56; }
|
||||||
enum_field_types real_field_type() const { return MYSQL_TYPE_TIME2; }
|
enum_field_types real_field_type() const { return MYSQL_TYPE_TIME2; }
|
||||||
uint32 calc_pack_length(uint32 length) const;
|
uint32 calc_pack_length(uint32 length) const;
|
||||||
Field *make_conversion_table_field(TABLE *, uint metadata,
|
Field *make_conversion_table_field(TABLE *, uint metadata,
|
||||||
@ -3082,6 +3092,7 @@ public:
|
|||||||
}
|
}
|
||||||
Item *create_typecast_item(THD *thd, Item *item,
|
Item *create_typecast_item(THD *thd, Item *item,
|
||||||
const Type_cast_attributes &attr) const;
|
const Type_cast_attributes &attr) const;
|
||||||
|
void Column_definition_implicit_upgrade(Column_definition *c) const;
|
||||||
bool Column_definition_fix_attributes(Column_definition *c) const;
|
bool Column_definition_fix_attributes(Column_definition *c) const;
|
||||||
uint Item_decimal_scale(const Item *item) const
|
uint Item_decimal_scale(const Item *item) const
|
||||||
{
|
{
|
||||||
@ -3115,6 +3126,7 @@ class Type_handler_datetime: public Type_handler_datetime_common
|
|||||||
public:
|
public:
|
||||||
static uint hires_bytes(uint dec) { return m_hires_bytes[dec]; }
|
static uint hires_bytes(uint dec) { return m_hires_bytes[dec]; }
|
||||||
virtual ~Type_handler_datetime() {}
|
virtual ~Type_handler_datetime() {}
|
||||||
|
const Name version() const { return m_version_mariadb53; }
|
||||||
uint32 calc_pack_length(uint32 length) const;
|
uint32 calc_pack_length(uint32 length) const;
|
||||||
Field *make_conversion_table_field(TABLE *, uint metadata,
|
Field *make_conversion_table_field(TABLE *, uint metadata,
|
||||||
const Field *target) const;
|
const Field *target) const;
|
||||||
@ -3140,6 +3152,7 @@ class Type_handler_datetime2: public Type_handler_datetime_common
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~Type_handler_datetime2() {}
|
virtual ~Type_handler_datetime2() {}
|
||||||
|
const Name version() const { return m_version_mysql56; }
|
||||||
enum_field_types real_field_type() const { return MYSQL_TYPE_DATETIME2; }
|
enum_field_types real_field_type() const { return MYSQL_TYPE_DATETIME2; }
|
||||||
uint32 calc_pack_length(uint32 length) const;
|
uint32 calc_pack_length(uint32 length) const;
|
||||||
Field *make_conversion_table_field(TABLE *, uint metadata,
|
Field *make_conversion_table_field(TABLE *, uint metadata,
|
||||||
@ -3178,6 +3191,7 @@ public:
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
void Column_definition_implicit_upgrade(Column_definition *c) const;
|
||||||
bool Column_definition_fix_attributes(Column_definition *c) const;
|
bool Column_definition_fix_attributes(Column_definition *c) const;
|
||||||
uint Item_decimal_scale(const Item *item) const
|
uint Item_decimal_scale(const Item *item) const
|
||||||
{
|
{
|
||||||
@ -3211,6 +3225,7 @@ class Type_handler_timestamp: public Type_handler_timestamp_common
|
|||||||
public:
|
public:
|
||||||
static uint sec_part_bytes(uint dec) { return m_sec_part_bytes[dec]; }
|
static uint sec_part_bytes(uint dec) { return m_sec_part_bytes[dec]; }
|
||||||
virtual ~Type_handler_timestamp() {}
|
virtual ~Type_handler_timestamp() {}
|
||||||
|
const Name version() const { return m_version_mariadb53; }
|
||||||
uint32 calc_pack_length(uint32 length) const;
|
uint32 calc_pack_length(uint32 length) const;
|
||||||
Field *make_conversion_table_field(TABLE *, uint metadata,
|
Field *make_conversion_table_field(TABLE *, uint metadata,
|
||||||
const Field *target) const;
|
const Field *target) const;
|
||||||
@ -3236,6 +3251,7 @@ class Type_handler_timestamp2: public Type_handler_timestamp_common
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~Type_handler_timestamp2() {}
|
virtual ~Type_handler_timestamp2() {}
|
||||||
|
const Name version() const { return m_version_mysql56; }
|
||||||
enum_field_types real_field_type() const { return MYSQL_TYPE_TIMESTAMP2; }
|
enum_field_types real_field_type() const { return MYSQL_TYPE_TIMESTAMP2; }
|
||||||
uint32 calc_pack_length(uint32 length) const;
|
uint32 calc_pack_length(uint32 length) const;
|
||||||
Field *make_conversion_table_field(TABLE *, uint metadata,
|
Field *make_conversion_table_field(TABLE *, uint metadata,
|
||||||
@ -3436,6 +3452,7 @@ public:
|
|||||||
{
|
{
|
||||||
return varstring_type_handler(item);
|
return varstring_type_handler(item);
|
||||||
}
|
}
|
||||||
|
void Column_definition_implicit_upgrade(Column_definition *c) const;
|
||||||
bool Column_definition_fix_attributes(Column_definition *c) const;
|
bool Column_definition_fix_attributes(Column_definition *c) const;
|
||||||
bool Column_definition_prepare_stage2(Column_definition *c,
|
bool Column_definition_prepare_stage2(Column_definition *c,
|
||||||
handler *file,
|
handler *file,
|
||||||
|
Reference in New Issue
Block a user