| Server IP : 45.40.142.9 / Your IP : 216.73.216.250 Web Server : Apache System : Linux s45-40-142-9.secureserver.net 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64 User : bayspec ( 506) PHP Version : 5.6.40 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/mysql-test/r/ |
Upload File : |
SET global default_storage_engine=MyISAM;
SET session default_storage_engine=MyISAM;
# Test for warnings on column creation
CREATE TABLE t1 (y YEAR(5) NOT NULL);
Warnings:
Warning 1818 YEAR(5) column type is deprecated. Creating YEAR(4) column instead.
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`y` year(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (y YEAR(-5) NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-5) NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR(4) NOT NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`y` year(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (y YEAR(-4) NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-4) NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR(3) NOT NULL);
Warnings:
Warning 1818 YEAR(3) column type is deprecated. Creating YEAR(4) column instead.
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`y` year(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (y YEAR(-3) NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-3) NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR(2) NOT NULL);
Warnings:
Warning 1818 YEAR(2) column type is deprecated. Creating YEAR(4) column instead.
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`y` year(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (y YEAR(-2) NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-2) NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR(1) NOT NULL);
Warnings:
Warning 1818 YEAR(1) column type is deprecated. Creating YEAR(4) column instead.
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`y` year(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (y YEAR(-1) NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1) NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR(0) NOT NULL);
Warnings:
Warning 1818 YEAR(0) column type is deprecated. Creating YEAR(4) column instead.
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`y` year(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (y YEAR(-1) NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1) NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR(-4294967296) NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-4294967296) NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR(-4294967295) NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-4294967295) NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR(NULL) NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL) NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR('') NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''') NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR('a') NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''a') NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR('-a') NOT NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''-a') NOT NULL)' at line 1
CREATE TABLE t1 (y YEAR(4294967296) NOT NULL);
ERROR 42000: Display width out of range for column 'y' (max = 4294967295)
CREATE TABLE t1 (y YEAR(4294967295) NOT NULL);
Warnings:
Warning 1818 YEAR(4294967295) column type is deprecated. Creating YEAR(4) column instead.
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`y` year(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
# Test for default column width value
CREATE TABLE t1 (y YEAR NOT NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`y` year(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
#
# Check various ALTER TABLE operations on YEAR(2) type
#
CREATE TABLE t1 (i INT NOT NULL);
# Try to create new YEAR(2) column with ALTER TABLE
ALTER TABLE t1 ADD COLUMN y YEAR(2) NOT NULL;
Warnings:
Warning 1818 YEAR(2) column type is deprecated. Creating YEAR(4) column instead.
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) NOT NULL,
`y` year(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
# Try to convert YEAR(4) column to YEAR(2) with ALTER TABLE
ALTER TABLE t1 MODIFY COLUMN y YEAR(2) NOT NULL;
Warnings:
Warning 1818 YEAR(2) column type is deprecated. Creating YEAR(4) column instead.
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) NOT NULL,
`y` year(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
ALTER TABLE t1 MODIFY COLUMN i YEAR(2) NOT NULL;
Warnings:
Warning 1818 YEAR(2) column type is deprecated. Creating YEAR(4) column instead.
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`i` year(4) NOT NULL,
`y` year(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
ALTER TABLE t1 MODIFY COLUMN i INT NOT NULL;
DROP TABLE t1;
#
# Regression tests
#
CREATE TABLE t1 (y YEAR NOT NULL DEFAULT 0,
i INT NOT NULL DEFAULT 0,
c VARCHAR(20) NOT NULL DEFAULT '');
# insert [1901..2155]
# insert [0..99]
UPDATE t1 SET i = c;
# should return no warnings
UPDATE t1 SET y = c;
# should return no warnings
UPDATE t1 SET y = i;
# should return no warnings
INSERT INTO t1 (y) VALUES (0), ('00'), ('0000');
TRUNCATE t1;
# test out-of-range values, should return warnings
INSERT INTO t1 (i) VALUES (-1), (1800), (2156), (2147483647);
# should return 4 warnings
UPDATE t1 SET y = i;
Warnings:
Warning 1264 Out of range value for column 'y' at row 1
Warning 1264 Out of range value for column 'y' at row 2
Warning 1264 Out of range value for column 'y' at row 3
Warning 1264 Out of range value for column 'y' at row 4
SELECT y, i FROM t1;
y i
0000 -1
0000 1800
0000 2147483647
0000 2156
TRUNCATE t1;
# should return 4 warnings
INSERT INTO t1 (c) VALUES (''), (' '), ('2012qwer'), ('qwer');
UPDATE t1 SET y = c;
Warnings:
Warning 1366 Incorrect integer value: '' for column 'y' at row 1
Warning 1366 Incorrect integer value: ' ' for column 'y' at row 2
Warning 1265 Data truncated for column 'y' at row 3
Warning 1366 Incorrect integer value: 'qwer' for column 'y' at row 4
SELECT y, CONCAT('"', c, '"') FROM t1;
y CONCAT('"', c, '"')
0000 " "
0000 ""
0000 "qwer"
2012 "2012qwer"
DROP TABLE t1;
SET @@global.default_storage_engine = MyISAM;
SET @@session.default_storage_engine = MyISAM;
#