mySQL 5.0.11 sources for tomato
[tomato.git] / release / src / router / mysql / mysql-test / suite / engines / iuds / t / update_time.test
blob4b5f89580be7fe8876a2f8e8f5f11ac474903e27
1 --disable_warnings
2 DROP TABLE IF EXISTS t1,t2,t3,t4;
3 --enable_warnings
4 # Create tables
5 CREATE TABLE t1(c1 TIME NOT NULL, c2 TIME NULL, PRIMARY KEY(c1));
6 CREATE TABLE t2(c1 TIME NOT NULL, c2 TIME NULL, PRIMARY KEY(c1,c2));
7 CREATE TABLE t3(c1 TIME NOT NULL, c2 TIME NULL, UNIQUE INDEX idx(c1,c2));
8 CREATE TABLE t4(c1 TIME NOT NULL, c2 TIME NULL);
10 # As a string in 'D HH:MM:SS.fraction' format 
12 INSERT INTO t1 VALUES ('00:00:00.00','00:00:00.00'),('01:01:01.01','01:01:01.00'),('838:59:59.00','838:59:59.00'),('00:00:01','00:00:01'),('02:02:02','02:02:02'),('838:59:58','838:59:58'),('-838:59:59','-838:59:59'),('00:03','00:03'),('03:03','03:03'),('838:58','838:58'),('00 00:00:04','00 00:00:04'),('04 04:04:04','04 04:04:04'),('34 22:59:57','34 22:59:57'),('00 00:04','00 00:04'),('05 05:05','05 05:05'),('34 22:56','34 22:56'),('05 05','05 05'),('06 06','06 06'),('34 22','34 22'),('07','07'),('59','59');
13 INSERT INTO t2 VALUES ('00:00:00.00','00:00:00.00'),('01:01:01.01','01:01:01.00'),('838:59:59.00','838:59:59.00'),('00:00:01','00:00:01'),('02:02:02','02:02:02'),('838:59:58','838:59:58'),('-838:59:59','-838:59:59'),('00:03','00:03'),('03:03','03:03'),('838:58','838:58'),('00 00:00:04','00 00:00:04'),('04 04:04:04','04 04:04:04'),('34 22:59:57','34 22:59:57'),('00 00:04','00 00:04'),('05 05:05','05 05:05'),('34 22:56','34 22:56'),('05 05','05 05'),('06 06','06 06'),('34 22','34 22'),('07','07'),('59','59');
14 INSERT INTO t3 VALUES ('00:00:00.00','00:00:00.00'),('01:01:01.01','01:01:01.00'),('838:59:59.00','838:59:59.00'),('00:00:01','00:00:01'),('02:02:02','02:02:02'),('838:59:58','838:59:58'),('-838:59:59','-838:59:59'),('00:03','00:03'),('03:03','03:03'),('838:58','838:58'),('00 00:00:04','00 00:00:04'),('04 04:04:04','04 04:04:04'),('34 22:59:57','34 22:59:57'),('00 00:04','00 00:04'),('05 05:05','05 05:05'),('34 22:56','34 22:56'),('05 05','05 05'),('06 06','06 06'),('34 22','34 22'),('07','07'),('59','59');
15 INSERT INTO t4 VALUES ('00:00:00.00','00:00:00.00'),('01:01:01.01','01:01:01.00'),('838:59:59.00','838:59:59.00'),('00:00:01','00:00:01'),('02:02:02','02:02:02'),('838:59:58','838:59:58'),('-838:59:59','-838:59:59'),('00:03','00:03'),('03:03','03:03'),('838:58','838:58'),('00 00:00:04','00 00:00:04'),('04 04:04:04','04 04:04:04'),('34 22:59:57','34 22:59:57'),('00 00:04','00 00:04'),('05 05:05','05 05:05'),('34 22:56','34 22:56'),('05 05','05 05'),('06 06','06 06'),('34 22','34 22'),('07','07'),('59','59');
17 #As a string with no delimiters in 'HHMMSS' format
19 INSERT INTO t1 VALUES('000008','000008'),('080808','080808'),('8385955','8385955'),('-8385955','-8385955'),('0009','0009'),('0909','0909'),('5454','5454'),('10','10'),('53','53');
20 INSERT INTO t2 VALUES('000008','000008'),('080808','080808'),('8385955','8385955'),('-8385955','-8385955'),('0009','0009'),('0909','0909'),('5454','5454'),('10','10'),('53','53');
21 INSERT INTO t3 VALUES('000008','000008'),('080808','080808'),('8385955','8385955'),('-8385955','-8385955'),('0009','0009'),('0909','0909'),('5454','5454'),('10','10'),('53','53');
22 INSERT INTO t4 VALUES('000008','000008'),('080808','080808'),('8385955','8385955'),('-8385955','-8385955'),('0009','0009'),('0909','0909'),('5454','5454'),('10','10'),('53','53');
24 #As a number in HHMMSS format
26 INSERT INTO t1 VALUES (000011.00,000011.00),(111111.11,111111.11),(8385952.00,8385952.00),(000012,000012),(121212,121212),(8385951,8385951),(1313,1313),(5151,5151),(14,14),(50,50);
27 INSERT INTO t2 VALUES (000011.00,000011.00),(111111.11,111111.11),(8385952.00,8385952.00),(000012,000012),(121212,121212),(8385951,8385951),(1313,1313),(5151,5151),(14,14),(50,50);
28 INSERT INTO t3 VALUES (000011.00,000011.00),(111111.11,111111.11),(8385952.00,8385952.00),(000012,000012),(121212,121212),(8385951,8385951),(1313,1313),(5151,5151),(14,14),(50,50);
29 INSERT INTO t4 VALUES (000011.00,000011.00),(111111.11,111111.11),(8385952.00,8385952.00),(000012,000012),(121212,121212),(8385951,8385951),(1313,1313),(5151,5151),(14,14),(50,50);
31 #As the result of a function that returns a value that is acceptable in a TIME context
32 SET TIMESTAMP=1233216687; # 2009-01-29 13:41:27
33 INSERT INTO t1 VALUES(CURRENT_TIME(),CURRENT_TIME());
34 INSERT INTO t2 VALUES(CURRENT_TIME(),CURRENT_TIME());
35 INSERT INTO t3 VALUES(CURRENT_TIME(),CURRENT_TIME());
36 INSERT INTO t4 VALUES(CURRENT_TIME(),CURRENT_TIME());
37 #Insert permissible NULLs
38 INSERT INTO t1 VALUES('123456',null);
39 #INSERT INTO t2 VALUES('123456',null);
40 INSERT INTO t3 VALUES('123456',null);
41 INSERT INTO t4 VALUES('123456',null);
42 --sorted_result
43 SELECT * FROM t1;
44 --sorted_result
45 SELECT * FROM t2;
46 --sorted_result
47 SELECT * FROM t3;
48 --sorted_result
49 SELECT * FROM t4;
50 #Updating the tables
51 --sorted_result
52 SELECT c1 FROM t1 WHERE c1='00:00:07';
53 UPDATE t1 SET c1='22:22:22' WHERE c1='00:00:07';
54 --sorted_result
55 SELECT c1 FROM t1;
56 --sorted_result
57 SELECT c1 FROM t2 WHERE c1='-838:59:59' AND c2='-838:59:59';
58 UPDATE t2 SET c1='22:22:22' WHERE c1='-838:59:59' AND c2='-838:59:59';
59 --sorted_result
60 SELECT c1 FROM t2;
62 # Update with NULL ( NULL to number & number to NULL)
63 --sorted_result
64 SELECT c2 FROM t3 WHERE c2=null;
65 UPDATE t3 SET c2='34 22:59:59' WHERE c2=null;
66 --sorted_result
67 SELECT c2 FROM t3;
68 --sorted_result
69 SELECT c2 FROM t4 WHERE c1='00:00:00';
70 UPDATE t4 SET c2=null WHERE c1='00:00:00';
71 --sorted_result
72 SELECT c2 FROM t4;
74 #Update order by limit
75 --sorted_result
76 SELECT c1 FROM t4 WHERE c1 < '000009';
77 UPDATE t4 SET c1='0101' WHERE c1 < '000009' ORDER BY c1 LIMIT 3;
78 --sorted_result
79 SELECT c1 FROM t4;
81 #Update negative value to unsigned column
82 --sorted_result
83 SELECT c1 FROM t1 WHERE c1='12:12:12';
84 UPDATE t1 SET c1='-12:12:12' WHERE c1='12:12:12';
85 --sorted_result
86 SELECT c1 FROM t1;
88 #Update with Arithmetic operations
89 --sorted_result
90 SELECT c1 FROM t1 WHERE c1=111127;
91 UPDATE t1 SET c1=c1+c2 WHERE c1=111127;
92 --sorted_result
93 SELECT c1 FROM t1;
94 --sorted_result
95 SELECT c1 FROM t2 WHERE c2='100:04:04';
96 UPDATE t2 SET c1=c1 - '010101' WHERE c2=1000404;
97 --sorted_result
98 SELECT c1 FROM t2;
99 --sorted_result
100 SELECT c2 FROM t3 WHERE c2=020202;
101 UPDATE t3 SET c2=c1 * 2 WHERE c2='020202';
102 --sorted_result
103 SELECT c1 FROM t3;
104 --sorted_result
105 SELECT c1 FROM t4 WHERE c1=121212;
106 UPDATE t4 SET c1=c1 / 2 WHERE c1='12:12:12';
107 --sorted_result
108 SELECT c1 FROM t4;
110 #Update range values
111 UPDATE t1 SET c2=1250000 WHERE c1='00:00:09' AND c1='01:01:01';
112 --sorted_result
113 SELECT c2 FROM t1;
114 UPDATE t2 SET c1=125959 WHERE c2=000400 OR c2= 000900;
115 --sorted_result
116 SELECT c1 FROM t2;
117 UPDATE t2 SET c2='1111' WHERE c1 IN ('100:04:04',005454,'2:2:2',111111);
118 --sorted_result
119 SELECT c2 FROM t2;
121 #Update outside range would be clipped to closest endpoints
122 UPDATE t4 SET c2='-838:59:60' WHERE c1='100:04:04';
123 --sorted_result
124 SELECT c2 FROM t4;
125 UPDATE t4 SET c2='838:59:60' WHERE c1='100:04:04';
126 --sorted_result
127 SELECT c2 FROM t4;
128 UPDATE t4 SET c2='00:00:00' WHERE c1='100:04:04';
129 --sorted_result
130 SELECT c2 FROM t4;
131 UPDATE t4 SET c2='11:11:60' WHERE c1='100:04:04';
132 --sorted_result
133 SELECT c2 FROM t4;
134 UPDATE t4 SET c2='11:60:11' WHERE c1='100:04:04';
135 --sorted_result
136 SELECT c2 FROM t4;
138 # Update ignore on bad null error
139 --sorted_result
140 SELECT c1 FROM t3 WHERE c2 < '000007';
141 SET SQL_MODE=STRICT_ALL_TABLES;
142 --error ER_BAD_NULL_ERROR
143 UPDATE t3 SET c1=NULL WHERE c2 < '000007';
144 UPDATE IGNORE t3 SET c1=NULL WHERE c2 < '000007';
145 --sorted_result
146 SELECT c1 from t3 WHERE c2 < '000007';
147 SET SQL_MODE=DEFAULT;
149 #Duplicate keys
150 --error ER_DUP_ENTRY
151 UPDATE t1 SET c1=8385958 WHERE c2='34 22:59:59';
153 #Update with invalid values
154 UPDATE t1 SET c2='def' WHERE c1=59;
155 --sorted_result
156 SELECT c2 FROM t1;
157 --error ER_PARSE_ERROR
158 UPDATE t4 SET c1=11:11:11 WHERE c2=NULL;
159 --sorted_result
160 SELECT c1 FROM t4;
162 #Multi table update
163 UPDATE t1,t2,t3,t4 SET t1.c2=t2.c1+t2.c2,t3.c2=t4.c1*2 WHERE t1.c1='00:13:13' AND t2.c1=080808 AND t4.c1='00:04:00' AND t3.c2=020202;
165 # Update using various access methods
167 # Update using Const
168 # EXPLAIN SELECT * FROM t1 WHERE c1='00:09:09' AND c2='00:09:09';
169 UPDATE t1 SET t1.c1='00:12:12' WHERE c1='00:09:09' AND c2='00:09:09';
170 --sorted_result
171 SELECT * FROM t1;
173 # Update using range
174 # EXPLAIN SELECT * FROM t1 WHERE c1 BETWEEN 080000 AND 100000;
175 UPDATE t1 SET t1.c2='99999.99999' WHERE c1 BETWEEN 080000 AND 100000;
176 --sorted_result
177 SELECT * FROM t1;
178 # EXPLAIN SELECT * FROM t1 WHERE c1 IN (222222,8385955,1500000);
179 UPDATE t1 SET c1=c1+1,c2=c2-1 WHERE c1 IN (222222,8385955,1500000) ORDER BY c1;
180 --sorted_result
181 SELECT * FROM t1;
183 # Update using eq_ref
184 # EXPLAIN SELECT * FROM t2,t3 WHERE t2.c1=t3.c1 AND t2.c3=t3.c3;
185 UPDATE t1,t2 SET t1.c2='22222.22222' WHERE t1.c1=t2.c1 AND t1.c2=t2.c2;
187 --sorted_result
188 SELECT * FROM t1;
189 --sorted_result
190 SELECT * FROM t2;
191 --sorted_result
192 SELECT * FROM t3;
193 --sorted_result
194 SELECT * FROM t4;
195 #Drop tables;
196 DROP TABLE IF EXISTS t1,t2,t3,t4;