Loading mysql-test/r/errors.result +13 −0 Original line number Diff line number Diff line Loading @@ -28,3 +28,16 @@ ERROR 42000: Display width out of range for column 'a' (max = 255) set sql_mode='traditional'; create table t1 (a varchar(66000)); ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead set sql_mode=default; CREATE TABLE t1 (a INT); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); a INSERT INTO t1 VALUES(1); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); a 1 INSERT INTO t1 VALUES(2),(3); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); a 1 DROP TABLE t1; mysql-test/r/order_by.result +84 −0 Original line number Diff line number Diff line Loading @@ -906,6 +906,90 @@ ERROR 23000: Column 'val' in order clause is ambiguous SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val > 1; ERROR 23000: Column 'val' in order clause is ambiguous DROP TABLE t1; CREATE TABLE t1 (a int); INSERT INTO t1 VALUES (3), (2), (4), (1); SELECT a, IF(a IN (2,3), a, a+10) FROM t1 ORDER BY IF(a IN (2,3), a, a+10); a IF(a IN (2,3), a, a+10) 2 2 3 3 1 11 4 14 SELECT a, IF(a NOT IN (2,3), a, a+10) FROM t1 ORDER BY IF(a NOT IN (2,3), a, a+10); a IF(a NOT IN (2,3), a, a+10) 1 1 4 4 2 12 3 13 SELECT a, IF(a IN (2,3), a, a+10) FROM t1 ORDER BY IF(a NOT IN (2,3), a, a+10); a IF(a IN (2,3), a, a+10) 1 11 4 14 2 2 3 3 SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a BETWEEN 2 AND 3, a, a+10); a IF(a BETWEEN 2 AND 3, a, a+10) 2 2 3 3 1 11 4 14 SELECT a, IF(a NOT BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10); a IF(a NOT BETWEEN 2 AND 3, a, a+10) 1 1 4 4 2 12 3 13 SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10); a IF(a BETWEEN 2 AND 3, a, a+10) 1 11 4 14 2 2 3 3 SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2 FROM t1 GROUP BY x1, x2; x1 x2 3 4 1 2 SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2 FROM t1 GROUP BY x1, IF(a NOT IN (1,2), a, ''); x1 x2 3 4 1 2 SELECT a, a IN (1,2) FROM t1 ORDER BY a IN (1,2); a a IN (1,2) 3 0 4 0 2 1 1 1 SELECT a FROM t1 ORDER BY a IN (1,2); a 3 4 2 1 SELECT a+10 FROM t1 ORDER BY a IN (1,2); a+10 13 14 12 11 SELECT a, IF(a IN (1,2), a, a+10) FROM t1 ORDER BY IF(a IN (3,4), a, a+10); a IF(a IN (1,2), a, a+10) 3 13 4 14 1 1 2 2 DROP TABLE t1; create table t1 (a int not null, b int not null, c int not null); insert t1 values (1,1,1),(1,1,2),(1,2,1); select a, b from t1 group by a, b order by sum(c); Loading mysql-test/r/type_set.result +19 −0 Original line number Diff line number Diff line Loading @@ -66,3 +66,22 @@ ss ue ue DROP TABLE t1; create table t1(f1 set('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','128')); ERROR HY000: Too many strings for column f1 and SET create table t1(f1 set('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','1')); Warnings: Note 1291 Column 'f1' has duplicated value '1' in SET show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `f1` set('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','1') default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; mysql-test/t/errors.test +12 −0 Original line number Diff line number Diff line Loading @@ -40,5 +40,17 @@ create table t1 (a int(256)); set sql_mode='traditional'; --error 1074 create table t1 (a varchar(66000)); set sql_mode=default; # # Bug #27513: mysql 5.0.x + NULL pointer DoS # CREATE TABLE t1 (a INT); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); INSERT INTO t1 VALUES(1); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); INSERT INTO t1 VALUES(2),(3); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); DROP TABLE t1; # End of 5.0 tests mysql-test/t/order_by.test +35 −1 Original line number Diff line number Diff line Loading @@ -617,7 +617,6 @@ UPDATE bug25126 SET MissingCol = val ORDER BY MissingCol; UPDATE bug25126 SET MissingCol = MissingCol ORDER BY MissingCol; DROP TABLE bug25126; # # Bug #25427: crash when order by expression contains a name # that cannot be resolved unambiguously Loading @@ -633,6 +632,41 @@ SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val > 1; DROP TABLE t1; # # Bug #27532: ORDER/GROUP BY expressions with IN/BETWEEN and NOT IN/BETWEEN # CREATE TABLE t1 (a int); INSERT INTO t1 VALUES (3), (2), (4), (1); SELECT a, IF(a IN (2,3), a, a+10) FROM t1 ORDER BY IF(a IN (2,3), a, a+10); SELECT a, IF(a NOT IN (2,3), a, a+10) FROM t1 ORDER BY IF(a NOT IN (2,3), a, a+10); SELECT a, IF(a IN (2,3), a, a+10) FROM t1 ORDER BY IF(a NOT IN (2,3), a, a+10); SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a BETWEEN 2 AND 3, a, a+10); SELECT a, IF(a NOT BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10); SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10); SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2 FROM t1 GROUP BY x1, x2; SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2 FROM t1 GROUP BY x1, IF(a NOT IN (1,2), a, ''); # The remaining queries are for better coverage SELECT a, a IN (1,2) FROM t1 ORDER BY a IN (1,2); SELECT a FROM t1 ORDER BY a IN (1,2); SELECT a+10 FROM t1 ORDER BY a IN (1,2); SELECT a, IF(a IN (1,2), a, a+10) FROM t1 ORDER BY IF(a IN (3,4), a, a+10); DROP TABLE t1; # End of 4.1 create table t1 (a int not null, b int not null, c int not null); insert t1 values (1,1,1),(1,1,2),(1,2,1); select a, b from t1 group by a, b order by sum(c); Loading Loading
mysql-test/r/errors.result +13 −0 Original line number Diff line number Diff line Loading @@ -28,3 +28,16 @@ ERROR 42000: Display width out of range for column 'a' (max = 255) set sql_mode='traditional'; create table t1 (a varchar(66000)); ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead set sql_mode=default; CREATE TABLE t1 (a INT); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); a INSERT INTO t1 VALUES(1); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); a 1 INSERT INTO t1 VALUES(2),(3); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); a 1 DROP TABLE t1;
mysql-test/r/order_by.result +84 −0 Original line number Diff line number Diff line Loading @@ -906,6 +906,90 @@ ERROR 23000: Column 'val' in order clause is ambiguous SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val > 1; ERROR 23000: Column 'val' in order clause is ambiguous DROP TABLE t1; CREATE TABLE t1 (a int); INSERT INTO t1 VALUES (3), (2), (4), (1); SELECT a, IF(a IN (2,3), a, a+10) FROM t1 ORDER BY IF(a IN (2,3), a, a+10); a IF(a IN (2,3), a, a+10) 2 2 3 3 1 11 4 14 SELECT a, IF(a NOT IN (2,3), a, a+10) FROM t1 ORDER BY IF(a NOT IN (2,3), a, a+10); a IF(a NOT IN (2,3), a, a+10) 1 1 4 4 2 12 3 13 SELECT a, IF(a IN (2,3), a, a+10) FROM t1 ORDER BY IF(a NOT IN (2,3), a, a+10); a IF(a IN (2,3), a, a+10) 1 11 4 14 2 2 3 3 SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a BETWEEN 2 AND 3, a, a+10); a IF(a BETWEEN 2 AND 3, a, a+10) 2 2 3 3 1 11 4 14 SELECT a, IF(a NOT BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10); a IF(a NOT BETWEEN 2 AND 3, a, a+10) 1 1 4 4 2 12 3 13 SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10); a IF(a BETWEEN 2 AND 3, a, a+10) 1 11 4 14 2 2 3 3 SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2 FROM t1 GROUP BY x1, x2; x1 x2 3 4 1 2 SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2 FROM t1 GROUP BY x1, IF(a NOT IN (1,2), a, ''); x1 x2 3 4 1 2 SELECT a, a IN (1,2) FROM t1 ORDER BY a IN (1,2); a a IN (1,2) 3 0 4 0 2 1 1 1 SELECT a FROM t1 ORDER BY a IN (1,2); a 3 4 2 1 SELECT a+10 FROM t1 ORDER BY a IN (1,2); a+10 13 14 12 11 SELECT a, IF(a IN (1,2), a, a+10) FROM t1 ORDER BY IF(a IN (3,4), a, a+10); a IF(a IN (1,2), a, a+10) 3 13 4 14 1 1 2 2 DROP TABLE t1; create table t1 (a int not null, b int not null, c int not null); insert t1 values (1,1,1),(1,1,2),(1,2,1); select a, b from t1 group by a, b order by sum(c); Loading
mysql-test/r/type_set.result +19 −0 Original line number Diff line number Diff line Loading @@ -66,3 +66,22 @@ ss ue ue DROP TABLE t1; create table t1(f1 set('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','128')); ERROR HY000: Too many strings for column f1 and SET create table t1(f1 set('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','1')); Warnings: Note 1291 Column 'f1' has duplicated value '1' in SET show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `f1` set('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','1') default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1;
mysql-test/t/errors.test +12 −0 Original line number Diff line number Diff line Loading @@ -40,5 +40,17 @@ create table t1 (a int(256)); set sql_mode='traditional'; --error 1074 create table t1 (a varchar(66000)); set sql_mode=default; # # Bug #27513: mysql 5.0.x + NULL pointer DoS # CREATE TABLE t1 (a INT); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); INSERT INTO t1 VALUES(1); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); INSERT INTO t1 VALUES(2),(3); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); DROP TABLE t1; # End of 5.0 tests
mysql-test/t/order_by.test +35 −1 Original line number Diff line number Diff line Loading @@ -617,7 +617,6 @@ UPDATE bug25126 SET MissingCol = val ORDER BY MissingCol; UPDATE bug25126 SET MissingCol = MissingCol ORDER BY MissingCol; DROP TABLE bug25126; # # Bug #25427: crash when order by expression contains a name # that cannot be resolved unambiguously Loading @@ -633,6 +632,41 @@ SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val > 1; DROP TABLE t1; # # Bug #27532: ORDER/GROUP BY expressions with IN/BETWEEN and NOT IN/BETWEEN # CREATE TABLE t1 (a int); INSERT INTO t1 VALUES (3), (2), (4), (1); SELECT a, IF(a IN (2,3), a, a+10) FROM t1 ORDER BY IF(a IN (2,3), a, a+10); SELECT a, IF(a NOT IN (2,3), a, a+10) FROM t1 ORDER BY IF(a NOT IN (2,3), a, a+10); SELECT a, IF(a IN (2,3), a, a+10) FROM t1 ORDER BY IF(a NOT IN (2,3), a, a+10); SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a BETWEEN 2 AND 3, a, a+10); SELECT a, IF(a NOT BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10); SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1 ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10); SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2 FROM t1 GROUP BY x1, x2; SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2 FROM t1 GROUP BY x1, IF(a NOT IN (1,2), a, ''); # The remaining queries are for better coverage SELECT a, a IN (1,2) FROM t1 ORDER BY a IN (1,2); SELECT a FROM t1 ORDER BY a IN (1,2); SELECT a+10 FROM t1 ORDER BY a IN (1,2); SELECT a, IF(a IN (1,2), a, a+10) FROM t1 ORDER BY IF(a IN (3,4), a, a+10); DROP TABLE t1; # End of 4.1 create table t1 (a int not null, b int not null, c int not null); insert t1 values (1,1,1),(1,1,2),(1,2,1); select a, b from t1 group by a, b order by sum(c); Loading