File: year-myisam.result

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (127 lines) | stat: -rw-r--r-- 5,451 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
SET global default_storage_engine=MyISAM;
SET session default_storage_engine=MyISAM;
# Test for warnings on column creation
CREATE TABLE t1 (y YEAR NOT NULL);
SHOW CREATE TABLE t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `y` year NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
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(0) NOT NULL);
ERROR HY000: Invalid display width. Use YEAR instead.
CREATE TABLE t1 (y YEAR(1) NOT NULL);
ERROR HY000: Invalid display width. Use YEAR instead.
CREATE TABLE t1 (y YEAR(2) NOT NULL);
ERROR HY000: Invalid display width. Use YEAR instead.
CREATE TABLE t1 (y YEAR(5) NOT NULL);
ERROR HY000: Invalid display width. Use YEAR instead.
CREATE TABLE t1 (y YEAR(10240) NOT NULL);
ERROR HY000: Invalid display width. Use YEAR instead.
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 HY000: Invalid display width. Use YEAR instead.
CREATE TABLE t1 (y YEAR(4294967295) NOT NULL);
ERROR HY000: Invalid display width. Use YEAR instead.
# 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 NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
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;
ERROR HY000: Invalid display width. Use YEAR instead.
SHOW CREATE TABLE t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `i` int NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
# Try to convert YEAR(4) column to YEAR(2) with ALTER TABLE
ALTER TABLE t1 MODIFY COLUMN y YEAR(2) NOT NULL;
ERROR HY000: Invalid display width. Use YEAR instead.
SHOW CREATE TABLE t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `i` int NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
ALTER TABLE t1 MODIFY COLUMN i YEAR(2) NOT NULL;
ERROR HY000: Invalid display width. Use YEAR instead.
SHOW CREATE TABLE t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `i` int NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
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 IGNORE 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 IGNORE 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;
#