1# 2# Bug with order by 3# 4 5--disable_warnings 6drop table if exists t1,t2,t3; 7--enable_warnings 8 9CREATE TABLE t1 ( 10 id int(6) DEFAULT '0' NOT NULL, 11 idservice int(5), 12 clee char(20) NOT NULL, 13 flag char(1), 14 KEY id (id), 15 PRIMARY KEY (clee) 16); 17 18 19INSERT INTO t1 VALUES (2,4,'6067169d','Y'); 20INSERT INTO t1 VALUES (2,5,'606716d1','Y'); 21INSERT INTO t1 VALUES (2,1,'606717c1','Y'); 22INSERT INTO t1 VALUES (3,1,'6067178d','Y'); 23INSERT INTO t1 VALUES (2,6,'60671515','Y'); 24INSERT INTO t1 VALUES (2,7,'60671569','Y'); 25INSERT INTO t1 VALUES (2,3,'dd','Y'); 26 27CREATE TABLE t2 ( 28 id int(6) NOT NULL auto_increment, 29 description varchar(40) NOT NULL, 30 idform varchar(40), 31 ordre int(6) unsigned DEFAULT '0' NOT NULL, 32 image varchar(60), 33 PRIMARY KEY (id), 34 KEY id (id,ordre) 35); 36 37# 38# Dumping data for table 't2' 39# 40 41INSERT INTO t2 VALUES (1,'Emettre un appel d''offres','en_construction.html',10,'emettre.gif'); 42INSERT INTO t2 VALUES (2,'Emettre des soumissions','en_construction.html',20,'emettre.gif'); 43INSERT INTO t2 VALUES (7,'Liste des t2','t2_liste_form.phtml',51060,'link.gif'); 44INSERT INTO t2 VALUES (8,'Consulter les soumissions','consulter_soumissions.phtml',200,'link.gif'); 45INSERT INTO t2 VALUES (9,'Ajouter un type de materiel','typeMateriel_ajoute_form.phtml',51000,'link.gif'); 46INSERT INTO t2 VALUES (10,'Lister/modifier un type de materiel','typeMateriel_liste_form.phtml',51010,'link.gif'); 47INSERT INTO t2 VALUES (3,'Créer une fiche de client','clients_ajoute_form.phtml',40000,'link.gif'); 48INSERT INTO t2 VALUES (4,'Modifier des clients','en_construction.html',40010,'link.gif'); 49INSERT INTO t2 VALUES (5,'Effacer des clients','en_construction.html',40020,'link.gif'); 50INSERT INTO t2 VALUES (6,'Ajouter un service','t2_ajoute_form.phtml',51050,'link.gif'); 51 52 53select t1.id,t1.idservice,t2.ordre,t2.description from t1, t2 where t1.id = 2 and t1.idservice = t2.id order by t2.ordre; 54 55drop table t1,t2; 56 57# 58# Test of ORDER BY on concat() result 59# 60 61create table t1 (first char(10),last char(10)); 62insert into t1 values ("Michael","Widenius"); 63insert into t1 values ("Allan","Larsson"); 64insert into t1 values ("David","Axmark"); 65select concat(first," ",last) as name from t1 order by name; 66select concat(last," ",first) as name from t1 order by name; 67drop table t1; 68 69# 70# bug in distinct + order by 71# 72 73create table t1 (i int); 74insert into t1 values(1),(2),(1),(2),(1),(2),(3); 75select distinct i from t1; 76select distinct i from t1 order by rand(5); 77select distinct i from t1 order by i desc; 78select distinct i from t1 order by 1-i; 79select distinct i from t1 order by mod(i,2),i; 80drop table t1; 81 82# 83# bug#3681 84# 85 86create table t1 ( pk int primary key, name varchar(255) not null, number varchar(255) not null); 87insert into t1 values (1, 'Gamma', '123'), (2, 'Gamma Ext', '123a'), (3, 'Alpha', '001'), (4, 'Beta', '200c'); 88select distinct t1.name as 'Building Name',t1.number as 'Building Number' from t1 order by t1.name asc; 89drop table t1; 90 91 92# 93# Order by on first index part 94# 95 96create table t1 (id int not null,col1 int not null,col2 int not null,index(col1)); 97insert into t1 values(1,2,2),(2,2,1),(3,1,2),(4,1,1),(5,1,4),(6,2,3),(7,3,1),(8,2,4); 98select * from t1 order by col1,col2; 99select col1 from t1 order by id; 100select col1 as id from t1 order by id; 101select concat(col1) as id from t1 order by id; 102drop table t1; 103 104# 105# Test of order by on field() 106# 107 108CREATE TABLE t1 (id int auto_increment primary key,aika varchar(40),aikakentta timestamp); 109insert into t1 (aika) values ('Keskiviikko'); 110insert into t1 (aika) values ('Tiistai'); 111insert into t1 (aika) values ('Maanantai'); 112insert into t1 (aika) values ('Sunnuntai'); 113 114SELECT FIELD(SUBSTRING(t1.aika,1,2),'Ma','Ti','Ke','To','Pe','La','Su') AS test FROM t1 ORDER by test; 115drop table t1; 116 117# 118# Test of ORDER BY on IF 119# 120 121CREATE TABLE t1 122( 123 a int unsigned NOT NULL, 124 b int unsigned NOT NULL, 125 c int unsigned NOT NULL, 126 UNIQUE(a), 127 INDEX(b), 128 INDEX(c) 129); 130 131CREATE TABLE t2 132( 133 c int unsigned NOT NULL, 134 i int unsigned NOT NULL, 135 INDEX(c) 136); 137 138CREATE TABLE t3 139( 140 c int unsigned NOT NULL, 141 v varchar(64), 142 INDEX(c) 143); 144 145INSERT INTO t1 VALUES (1,1,1); 146INSERT INTO t1 VALUES (2,1,2); 147INSERT INTO t1 VALUES (3,2,1); 148INSERT INTO t1 VALUES (4,2,2); 149INSERT INTO t2 VALUES (1,50); 150INSERT INTO t2 VALUES (2,25); 151INSERT INTO t3 VALUES (1,'123 Park Place'); 152INSERT INTO t3 VALUES (2,'453 Boardwalk'); 153 154SELECT a,b,if(b = 1,i,if(b = 2,v,'')) 155FROM t1 156LEFT JOIN t2 USING(c) 157LEFT JOIN t3 ON t3.c = t1.c; 158 159SELECT a,b,if(b = 1,i,if(b = 2,v,'')) 160FROM t1 161LEFT JOIN t2 ON t1.c = t2.c 162LEFT JOIN t3 ON t3.c = t1.c; 163 164SELECT a,b,if(b = 1,i,if(b = 2,v,'')) 165FROM t1 166LEFT JOIN t2 USING(c) 167LEFT JOIN t3 ON t3.c = t1.c 168ORDER BY a; 169 170SELECT a,b,if(b = 1,i,if(b = 2,v,'')) 171FROM t1 172LEFT JOIN t2 ON t1.c = t2.c 173LEFT JOIN t3 ON t3.c = t1.c 174ORDER BY a; 175 176drop table t1,t2,t3; 177 178# 179# Test of ORDER BY (Bug found by Dean Edmonds) 180# 181 182create table t1 (ID int not null primary key, TransactionID int not null); 183insert into t1 (ID, TransactionID) values (1, 87), (2, 89), (3, 92), (4, 94), (5, 486), (6, 490), (7, 753), (9, 828), (10, 832), (11, 834), (12, 840); 184create table t2 (ID int not null primary key, GroupID int not null); 185 insert into t2 (ID, GroupID) values (87, 87), (89, 89), (92, 92), (94, 94), (486, 486), (490, 490),(753, 753), (828, 828), (832, 832), (834, 834), (840, 840); 186create table t3 (ID int not null primary key, DateOfAction date not null); 187insert into t3 (ID, DateOfAction) values (87, '1999-07-19'), (89, '1999-07-19'), (92, '1999-07-19'), (94, '1999-07-19'), (486, '1999-07-18'), (490, '2000-03-27'), (753, '2000-03-28'), (828, '1999-07-27'), (832, '1999-07-27'),(834, '1999-07-27'), (840, '1999-07-27'); 188select t3.DateOfAction, t1.TransactionID from t1 join t2 join t3 where t2.ID = t1.TransactionID and t3.ID = t2.GroupID order by t3.DateOfAction, t1.TransactionID; 189select t3.DateOfAction, t1.TransactionID from t1 join t2 join t3 where t2.ID = t1.TransactionID and t3.ID = t2.GroupID order by t1.TransactionID,t3.DateOfAction; 190drop table t1,t2,t3; 191 192#bug reported by Wouter de Jong 193 194CREATE TABLE t1 ( 195 member_id int(11) NOT NULL auto_increment, 196 inschrijf_datum varchar(20) NOT NULL default '', 197 lastchange_datum varchar(20) NOT NULL default '', 198 nickname varchar(20) NOT NULL default '', 199 password varchar(8) NOT NULL default '', 200 voornaam varchar(30) NOT NULL default '', 201 tussenvoegsels varchar(10) NOT NULL default '', 202 achternaam varchar(50) NOT NULL default '', 203 straat varchar(100) NOT NULL default '', 204 postcode varchar(10) NOT NULL default '', 205 wijk varchar(40) NOT NULL default '', 206 plaats varchar(50) NOT NULL default '', 207 telefoon varchar(10) NOT NULL default '', 208 geboortedatum date NOT NULL default '0000-00-00', 209 geslacht varchar(5) NOT NULL default '', 210 email varchar(80) NOT NULL default '', 211 uin varchar(15) NOT NULL default '', 212 homepage varchar(100) NOT NULL default '', 213 internet varchar(15) NOT NULL default '', 214 scherk varchar(30) NOT NULL default '', 215 favo_boek varchar(50) NOT NULL default '', 216 favo_tijdschrift varchar(50) NOT NULL default '', 217 favo_tv varchar(50) NOT NULL default '', 218 favo_eten varchar(50) NOT NULL default '', 219 favo_muziek varchar(30) NOT NULL default '', 220 info text NOT NULL default '', 221 ipnr varchar(30) NOT NULL default '', 222 PRIMARY KEY (member_id) 223) ENGINE=MyISAM PACK_KEYS=1; 224 225insert into t1 (member_id) values (1),(2),(3); 226select member_id, nickname, voornaam FROM t1 227ORDER by lastchange_datum DESC LIMIT 2; 228drop table t1; 229 230# 231# Test optimization of ORDER BY DESC 232# 233 234create table t1 (a int not null, b int, c varchar(10), key (a, b, c)); 235insert into t1 values (1, NULL, NULL), (1, NULL, 'b'), (1, 1, NULL), (1, 1, 'b'), (1, 1, 'b'), (2, 1, 'a'), (2, 1, 'b'), (2, 2, 'a'), (2, 2, 'b'), (2, 3, 'c'),(1,3,'b'); 236 237explain select * from t1 where (a = 1 and b is null and c = 'b') or (a > 2) order by a desc; 238select * from t1 where (a = 1 and b is null and c = 'b') or (a > 2) order by a desc; 239explain select * from t1 where a >= 1 and a < 3 order by a desc; 240select * from t1 where a >= 1 and a < 3 order by a desc; 241explain select * from t1 where a = 1 order by a desc, b desc; 242select * from t1 where a = 1 order by a desc, b desc; 243explain select * from t1 where a = 1 and b is null order by a desc, b desc; 244select * from t1 where a = 1 and b is null order by a desc, b desc; 245explain select * from t1 where a >= 1 and a < 3 and b >0 order by a desc,b desc; 246explain select * from t1 where a = 2 and b >0 order by a desc,b desc; 247explain select * from t1 where a = 2 and b is null order by a desc,b desc; 248explain select * from t1 where a = 2 and (b is null or b > 0) order by a 249desc,b desc; 250explain select * from t1 where a = 2 and b > 0 order by a desc,b desc; 251explain select * from t1 where a = 2 and b < 2 order by a desc,b desc; 252explain select * from t1 where a = 1 order by b desc; 253select * from t1 where a = 1 order by b desc; 254# 255# Test things when we don't have NULL keys 256# 257 258alter table t1 modify b int not null, modify c varchar(10) not null; 259explain select * from t1 order by a, b, c; 260select * from t1 order by a, b, c; 261explain select * from t1 order by a desc, b desc, c desc; 262select * from t1 order by a desc, b desc, c desc; 263# test multiple ranges, NO_MAX_RANGE and EQ_RANGE 264explain select * from t1 where (a = 1 and b = 1 and c = 'b') or (a > 2) order by a desc; 265select * from t1 where (a = 1 and b = 1 and c = 'b') or (a > 2) order by a desc; 266# test NEAR_MAX, NO_MIN_RANGE 267explain select * from t1 where a < 2 and b <= 1 order by a desc, b desc; 268select * from t1 where a < 2 and b <= 1 order by a desc, b desc; 269select count(*) from t1 where a < 5 and b > 0; 270select * from t1 where a < 5 and b > 0 order by a desc,b desc; 271# test HA_READ_AFTER_KEY (at the end of the file), NEAR_MIN 272explain select * from t1 where a between 1 and 3 and b <= 1 order by a desc, b desc; 273select * from t1 where a between 1 and 3 and b <= 1 order by a desc, b desc; 274# test HA_READ_AFTER_KEY (in the middle of the file) 275explain select * from t1 where a between 0 and 1 order by a desc, b desc; 276select * from t1 where a between 0 and 1 order by a desc, b desc; 277drop table t1; 278 279 280CREATE TABLE t1 ( 281 gid int(10) unsigned NOT NULL auto_increment, 282 cid smallint(5) unsigned NOT NULL default '0', 283 PRIMARY KEY (gid), 284 KEY component_id (cid) 285) ENGINE=MyISAM; 286INSERT INTO t1 VALUES (103853,108),(103867,108),(103962,108),(104505,108),(104619,108),(104620,108); 287ALTER TABLE t1 add skr int(10) not null; 288 289CREATE TABLE t2 ( 290 gid int(10) unsigned NOT NULL default '0', 291 uid smallint(5) unsigned NOT NULL default '1', 292 sid tinyint(3) unsigned NOT NULL default '1', 293 PRIMARY KEY (gid), 294 KEY uid (uid), 295 KEY status_id (sid) 296) ENGINE=MyISAM; 297INSERT INTO t2 VALUES (103853,250,5),(103867,27,5),(103962,27,5),(104505,117,5),(104619,75,5),(104620,15,5); 298 299CREATE TABLE t3 ( 300 uid smallint(6) NOT NULL auto_increment, 301 PRIMARY KEY (uid) 302) ENGINE=MyISAM; 303INSERT INTO t3 VALUES (1),(15),(27),(75),(117),(250); 304ALTER TABLE t3 add skr int(10) not null; 305 306select t1.gid, t2.sid, t3.uid from t2, t1, t3 where t2.gid = t1.gid and t2.uid = t3.uid order by t3.uid, t1.gid; 307select t1.gid, t2.sid, t3.uid from t3, t2, t1 where t2.gid = t1.gid and t2.uid = t3.uid order by t3.uid, t1.gid; 308 309# The following ORDER BY can be optimimized 310EXPLAIN select t1.gid, t2.sid, t3.uid from t3, t2, t1 where t2.gid = t1.gid and t2.uid = t3.uid order by t1.gid, t3.uid; 311EXPLAIN SELECT t1.gid, t3.uid from t1, t3 where t1.gid = t3.uid order by t1.gid,t3.skr; 312 313# The following ORDER BY can't be optimimized 314EXPLAIN SELECT t1.gid, t2.sid, t3.uid from t2, t1, t3 where t2.gid = t1.gid and t2.uid = t3.uid order by t3.uid, t1.gid; 315EXPLAIN SELECT t1.gid, t3.uid from t1, t3 where t1.gid = t3.uid order by t3.skr,t1.gid; 316EXPLAIN SELECT t1.gid, t3.uid from t1, t3 where t1.skr = t3.uid order by t1.gid,t3.skr; 317drop table t1,t2,t3; 318 319# 320# Test of bug when doing an ORDER BY with const items 321# 322 323CREATE TABLE t1 ( 324 `titre` char(80) NOT NULL default '', 325 `numeropost` mediumint(8) unsigned NOT NULL auto_increment, 326 `date` datetime NOT NULL default '0000-00-00 00:00:00', 327 `auteur` char(35) NOT NULL default '', 328 `icone` tinyint(2) unsigned NOT NULL default '0', 329 `lastauteur` char(35) NOT NULL default '', 330 `nbrep` smallint(6) unsigned NOT NULL default '0', 331 `dest` char(35) NOT NULL default '', 332 `lu` tinyint(1) unsigned NOT NULL default '0', 333 `vue` mediumint(8) unsigned NOT NULL default '0', 334 `ludest` tinyint(1) unsigned NOT NULL default '0', 335 `ouvert` tinyint(1) unsigned NOT NULL default '1', 336 PRIMARY KEY (`numeropost`), 337 KEY `date` (`date`), 338 KEY `dest` (`dest`,`ludest`), 339 KEY `auteur` (`auteur`,`lu`), 340 KEY `auteur_2` (`auteur`,`date`), 341 KEY `dest_2` (`dest`,`date`) 342) CHECKSUM=1; 343 344CREATE TABLE t2 ( 345 `numeropost` mediumint(8) unsigned NOT NULL default '0', 346 `pseudo` char(35) NOT NULL default '', 347 PRIMARY KEY (`numeropost`,`pseudo`), 348 KEY `pseudo` (`pseudo`) 349); 350 351INSERT INTO t1 (titre,auteur,dest) VALUES ('test','joce','bug'); 352INSERT INTO t2 (numeropost,pseudo) VALUES (1,'joce'),(1,'bug'); 353SELECT titre,t1.numeropost,auteur,icone,nbrep,0,date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30; 354SELECT titre,numeropost,auteur,icone,nbrep,0,date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30; 355SELECT titre,t1.numeropost,auteur,icone,nbrep,'0',date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30; 356SELECT titre,numeropost,auteur,icone,nbrep,'0',date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30; 357drop table t1,t2; 358 359# 360# Test order by with NULL values 361# 362CREATE TABLE t1 (a int, b int); 363INSERT INTO t1 VALUES (1, 2); 364INSERT INTO t1 VALUES (3, 4); 365INSERT INTO t1 VALUES (5, NULL); 366SELECT * FROM t1 ORDER BY b; 367SELECT * FROM t1 ORDER BY b DESC; 368SELECT * FROM t1 ORDER BY (a + b); 369SELECT * FROM t1 ORDER BY (a + b) DESC; 370DROP TABLE t1; 371 372# 373# Test of FORCE INDEX ... ORDER BY 374# 375 376create table t1(id int not null auto_increment primary key, t char(12)); 377disable_query_log; 378let $1 = 1000; 379while ($1) 380 { 381 eval insert into t1(t) values ('$1'); 382 dec $1; 383 } 384enable_query_log; 385explain select id,t from t1 order by id; 386explain select id,t from t1 force index (primary) order by id; 387drop table t1; 388 389# 390# Test of test_if_subkey() function 391# 392CREATE TABLE t1 ( 393 FieldKey varchar(36) NOT NULL default '', 394 LongVal bigint(20) default NULL, 395 StringVal mediumtext, 396 KEY FieldKey (FieldKey), 397 KEY LongField (FieldKey,LongVal), 398 KEY StringField (FieldKey,StringVal(32)) 399); 400INSERT INTO t1 VALUES ('0',3,'0'),('0',2,'1'),('0',1,'2'),('1',2,'1'),('1',1,'3'), ('1',0,'2'),('2',3,'0'),('2',2,'1'),('2',1,'2'),('2',3,'0'),('2',2,'1'),('2',1,'2'),('3',2,'1'),('3',1,'2'),('3','3','3'); 401EXPLAIN SELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal; 402SELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal; 403EXPLAIN SELECT * FROM t1 ignore index (FieldKey, LongField) WHERE FieldKey > '2' ORDER BY LongVal; 404SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY LongVal; 405EXPLAIN SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY FieldKey, LongVal; 406SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY FieldKey, LongVal; 407DROP TABLE t1; 408# 409# Bug #1945 - Crashing bug with bad User Variables in UPDATE ... ORDER BY ... 410# 411CREATE TABLE t1 (a INT, b INT); 412SET @id=0; 413UPDATE t1 SET a=0 ORDER BY (a=@id), b; 414DROP TABLE t1; 415 416# 417# Bug when doing an order by on a 1 byte string (Bug #2147) 418# 419 420CREATE TABLE t1 ( id smallint(6) unsigned NOT NULL default '0', menu tinyint(4) NOT NULL default '0', KEY id (id), KEY menu (menu)) ENGINE=MyISAM; 421INSERT INTO t1 VALUES (11384, 2),(11392, 2); 422SELECT id FROM t1 WHERE id <11984 AND menu =2 ORDER BY id DESC LIMIT 1 ; 423drop table t1; 424 425# 426# REF_OR_NULL optimization + filesort (bug #2419) 427# 428 429create table t1(a int, b int, index(b)); 430insert into t1 values (2, 1), (1, 1), (4, NULL), (3, NULL), (6, 2), (5, 2); 431explain select * from t1 where b=1 or b is null order by a; 432select * from t1 where b=1 or b is null order by a; 433explain select * from t1 where b=2 or b is null order by a; 434select * from t1 where b=2 or b is null order by a; 435drop table t1; 436 437# 438# Bug #3155 - Strange results with index (x, y) ... WHERE ... ORDER BY pk 439# 440 441create table t1 (a int not null auto_increment, b int not null, c int not null, d int not null, 442key(a,b,d), key(c,b,a)); 443create table t2 like t1; 444insert into t1 values (NULL, 1, 2, 0), (NULL, 2, 1, 1), (NULL, 3, 4, 2), (NULL, 4, 3, 3); 445insert into t2 select null, b, c, d from t1; 446insert into t1 select null, b, c, d from t2; 447insert into t2 select null, b, c, d from t1; 448insert into t1 select null, b, c, d from t2; 449insert into t2 select null, b, c, d from t1; 450insert into t1 select null, b, c, d from t2; 451insert into t2 select null, b, c, d from t1; 452insert into t1 select null, b, c, d from t2; 453insert into t2 select null, b, c, d from t1; 454insert into t1 select null, b, c, d from t2; 455optimize table t1; 456set @row=10; 457insert into t1 select 1, b, c + (@row:=@row - 1) * 10, d - @row from t2 limit 10; 458select * from t1 where a=1 and b in (1) order by c, b, a; 459select * from t1 where a=1 and b in (1); 460drop table t1, t2; 461 462# 463# Bug #4302 464# Ambiguos order by when renamed column is identical to another in result. 465# Should not fail and prefer column from t1 for sorting. 466# 467create table t1 (col1 int, col int); 468create table t2 (col2 int, col int); 469insert into t1 values (1,1),(2,2),(3,3); 470insert into t2 values (1,3),(2,2),(3,1); 471select t1.* , t2.col as t2_col from t1 left join t2 on (t1.col1=t2.col2) 472 order by col; 473 474# 475# Let us also test various ambiguos and potentially ambiguos cases 476# related to aliases 477# 478--error 1052 479select col1 as col, col from t1 order by col; 480--error 1052 481select t1.col as c1, t2.col as c2 from t1, t2 where t1.col1=t2.col2 482 order by col; 483--error 1052 484select t1.col as c1, t2.col as c2 from t1, t2 where t1.col1=t2.col2 485 order by col; 486--error 1052 487select col1 from t1, t2 where t1.col1=t2.col2 order by col; 488--error 1052 489select t1.col as t1_col, t2.col2 from t1, t2 where t1.col1=t2.col2 490 order by col; 491 492select t1.col as t1_col, t2.col from t1, t2 where t1.col1=t2.col2 493 order by col; 494select col2 as c, col as c from t2 order by col; 495select col2 as col, col as col2 from t2 order by col; 496select t2.col2, t2.col, t2.col from t2 order by col; 497 498select t2.col2 as col from t2 order by t2.col; 499select t2.col2 as col, t2.col from t2 order by t2.col; 500select t2.col2, t2.col, t2.col from t2 order by t2.col; 501 502drop table t1, t2; 503 504# 505# Bug #5428: a problem with small max_sort_length value 506# 507 508create table t1 (a char(25)); 509insert into t1 set a = repeat('x', 20); 510insert into t1 set a = concat(repeat('x', 19), 'z'); 511insert into t1 set a = concat(repeat('x', 19), 'ab'); 512insert into t1 set a = concat(repeat('x', 19), 'aa'); 513set max_sort_length=20; 514select a from t1 order by a; 515drop table t1; 516 517# 518# Bug #7331 519# 520 521create table t1 ( 522 `sid` decimal(8,0) default null, 523 `wnid` varchar(11) not null default '', 524 key `wnid14` (`wnid`(4)), 525 key `wnid` (`wnid`) 526) engine=myisam default charset=latin1; 527 528insert into t1 (`sid`, `wnid`) values 529('10100','01019000000'),('37986','01019000000'),('37987','01019010000'), 530('39560','01019090000'),('37989','01019000000'),('37990','01019011000'), 531('37991','01019011000'),('37992','01019019000'),('37993','01019030000'), 532('37994','01019090000'),('475','02070000000'),('25253','02071100000'), 533('25255','02071100000'),('25256','02071110000'),('25258','02071130000'), 534('25259','02071190000'),('25260','02071200000'),('25261','02071210000'), 535('25262','02071290000'),('25263','02071300000'),('25264','02071310000'), 536('25265','02071310000'),('25266','02071320000'),('25267','02071320000'), 537('25269','02071330000'),('25270','02071340000'),('25271','02071350000'), 538('25272','02071360000'),('25273','02071370000'),('25281','02071391000'), 539('25282','02071391000'),('25283','02071399000'),('25284','02071400000'), 540('25285','02071410000'),('25286','02071410000'),('25287','02071420000'), 541('25288','02071420000'),('25291','02071430000'),('25290','02071440000'), 542('25292','02071450000'),('25293','02071460000'),('25294','02071470000'), 543('25295','02071491000'),('25296','02071491000'),('25297','02071499000'); 544 545explain select * from t1 where wnid like '0101%' order by wnid; 546 547select * from t1 where wnid like '0101%' order by wnid; 548 549drop table t1; 550 551# 552# Bug #7672 - a wrong result for a select query in braces followed by order by 553# 554 555CREATE TABLE t1 (a int); 556INSERT INTO t1 VALUES (2), (1), (1), (2), (1); 557SELECT a FROM t1 ORDER BY a; 558(SELECT a FROM t1) ORDER BY a; 559DROP TABLE t1; 560 561# 562# Bug #18767: global ORDER BY applied to a SELECT with ORDER BY either was 563# ignored or 'concatened' to the latter. 564 565CREATE TABLE t1 (a int, b int); 566INSERT INTO t1 VALUES (1,30), (2,20), (1,10), (2,30), (1,20), (2,10); 567 568(SELECT b,a FROM t1 ORDER BY a,b) ORDER BY b,a; 569(SELECT b FROM t1 ORDER BY b DESC) ORDER BY b ASC; 570(SELECT b,a FROM t1 ORDER BY b,a) ORDER BY a,b; 571(SELECT b,a FROM t1 ORDER by b,a LIMIT 3) ORDER by a,b; 572 573DROP TABLE t1; 574 575# 576# Bug #22457: Column alias in ORDER BY works, but not if in an expression 577# 578 579CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1),(2); 580SELECT a + 1 AS num FROM t1 ORDER BY 30 - num; 581SELECT CONCAT('test', a) AS str FROM t1 ORDER BY UPPER(str); 582SELECT a + 1 AS num FROM t1 GROUP BY 30 - num; 583SELECT a + 1 AS num FROM t1 HAVING 30 - num; 584--error 1054 585SELECT a + 1 AS num, num + 1 FROM t1; 586SELECT a + 1 AS num, (select num + 2 FROM t1 LIMIT 1) FROM t1; 587--error 1054 588SELECT a.a + 1 AS num FROM t1 a JOIN t1 b ON num = b.a; 589DROP TABLE t1; 590 591# 592# Bug#25126: Reference to non-existant column in UPDATE...ORDER BY... 593# crashes server 594# 595CREATE TABLE bug25126 ( 596 val int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY 597); 598--error 1054 599UPDATE bug25126 SET MissingCol = MissingCol; 600--error 1054 601UPDATE bug25126 SET val = val ORDER BY MissingCol; 602UPDATE bug25126 SET val = val ORDER BY val; 603UPDATE bug25126 SET val = 1 ORDER BY val; 604--error 1054 605UPDATE bug25126 SET val = 1 ORDER BY MissingCol; 606--error 1054 607UPDATE bug25126 SET val = 1 ORDER BY val, MissingCol; 608--error 1054 609UPDATE bug25126 SET val = MissingCol ORDER BY MissingCol; 610--error 1054 611UPDATE bug25126 SET MissingCol = 1 ORDER BY val, MissingCol; 612--error 1054 613UPDATE bug25126 SET MissingCol = 1 ORDER BY MissingCol; 614--error 1054 615UPDATE bug25126 SET MissingCol = val ORDER BY MissingCol; 616--error 1054 617UPDATE bug25126 SET MissingCol = MissingCol ORDER BY MissingCol; 618DROP TABLE bug25126; 619 620# 621# Bug #25427: crash when order by expression contains a name 622# that cannot be resolved unambiguously 623# 624 625CREATE TABLE t1 (a int); 626 627SELECT p.a AS val, q.a AS val1 FROM t1 p, t1 q ORDER BY val > 1; 628--error 1052 629SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val; 630--error 1052 631SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val > 1; 632 633DROP TABLE t1; 634 635# 636# Bug #27532: ORDER/GROUP BY expressions with IN/BETWEEN and NOT IN/BETWEEN 637# 638 639CREATE TABLE t1 (a int); 640INSERT INTO t1 VALUES (3), (2), (4), (1); 641 642SELECT a, IF(a IN (2,3), a, a+10) FROM t1 643 ORDER BY IF(a IN (2,3), a, a+10); 644SELECT a, IF(a NOT IN (2,3), a, a+10) FROM t1 645 ORDER BY IF(a NOT IN (2,3), a, a+10); 646SELECT a, IF(a IN (2,3), a, a+10) FROM t1 647 ORDER BY IF(a NOT IN (2,3), a, a+10); 648 649SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1 650 ORDER BY IF(a BETWEEN 2 AND 3, a, a+10); 651SELECT a, IF(a NOT BETWEEN 2 AND 3, a, a+10) FROM t1 652 ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10); 653SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1 654 ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10); 655 656SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2 657 FROM t1 GROUP BY x1, x2; 658SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2 659 FROM t1 GROUP BY x1, IF(a NOT IN (1,2), a, ''); 660 661# The remaining queries are for better coverage 662SELECT a, a IN (1,2) FROM t1 ORDER BY a IN (1,2); 663SELECT a FROM t1 ORDER BY a IN (1,2); 664SELECT a+10 FROM t1 ORDER BY a IN (1,2); 665SELECT a, IF(a IN (1,2), a, a+10) FROM t1 666 ORDER BY IF(a IN (3,4), a, a+10); 667DROP TABLE t1; 668 669# End of 4.1 670create table t1 (a int not null, b int not null, c int not null); 671insert t1 values (1,1,1),(1,1,2),(1,2,1); 672select a, b from t1 group by a, b order by sum(c); 673drop table t1; 674 675# 676# Bug#21302: Result not properly sorted when using an ORDER BY on a second 677# table in a join 678# 679CREATE TABLE t1 (a int, b int, PRIMARY KEY (a)); 680INSERT INTO t1 VALUES (1,1), (2,2), (3,3); 681 682explain SELECT t1.b as a, t2.b as c FROM 683 t1 LEFT JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2) 684ORDER BY c; 685SELECT t2.b as c FROM 686 t1 LEFT JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2) 687ORDER BY c; 688 689# check that it still removes sort of const table 690explain SELECT t1.b as a, t2.b as c FROM 691 t1 JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2) 692ORDER BY c; 693 694CREATE TABLE t2 LIKE t1; 695INSERT INTO t2 SELECT * from t1; 696CREATE TABLE t3 LIKE t1; 697INSERT INTO t3 SELECT * from t1; 698CREATE TABLE t4 LIKE t1; 699INSERT INTO t4 SELECT * from t1; 700INSERT INTO t1 values (0,0),(4,4); 701 702SELECT t2.b FROM t1 LEFT JOIN (t2, t3 LEFT JOIN t4 ON t3.a=t4.a) 703ON (t1.a=t2.a AND t1.b=t3.b) order by t2.b; 704 705DROP TABLE t1,t2,t3,t4; 706 707# 708# Bug#25376: Incomplete setup of ORDER BY clause results in a wrong result. 709# 710create table t1 (a int, b int, c int); 711insert into t1 values (1,2,3), (9,8,3), (19,4,3), (1,4,9); 712select a,(sum(b)/sum(c)) as ratio from t1 group by a order by sum(b)/sum(c) asc; 713drop table t1; 714 715# 716# Bug#26672: Incorrect SEC_TO_TIME() casting in ORDER BY 717# 718CREATE TABLE t1 (a INT UNSIGNED NOT NULL, b TIME); 719INSERT INTO t1 (a) VALUES (100000), (0), (100), (1000000),(10000), (1000), (10); 720UPDATE t1 SET b = SEC_TO_TIME(a); 721 722# Correct ORDER 723SELECT a, b FROM t1 ORDER BY b DESC; 724 725# must be ordered as the above 726SELECT a, b FROM t1 ORDER BY SEC_TO_TIME(a) DESC; 727 728DROP TABLE t1; 729 730# 731# BUG#16590: Optimized does not do right "const" table pre-read 732# 733CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), UNIQUE KEY b (b)); 734INSERT INTO t1 VALUES (1,1),(2,2); 735 736CREATE TABLE t2 (a INT, b INT, KEY a (a,b)); 737INSERT INTO t2 VALUES (1,1),(1,2),(2,1),(2,2); 738 739EXPLAIN SELECT 1 FROM t1,t2 WHERE t1.b=2 AND t1.a=t2.a ORDER BY t2.b; 740 741DROP TABLE t1,t2; 742 743# End of 5.0 744 745# 746# Bug #28404: query with ORDER BY and ref access 747# 748 749CREATE TABLE t1( 750 id int auto_increment PRIMARY KEY, c2 int, c3 int, INDEX k2(c2), INDEX k3(c3)); 751 752INSERT INTO t1 (c2,c3) VALUES 753 (31,34),(35,38),(34,31),(32,35),(31,39), 754 (11,14),(15,18),(14,11),(12,15),(11,19); 755 756INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 757INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 758INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 759INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 760INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 761INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 762INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 763INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 764INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 765INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 766INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 767INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1; 768UPDATE t1 SET c2=20 WHERE id%100 = 0; 769SELECT COUNT(*) FROM t1; 770 771CREATE TABLE t2 LIKE t1; 772INSERT INTO t2 SELECT * FROM t1 ORDER BY id; 773 774EXPLAIN SELECT id,c3 FROM t2 WHERE c2=11 ORDER BY c3 LIMIT 20; 775EXPLAIN SELECT id,c3 FROM t2 WHERE c2=11 ORDER BY c3 LIMIT 4000; 776EXPLAIN SELECT id,c3 FROM t2 WHERE c2 BETWEEN 10 AND 12 ORDER BY c3 LIMIT 20; 777EXPLAIN SELECT id,c3 FROM t2 WHERE c2 BETWEEN 20 AND 30 ORDER BY c3 LIMIT 4000; 778 779SELECT id,c3 FROM t2 WHERE c2=11 ORDER BY c3 LIMIT 20; 780 781DROP TABLE t1,t2; 782 783# 784# Bug #30665: Inconsistent optimization of IGNORE INDEX FOR {ORDER BY|GROUP BY} 785# 786CREATE TABLE t1 ( 787 a INT, 788 b INT, 789 PRIMARY KEY (a), 790 KEY ab(a, b) 791); 792INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4); 793INSERT INTO t1 SELECT a + 4, b + 4 FROM t1; 794INSERT INTO t1 SELECT a + 8, b + 8 FROM t1; 795INSERT INTO t1 SELECT a +16, b +16 FROM t1; 796INSERT INTO t1 SELECT a +32, b +32 FROM t1; 797INSERT INTO t1 SELECT a +64, b +64 FROM t1; 798 799EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a; 800 801--disable_query_log 802--let $q = `show status like 'Created_tmp_tables';` 803eval set @tmp_tables_before = 804 CAST(REPLACE('$q', 'Created_tmp_tables', '') AS UNSIGNED); 805--enable_query_log 806 807SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a; 808 809# this query creates one temporary table in itself, which we are not 810# interested in. 811 812--disable_query_log 813--let $q = `show status like 'Created_tmp_tables';` 814eval set @tmp_tables_after = 815 CAST(REPLACE('$q', 'Created_tmp_tables', '') AS UNSIGNED); 816--enable_query_log 817 818SELECT @tmp_tables_after = @tmp_tables_before ; 819 820EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a; 821 822--disable_query_log 823--let $q = `show status like 'Created_tmp_tables';` 824eval set @tmp_tables_before = 825 CAST(REPLACE('$q', 'Created_tmp_tables', '') AS UNSIGNED); 826--enable_query_log 827 828SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a; 829 830--disable_query_log 831--let $q = `show status like 'Created_tmp_tables';` 832eval set @tmp_tables_after = 833 CAST(REPLACE('$q', 'Created_tmp_tables', '') AS UNSIGNED); 834--enable_query_log 835 836SELECT @tmp_tables_after = @tmp_tables_before; 837 838DROP TABLE t1; 839--echo # 840--echo # Bug#31590: Wrong error message on sort buffer being too small. 841--echo # 842create table t1(a int, b tinytext); 843insert into t1 values (1,2),(3,2); 844set session sort_buffer_size= 30000; 845set session max_sort_length= 2180; 846CALL mtr.add_suppression("Out of sort memory"); 847--error ER_OUT_OF_SORTMEMORY 848select * from t1 order by b; 849drop table t1; 850call mtr.add_suppression("Out of sort memory; increase server sort buffer size"); 851--echo # 852--echo # Bug #39844: Query Crash Mysql Server 5.0.67 853--echo # 854 855CREATE TABLE t1 (a INT PRIMARY KEY); 856CREATE TABLE t2 (a INT PRIMARY KEY, b INT); 857CREATE TABLE t3 (c INT); 858 859INSERT INTO t1 (a) VALUES (1), (2); 860INSERT INTO t2 (a,b) VALUES (1,2), (2,3); 861INSERT INTO t3 (c) VALUES (1), (2); 862 863SELECT 864 (SELECT t1.a FROM t1, t2 WHERE t1.a = t2.b AND t2.a = t3.c ORDER BY t1.a) 865 FROM t3; 866 867DROP TABLE t1, t2, t3; 868 869 870--echo # 871--echo # Bug #42760: Select doesn't return desired results when we have null 872--echo # values 873--echo # 874 875CREATE TABLE t1 ( 876 a INT, 877 c INT, 878 UNIQUE KEY a_c (a,c), 879 KEY (a)); 880 881INSERT INTO t1 VALUES (1, 10), (2, NULL); 882 883--echo # Must use ref-or-null on the a_c index 884EXPLAIN 885SELECT 1 AS col FROM t1 WHERE a=2 AND (c=10 OR c IS NULL) ORDER BY c; 886--echo # Must return 1 row 887SELECT 1 AS col FROM t1 WHERE a=2 AND (c=10 OR c IS NULL) ORDER BY c; 888 889# part 2 of the problem : DESC test cases 890--echo # Must use ref-or-null on the a_c index 891--replace_column 1 x 2 x 3 x 6 x 7 x 8 x 9 x 10 x 892EXPLAIN 893SELECT 1 AS col FROM t1 WHERE a=2 AND (c=10 OR c IS NULL) ORDER BY c DESC; 894--echo # Must return 1 row 895SELECT 1 AS col FROM t1 WHERE a=2 AND (c=10 OR c IS NULL) ORDER BY c DESC; 896 897 898DROP TABLE t1; 899 900 901--echo End of 5.0 tests 902 903 904# 905# Bug #35206: select query result different if the key is indexed or not 906# 907 908CREATE TABLE t2 (a varchar(32), b int(11), c float, d double, 909 UNIQUE KEY a (a,b,c), KEY b (b), KEY c (c)); 910 911CREATE TABLE t1 (a varchar(32), b char(3), UNIQUE KEY a (a,b), KEY b (b)); 912CREATE TABLE t3 (a varchar(32), b char(3), UNIQUE KEY a (a,b)); 913 914--disable_query_log 915INSERT INTO t1 (a, b) VALUES 916('domestic', 'CH'), ('domestic', 'LI'), ('plfcz1', 'FR'), ('all', 'AD'), 917('all', 'AE'), ('all', 'AF'), ('all', 'AG'), ('all', 'AI'), ('all', 'AL'), 918('all', 'AM'), ('all', 'AN'), ('all', 'AO'), ('all', 'AP'), ('all', 'AQ'), 919('all', 'AR'), ('all', 'AS'), ('all', 'AT'), ('all', 'AU'), ('all', 'AW'), 920('all', 'AZ'), ('all', 'BA'), ('all', 'BB'), ('all', 'BD'), ('all', 'BE'), 921('all', 'BF'), ('all', 'BG'), ('all', 'BH'), ('all', 'BI'), ('all', 'BJ'), 922('all', 'BM'), ('all', 'BN'), ('all', 'BO'), ('all', 'BR'), ('all', 'BS'), 923('all', 'BT'), ('all', 'BV'), ('all', 'BW'), ('all', 'BY'), ('all', 'BZ'), 924('all', 'CA'), ('all', 'CC'), ('all', 'CD'), ('all', 'CF'), ('all', 'CG'), 925('all', 'CH'), ('all', 'CI'), ('all', 'CK'), ('all', 'CL'), ('all', 'CM'), 926('all', 'CN'), ('all', 'CO'), ('all', 'CR'), ('all', 'CU'), ('all', 'CV'), 927('all', 'CX'), ('all', 'CY'), ('all', 'CZ'), ('all', 'DE'), ('all', 'DJ'), 928('all', 'DK'), ('all', 'DM'), ('all', 'DO'), ('all', 'DZ'), ('all', 'EC'), 929('all', 'EE'), ('all', 'EG'), ('all', 'EH'), ('all', 'EI'), ('all', 'ER'), 930('all', 'ES'), ('all', 'ET'), ('all', 'FI'), ('all', 'FJ'), ('all', 'FK'), 931('all', 'FM'), ('all', 'FO'), ('all', 'FR'), ('all', 'FX'), ('all', 'GA'), 932('all', 'GB'), ('all', 'GD'), ('all', 'GE'), ('all', 'GF'), ('all', 'GH'), 933('all', 'GI'), ('all', 'GL'), ('all', 'GM'), ('all', 'GN'), ('all', 'GP'), 934('all', 'GQ'), ('all', 'GR'), ('all', 'GS'), ('all', 'GT'), ('all', 'GU'), 935('all', 'GW'), ('all', 'GY'), ('all', 'HK'), ('all', 'HM'), ('all', 'HN'), 936( 'all', 'HR'), ( 'all', 'HT'), ( 'all', 'HU'), ( 'all', 'ID'), ( 'all', 'IE'), 937( 'all', 'IL'), ( 'all', 'IN'), ( 'all', 'IO'), ( 'all', 'IQ'), ( 'all', 'IR'), 938( 'all', 'IS'), ( 'all', 'IT'), ( 'all', 'JM'), ( 'all', 'JO'), ( 'all', 'JP'), 939( 'all', 'KE'), ( 'all', 'KG'), ( 'all', 'KH'), ( 'all', 'KI'), ( 'all', 'KM'), 940( 'all', 'KN'), ( 'all', 'KP'), ( 'all', 'KR'), ( 'all', 'KW'), ( 'all', 'KY'), 941( 'all', 'KZ'), ( 'all', 'LA'), ( 'all', 'LB'), ( 'all', 'LC'), ( 'all', 'LI'), 942( 'all', 'LK'), ( 'all', 'LR'), ( 'all', 'LS'), ( 'all', 'LT'), ( 'all', 'LU'), 943( 'all', 'LV'), ( 'all', 'LY'), ( 'all', 'MA'), ( 'all', 'MC'), ( 'all', 'MD'), 944( 'all', 'ME'), ( 'all', 'MG'), ( 'all', 'MH'), ( 'all', 'MK'), ( 'all', 'ML'), 945( 'all', 'MM'), ( 'all', 'MN'), ( 'all', 'MO'), ( 'all', 'MP'), ( 'all', 'MQ'), 946( 'all', 'MR'), ( 'all', 'MS'), ( 'all', 'MT'), ( 'all', 'MU'), ( 'all', 'MV'), 947( 'all', 'MW'), ( 'all', 'MX'), ( 'all', 'MY'), ( 'all', 'MZ'), ( 'all', 'NA'), 948( 'all', 'NC'), ( 'all', 'NE'), ( 'all', 'NF'), ( 'all', 'NG'), ( 'all', 'NI'), 949( 'all', 'NL'), ( 'all', 'NO'), ( 'all', 'NP'), ( 'all', 'NR'), ( 'all', 'NU'), 950( 'all', 'NV'), ( 'all', 'NZ'), ( 'all', 'OM'), ( 'all', 'PA'), ( 'all', 'PE'), 951( 'all', 'PF'), ( 'all', 'PG'), ( 'all', 'PH'), ( 'all', 'PK'), ( 'all', 'PL'), 952( 'all', 'PM'), ( 'all', 'PN'), ( 'all', 'PR'), ( 'all', 'PS'), ( 'all', 'PT'), 953( 'all', 'PW'), ( 'all', 'PY'), ( 'all', 'QA'), ( 'all', 'RE'), ( 'all', 'RO'), 954( 'all', 'RU'), ( 'all', 'RW'), ( 'all', 'SA'), ( 'all', 'SB'), ( 'all', 'SC'), 955( 'all', 'SD'), ( 'all', 'SE'), ( 'all', 'SG'), ( 'all', 'SH'), ( 'all', 'SI'), 956( 'all', 'SJ'), ( 'all', 'SK'), ( 'all', 'SL'), ( 'all', 'SM'), ( 'all', 'SN'), 957( 'all', 'SO'), ( 'all', 'SR'), ( 'all', 'ST'), ( 'all', 'SV'), ( 'all', 'SY'), 958( 'all', 'SZ'), ( 'all', 'TA'), ( 'all', 'TC'), ( 'all', 'TD'), ( 'all', 'TF'), 959( 'all', 'TG'), ( 'all', 'TH'), ( 'all', 'TJ'), ( 'all', 'TK'), ( 'all', 'TM'), 960( 'all', 'TN'), ( 'all', 'TO'), ( 'all', 'TP'), ( 'all', 'TR'), ( 'all', 'TT'), 961( 'all', 'TV'), ( 'all', 'TW'), ( 'all', 'TZ'), ( 'all', 'UA'), ( 'all', 'UG'), 962( 'all', 'UM'), ( 'all', 'US'), ( 'all', 'UY'), ( 'all', 'UZ'), ( 'all', 'VA'), 963( 'all', 'VC'), ( 'all', 'VE'), ( 'all', 'VG'), ( 'all', 'VI'), ( 'all', 'VN'), 964( 'all', 'VU'), ( 'all', 'WF'), ( 'all', 'WS'), ( 'plfcz1', 'FI'), 965( 'all', 'XE'), ( 'all', 'XS'), ( 'all', 'XU'), ( 'plfcz1', 'XE'), 966( 'all', 'YE'), ( 'all', 'YT'), ( 'all', 'YU'), ( 'all', 'ZA'), ( 'all', 'ZM'), 967( 'all', 'ZR'), ( 'all', 'ZW'), ( 'foreign', 'AD'), ( 'foreign', 'AE'), 968( 'foreign', 'AF'), ( 'foreign', 'AG'), ( 'foreign', 'AI'), 969( 'foreign', 'AL'), ( 'foreign', 'AM'), ( 'foreign', 'AN'), ( 'foreign', 'AO'), 970( 'foreign', 'AP'), ( 'foreign', 'AQ'), ( 'foreign', 'AR'), ( 'foreign', 'AS'), 971( 'foreign', 'AT'), ( 'foreign', 'AU'), ( 'foreign', 'AW'), ( 'foreign', 'AZ'), 972( 'foreign', 'BA'), ( 'foreign', 'BB'), ( 'foreign', 'BD'), ( 'foreign', 'BE'), 973( 'foreign', 'BF'), ( 'foreign', 'BG'), ( 'foreign', 'BH'), ( 'foreign', 'BI'), 974( 'foreign', 'BJ'), ( 'foreign', 'BM'), ( 'foreign', 'BN'), ( 'foreign', 'BO'), 975( 'foreign', 'BR'), ( 'foreign', 'BS'), ( 'foreign', 'BT'), ( 'foreign', 'BV'), 976( 'foreign', 'BW'), ( 'foreign', 'BY'), ( 'foreign', 'BZ'), ( 'foreign', 'CA'), 977( 'foreign', 'CC'), ( 'foreign', 'CD'), ( 'foreign', 'CF'), ( 'foreign', 'CG'), 978( 'foreign', 'CI'), ( 'foreign', 'CK'), ( 'foreign', 'CL'), ( 'foreign', 'CM'), 979( 'foreign', 'CN'), ( 'foreign', 'CO'), ( 'foreign', 'CR'), ( 'foreign', 'CU'), 980( 'foreign', 'CV'), ( 'foreign', 'CX'), ( 'foreign', 'CY'), ( 'foreign', 'CZ'), 981( 'foreign', 'DE'), ( 'foreign', 'DJ'), ( 'foreign', 'DK'), ( 'foreign', 'DM'), 982( 'foreign', 'DO'), ( 'foreign', 'DZ'), ( 'foreign', 'EC'), ( 'foreign', 'EE'), 983( 'foreign', 'EG'), ( 'foreign', 'EH'), ( 'foreign', 'EI'), ( 'foreign', 'ER'), 984( 'foreign', 'ES'), ( 'foreign', 'ET'), ( 'foreign', 'FI'), ( 'foreign', 'FJ'), 985( 'foreign', 'FK'), ( 'foreign', 'FM'), ( 'foreign', 'FO'), ( 'foreign', 'FR'), 986( 'foreign', 'FX'), ( 'foreign', 'GA'), ( 'foreign', 'GB'), ( 'foreign', 'GD'), 987( 'foreign', 'GE'), ( 'foreign', 'GF'), ( 'foreign', 'GH'), ( 'foreign', 'GI'), 988( 'foreign', 'GL'), ( 'foreign', 'GM'), ( 'foreign', 'GN'), ( 'foreign', 'GP'), 989( 'foreign', 'GQ'), ( 'foreign', 'GR'), ( 'foreign', 'GS'), ( 'foreign', 'GT'), 990( 'foreign', 'GU'), ( 'foreign', 'GW'), ( 'foreign', 'GY'), ( 'foreign', 'HK'), 991( 'foreign', 'HM'), ( 'foreign', 'HN'), ( 'foreign', 'HR'), ( 'foreign', 'HT'), 992( 'foreign', 'HU'), ( 'foreign', 'ID'), ( 'foreign', 'IE'), ( 'foreign', 'IL'), 993( 'foreign', 'IN'), ( 'foreign', 'IO'), ( 'foreign', 'IQ'), ( 'foreign', 'IR'), 994( 'foreign', 'IS'), ( 'foreign', 'IT'), ( 'foreign', 'JM'), ( 'foreign', 'JO'), 995( 'foreign', 'JP'), ( 'foreign', 'KE'), ( 'foreign', 'KG'), ( 'foreign', 'KH'), 996( 'foreign', 'KI'), ( 'foreign', 'KM'), ( 'foreign', 'KN'), ( 'foreign', 'KP'), 997( 'foreign', 'KR'), ( 'foreign', 'KW'), ( 'foreign', 'KY'), ( 'foreign', 'KZ'), 998( 'foreign', 'LA'), ( 'foreign', 'LB'), ( 'foreign', 'LC'), ( 'foreign', 'LK'), 999( 'foreign', 'LR'), ( 'foreign', 'LS'), ( 'foreign', 'LT'), ( 'foreign', 'LU'), 1000( 'foreign', 'LV'), ( 'foreign', 'LY'), ( 'foreign', 'MA'), ( 'foreign', 'MC'), 1001( 'foreign', 'MD'), ( 'foreign', 'ME'), ( 'foreign', 'MG'), ( 'foreign', 'MH'), 1002( 'foreign', 'MK'), ( 'foreign', 'ML'), ( 'foreign', 'MM'), ( 'foreign', 'MN'), 1003( 'foreign', 'MO'), ( 'foreign', 'MP'), ( 'foreign', 'MQ'), ( 'foreign', 'MR'), 1004( 'foreign', 'MS'), ( 'foreign', 'MT'), ( 'foreign', 'MU'), ( 'foreign', 'MV'), 1005( 'foreign', 'MW'), ( 'foreign', 'MX'), ( 'foreign', 'MY'), ( 'foreign', 'MZ'), 1006( 'foreign', 'NA'), ( 'foreign', 'NC'), ( 'foreign', 'NE'), ( 'foreign', 'NF'), 1007( 'foreign', 'NG'), ( 'foreign', 'NI'), ( 'foreign', 'NL'), ( 'foreign', 'NO'), 1008( 'foreign', 'NP'), ( 'foreign', 'NR'), ( 'foreign', 'NU'), ( 'foreign', 'NV'), 1009( 'foreign', 'NZ'), ( 'foreign', 'OM'), ( 'foreign', 'PA'), ( 'foreign', 'PE'), 1010( 'foreign', 'PF'), ( 'foreign', 'PG'), ( 'foreign', 'PH'), ( 'foreign', 'PK'), 1011( 'foreign', 'PL'), ( 'foreign', 'PM'), ( 'foreign', 'PN'), ( 'foreign', 'PR'), 1012( 'foreign', 'PS'), ( 'foreign', 'PT'), ( 'foreign', 'PW'), ( 'foreign', 'PY'), 1013( 'foreign', 'QA'), ( 'foreign', 'RE'), ( 'foreign', 'RO'), ( 'foreign', 'RU'), 1014( 'foreign', 'RW'), ( 'foreign', 'SA'), ( 'foreign', 'SB'), ( 'foreign', 'SC'), 1015( 'foreign', 'SD'), ( 'foreign', 'SE'), ( 'foreign', 'SG'), ( 'foreign', 'SH'), 1016( 'foreign', 'SI'), ( 'foreign', 'SJ'), ( 'foreign', 'SK'), ( 'foreign', 'SL'), 1017( 'foreign', 'SM'), ( 'foreign', 'SN'), ( 'foreign', 'SO'), ( 'foreign', 'SR'), 1018( 'foreign', 'ST'), ( 'foreign', 'SV'), ( 'foreign', 'SY'), ( 'foreign', 'SZ'), 1019( 'foreign', 'TA'), ( 'foreign', 'TC'), ( 'foreign', 'TD'), ( 'foreign', 'TF'), 1020( 'foreign', 'TG'), ( 'foreign', 'TH'), ( 'foreign', 'TJ'), ( 'foreign', 'TK'), 1021( 'foreign', 'TM'), ( 'foreign', 'TN'), ( 'foreign', 'TO'), ( 'foreign', 'TP'), 1022( 'foreign', 'TR'), ( 'foreign', 'TT'), ( 'foreign', 'TV'), ( 'foreign', 'TW'), 1023( 'foreign', 'TZ'), ( 'foreign', 'UA'), ( 'foreign', 'UG'), ( 'foreign', 'UM'), 1024( 'foreign', 'US'), ( 'foreign', 'UY'), ( 'foreign', 'UZ'), ( 'foreign', 'VA'), 1025( 'foreign', 'VC'), ( 'foreign', 'VE'), ( 'foreign', 'VG'), ( 'foreign', 'VI'), 1026( 'foreign', 'VN'), ( 'foreign', 'VU'), ( 'foreign', 'WF'), ( 'foreign', 'WS'), 1027( 'plfcz1', 'DK'), ( 'foreign', 'XE'), ( 'foreign', 'XS'), ( 'foreign', 'XU'), 1028( 'plfcz1', 'BE'), ( 'foreign', 'YE'), ( 'foreign', 'YT'), ( 'foreign', 'YU'), 1029( 'foreign', 'ZA'), ( 'foreign', 'ZM'), ( 'foreign', 'ZR'), ( 'foreign', 'ZW'), 1030( 'plfcz1', 'DE'), ( 'plfcz1', 'GI'), ( 'plfcz1', 'GR'), ( 'plfcz1', 'IS'), 1031( 'plfcz1', 'EI'), ( 'plfcz1', 'IT'), ( 'plfcz1', 'LU'), ( 'plfcz1', 'NL'), 1032( 'plfcz1', 'NO'), ( 'plfcz1', 'ES'), ( 'plfcz1', 'SE'), ( 'plfcz1', 'AL'), 1033( 'plfcz1', 'AD'), ( 'plfcz1', 'BY'), ( 'plfcz1', 'BA'), ( 'plfcz1', 'BG'), 1034( 'plfcz1', 'EE'), ( 'plfcz1', 'FO'), ( 'plfcz1', 'GL'), ( 'plfcz1', 'GB'), 1035( 'plfcz1', 'HR'), ( 'plfcz1', 'LV'), ( 'plfcz1', 'LT'), ( 'plfcz1', 'MT'), 1036( 'plfcz1', 'MK'), ( 'plfcz1', 'MD'), ( 'plfcz1', 'MC'), ( 'plfcz1', 'AT'), 1037( 'plfcz1', 'PL'), ( 'plfcz1', 'PT'), ( 'plfcz1', 'RO'), ( 'plfcz1', 'RU'), 1038( 'plfcz1', 'SM'), ( 'plfcz1', 'XS'), ( 'plfcz1', 'SK'), ( 'plfcz1', 'SI'), 1039( 'plfcz1', 'CZ'), ( 'plfcz1', 'TR'), ( 'plfcz1', 'UA'), ( 'plfcz1', 'HU'), 1040( 'plfcz1', 'VA'), ( 'plfcz1', 'CY'), ( 'plfcz2', 'AF'), ( 'plfcz2', 'DZ'), 1041( 'plfcz2', 'AS'), ( 'plfcz2', 'AO'), ( 'plfcz2', 'AI'), ( 'plfcz2', 'AQ'), 1042( 'plfcz2', 'AG'), ( 'plfcz2', 'AR'), ( 'plfcz2', 'AM'), ( 'plfcz2', 'AW'), 1043( 'plfcz2', 'AU'), ( 'plfcz2', 'AZ'), ( 'plfcz2', 'AP'), ( 'plfcz2', 'BS'), 1044( 'plfcz2', 'BH'), ( 'plfcz2', 'BD'), ( 'plfcz2', 'BB'), ( 'plfcz2', 'BZ'), 1045( 'plfcz2', 'BJ'), ( 'plfcz2', 'BM'), ( 'plfcz2', 'BT'), ( 'plfcz2', 'BO'), 1046( 'plfcz2', 'BW'), ( 'plfcz2', 'BV'), ( 'plfcz2', 'BR'), ( 'plfcz2', 'IO'), 1047( 'plfcz2', 'VG'), ( 'plfcz2', 'BN'), ( 'plfcz2', 'BF'), ( 'plfcz2', 'BI'), 1048( 'plfcz2', 'KH'), ( 'plfcz2', 'CM'), ( 'plfcz2', 'CA'), ( 'plfcz2', 'CV'), 1049( 'plfcz2', 'KY'), ( 'plfcz2', 'CF'), ( 'plfcz2', 'TD'), ( 'plfcz2', 'CL'), 1050( 'plfcz2', 'CN'), ( 'plfcz2', 'CX'), ( 'plfcz2', 'CC'), ( 'plfcz2', 'CO'), 1051( 'plfcz2', 'KM'), ( 'plfcz2', 'CG'), ( 'plfcz2', 'CD'), ( 'plfcz2', 'CK'), 1052( 'plfcz2', 'CR'), ( 'plfcz2', 'CI'), ( 'plfcz2', 'CU'), ( 'plfcz2', 'DJ'), 1053( 'plfcz2', 'DM'), ( 'plfcz2', 'DO'), ( 'plfcz2', 'TP'), ( 'plfcz2', 'EC'), 1054( 'plfcz2', 'EG'), ( 'plfcz2', 'SV'), ( 'plfcz2', 'GQ'), ( 'plfcz2', 'ER'), 1055( 'plfcz2', 'ET'), ( 'plfcz2', 'FK'), ( 'plfcz2', 'FJ'), ( 'plfcz2', 'FX'), 1056( 'plfcz2', 'GF'), ( 'plfcz2', 'PF'), ( 'plfcz2', 'TA'), ( 'plfcz2', 'TF'), 1057( 'plfcz2', 'GA'), ( 'plfcz2', 'GM'), ( 'plfcz2', 'GE'), ( 'plfcz2', 'GH'), 1058( 'plfcz2', 'GD'), ( 'plfcz2', 'GP'), ( 'plfcz2', 'GU'), ( 'plfcz2', 'GT'), 1059( 'plfcz2', 'GN'), ( 'plfcz2', 'GW'), ( 'plfcz2', 'GY'), ( 'plfcz2', 'HT'), 1060( 'plfcz2', 'HM'), ( 'plfcz2', 'HN'), ( 'plfcz2', 'HK'), ( 'plfcz2', 'IN'), 1061( 'plfcz2', 'ID'), ( 'plfcz2', 'IR'), ( 'plfcz2', 'IQ'), ( 'plfcz2', 'IE'), 1062( 'plfcz2', 'IL'), ( 'plfcz2', 'JM'), ( 'plfcz2', 'JP'), ( 'plfcz2', 'JO'), 1063( 'plfcz2', 'KZ'), ( 'plfcz2', 'KE'), ( 'plfcz2', 'KI'), ( 'plfcz2', 'KP'), 1064( 'plfcz2', 'KW'), ( 'plfcz2', 'KG'), ( 'plfcz2', 'LA'), ( 'plfcz2', 'LB'), 1065( 'plfcz2', 'LS'), ( 'plfcz2', 'LR'), ( 'plfcz2', 'LY'), ( 'plfcz2', 'MO'), 1066( 'plfcz2', 'MG'), ( 'plfcz2', 'ME'), ( 'plfcz2', 'MW'), ( 'plfcz2', 'MY'), 1067( 'plfcz2', 'MV'), ( 'plfcz2', 'ML'), ( 'plfcz2', 'MH'), ( 'plfcz2', 'MQ'), 1068( 'plfcz2', 'MR'), ( 'plfcz2', 'MU'), ( 'plfcz2', 'YT'), ( 'plfcz2', 'MX'), 1069( 'plfcz2', 'FM'), ( 'plfcz2', 'MN'), ( 'plfcz2', 'MS'), ( 'plfcz2', 'MA'), 1070( 'plfcz2', 'MZ'), ( 'plfcz2', 'MM'), ( 'plfcz2', 'NA'), ( 'plfcz2', 'NR'), 1071( 'plfcz2', 'NP'), ( 'plfcz2', 'AN'), ( 'plfcz2', 'NC'), ( 'plfcz2', 'NZ'), 1072( 'plfcz2', 'NI'), ( 'plfcz2', 'NE'), ( 'plfcz2', 'NG'), ( 'plfcz2', 'NU'), 1073( 'plfcz2', 'NF'), ( 'plfcz2', 'MP'), ( 'plfcz2', 'OM'), ( 'plfcz2', 'PK'), 1074( 'plfcz2', 'PW'), ( 'plfcz2', 'PS'), ( 'plfcz2', 'PA'), ( 'plfcz2', 'PG'), 1075( 'plfcz2', 'PY'), ( 'plfcz2', 'PE'), ( 'plfcz2', 'PH'), ( 'plfcz2', 'PN'), 1076( 'plfcz2', 'PR'), ( 'plfcz2', 'QA'), ( 'plfcz2', 'RE'), ( 'plfcz2', 'RW'), 1077( 'plfcz2', 'KN'), ( 'plfcz2', 'ST'), ( 'plfcz2', 'SA'), ( 'plfcz2', 'SN'), 1078( 'plfcz2', 'SC'), ( 'plfcz2', 'SL'), ( 'plfcz2', 'SG'), ( 'plfcz2', 'SB'), 1079( 'plfcz2', 'SO'), ( 'plfcz2', 'ZA'), ( 'plfcz2', 'GS'), ( 'plfcz2', 'KR'), 1080( 'plfcz2', 'LK'), ( 'plfcz2', 'NV'), ( 'plfcz2', 'SH'), ( 'plfcz2', 'LC'), 1081( 'plfcz2', 'PM'), ( 'plfcz2', 'VC'), ( 'plfcz2', 'SD'), ( 'plfcz2', 'SR'), 1082( 'plfcz2', 'SJ'), ( 'plfcz2', 'SZ'), ( 'plfcz2', 'SY'), ( 'plfcz2', 'TW'), 1083( 'plfcz2', 'TJ'), ( 'plfcz2', 'TZ'), ( 'plfcz2', 'TH'), ( 'plfcz2', 'TG'), 1084( 'plfcz2', 'TK'), ( 'plfcz2', 'TO'), ( 'plfcz2', 'TT'), ( 'plfcz2', 'XU'), 1085( 'plfcz2', 'TN'), ( 'plfcz2', 'TM'), ( 'plfcz2', 'TC'), ( 'plfcz2', 'TV'), 1086( 'plfcz2', 'UG'), ( 'plfcz2', 'AE'), ( 'plfcz2', 'US'), ( 'plfcz2', 'UM'), 1087( 'plfcz2', 'UY'), ( 'plfcz2', 'UZ'), ( 'plfcz2', 'VU'), ( 'plfcz2', 'VE'), 1088( 'plfcz2', 'VN'), ( 'plfcz2', 'VI'), ( 'plfcz2', 'WF'), ( 'plfcz2', 'EH'), 1089( 'plfcz2', 'WS'), ( 'plfcz2', 'YE'), ( 'plfcz2', 'YU'), ( 'plfcz2', 'ZR'), 1090( 'plfcz2', 'ZM'), ( 'plfcz2', 'ZW'), ( 'ppfcz1', 'AT'), ( 'ppfcz1', 'BE'), 1091( 'ppfcz1', 'DE'), ( 'ppfcz1', 'FR'), ( 'ppfcz1', 'FX'), ( 'ppfcz1', 'IT'), 1092( 'ppfcz1', 'LU'), ( 'ppfcz1', 'MC'), ( 'ppfcz1', 'NL'), ( 'ppfcz1', 'SM'), 1093( 'ppfcz1', 'VA'), ( 'ppfcz1', 'XE'), ( 'ppfcz2', 'AD'), ( 'ppfcz2', 'AL'), 1094( 'ppfcz2', 'BA'), ( 'ppfcz2', 'BG'), ( 'ppfcz2', 'BY'), ( 'ppfcz2', 'CY'), 1095( 'ppfcz2', 'CZ'), ( 'ppfcz2', 'DK'), ( 'ppfcz2', 'EE'), ( 'ppfcz2', 'EI'), 1096( 'ppfcz2', 'ES'), ( 'ppfcz2', 'FI'), ( 'ppfcz2', 'FO'), ( 'ppfcz2', 'GB'), 1097( 'ppfcz2', 'GI'), ( 'ppfcz2', 'GL'), ( 'ppfcz2', 'GR'), ( 'ppfcz2', 'HR'), 1098( 'ppfcz2', 'HU'), ( 'ppfcz2', 'IE'), ( 'ppfcz2', 'IS'), ( 'ppfcz2', 'LT'), 1099( 'ppfcz2', 'LV'), ( 'ppfcz2', 'MD'), ( 'ppfcz2', 'MK'), ( 'ppfcz2', 'MT'), 1100( 'ppfcz2', 'NO'), ( 'ppfcz2', 'PL'), ( 'ppfcz2', 'PT'), ( 'ppfcz2', 'RO'), 1101( 'ppfcz2', 'RU'), ( 'ppfcz2', 'SE'), ( 'ppfcz2', 'SI'), ( 'ppfcz2', 'SK'), 1102( 'ppfcz2', 'TR'), ( 'ppfcz2', 'UA'), ( 'ppfcz2', 'XS'), ( 'ppfcz2', 'YU'), 1103( 'ppfcz3', 'CA'), ( 'ppfcz3', 'DZ'), ( 'ppfcz3', 'EG'), ( 'ppfcz3', 'IL'), 1104( 'ppfcz3', 'JO'), ( 'ppfcz3', 'LB'), ( 'ppfcz3', 'LY'), ( 'ppfcz3', 'MA'), 1105( 'ppfcz3', 'MX'), ( 'ppfcz3', 'PM'), ( 'ppfcz3', 'SY'), ( 'ppfcz3', 'TN'), 1106( 'ppfcz3', 'US'), ( 'ppfcz4', 'AE'), ( 'ppfcz4', 'AF'), ( 'ppfcz4', 'AM'), 1107( 'ppfcz4', 'AO'), ( 'ppfcz4', 'AZ'), ( 'ppfcz4', 'BD'), ( 'ppfcz4', 'BF'), 1108( 'ppfcz4', 'BH'), ( 'ppfcz4', 'BI'), ( 'ppfcz4', 'BJ'), ( 'ppfcz4', 'BT'), 1109( 'ppfcz4', 'BV'), ( 'ppfcz4', 'BW'), ( 'ppfcz4', 'CF'), ( 'ppfcz4', 'CG'), 1110( 'ppfcz4', 'CI'), ( 'ppfcz4', 'CM'), ( 'ppfcz4', 'CN'), ( 'ppfcz4', 'DJ'), 1111( 'ppfcz4', 'DO'), ( 'ppfcz4', 'ER'), ( 'ppfcz4', 'ET'), ( 'ppfcz4', 'GA'), 1112( 'ppfcz4', 'GE'), ( 'ppfcz4', 'GH'), ( 'ppfcz4', 'GM'), ( 'ppfcz4', 'GN'), 1113( 'ppfcz4', 'GQ'), ( 'ppfcz4', 'GW'), ( 'ppfcz4', 'HK'), ( 'ppfcz4', 'IN'), 1114( 'ppfcz4', 'IQ'), ( 'ppfcz4', 'IR'), ( 'ppfcz4', 'JP'), ( 'ppfcz4', 'KE'), 1115( 'ppfcz4', 'KG'), ( 'ppfcz4', 'KH'), ( 'ppfcz4', 'KP'), ( 'ppfcz4', 'KW'), 1116( 'ppfcz4', 'KZ'), ( 'ppfcz4', 'LA'), ( 'ppfcz4', 'LK'), ( 'ppfcz4', 'LR'), 1117( 'ppfcz4', 'LS'), ( 'ppfcz4', 'MG'), ( 'ppfcz4', 'ML'), ( 'ppfcz4', 'MM'), 1118( 'ppfcz4', 'MN'), ( 'ppfcz4', 'MO'), ( 'ppfcz4', 'MR'), ( 'ppfcz4', 'MU'), 1119( 'ppfcz4', 'MV'), ( 'ppfcz4', 'MW'), ( 'ppfcz4', 'MY'), ( 'ppfcz4', 'MZ'), 1120( 'ppfcz4', 'NA'), ( 'ppfcz4', 'NE'), ( 'ppfcz4', 'NG'), ( 'ppfcz4', 'NP'), 1121( 'ppfcz4', 'OM'), ( 'ppfcz4', 'PK'), ( 'ppfcz4', 'QA'), ( 'ppfcz4', 'RE'), 1122( 'ppfcz4', 'RW'), ( 'ppfcz4', 'SA'), ( 'ppfcz4', 'SC'), ( 'ppfcz4', 'SD'), 1123( 'ppfcz4', 'SG'), ( 'ppfcz4', 'SH'), ( 'ppfcz4', 'SL'), ( 'ppfcz4', 'SN'), 1124( 'ppfcz4', 'SO'), ( 'ppfcz4', 'SZ'), ( 'ppfcz4', 'TD'), ( 'ppfcz4', 'TG'), 1125( 'ppfcz4', 'TH'), ( 'ppfcz4', 'TJ'), ( 'ppfcz4', 'TM'), ( 'ppfcz4', 'TW'), 1126( 'ppfcz4', 'TZ'), ( 'ppfcz4', 'UG'), ( 'ppfcz4', 'UZ'), ( 'ppfcz4', 'VN'), 1127( 'ppfcz4', 'XU'), ( 'ppfcz4', 'YT'), ( 'ppfcz4', 'ZA'), ( 'ppfcz4', 'ZW'), 1128( 'ppfcz5', 'AG'), ( 'ppfcz5', 'AI'), ( 'ppfcz5', 'AN'), ( 'ppfcz5', 'AP'), 1129( 'ppfcz5', 'AQ'), ( 'ppfcz5', 'AR'), ( 'ppfcz5', 'AS'), ( 'ppfcz5', 'AU'), 1130( 'ppfcz5', 'AW'), ( 'ppfcz5', 'BB'), ( 'ppfcz5', 'BM'), ( 'ppfcz5', 'BN'), 1131( 'ppfcz5', 'BO'), ( 'ppfcz5', 'BR'), ( 'ppfcz5', 'BS'), ( 'ppfcz5', 'BZ'), 1132( 'ppfcz5', 'CC'), ( 'ppfcz5', 'CD'), ( 'ppfcz5', 'CK'), ( 'ppfcz5', 'CL'), 1133( 'ppfcz5', 'CO'), ( 'ppfcz5', 'CR'), ( 'ppfcz5', 'CU'), ( 'ppfcz5', 'CV'), 1134( 'ppfcz5', 'CX'), ( 'ppfcz5', 'DM'), ( 'ppfcz5', 'EC'), ( 'ppfcz5', 'EH'), 1135( 'ppfcz5', 'FJ'), ( 'ppfcz5', 'FK'), ( 'ppfcz5', 'FM'), ( 'ppfcz5', 'GD'), 1136( 'ppfcz5', 'GF'), ( 'ppfcz5', 'GP'), ( 'ppfcz5', 'GS'), ( 'ppfcz5', 'GT'), 1137( 'ppfcz5', 'GU'), ( 'ppfcz5', 'GY'), ( 'ppfcz5', 'HM'), ( 'ppfcz5', 'HN'), 1138( 'ppfcz5', 'HT'), ( 'ppfcz5', 'ID'), ( 'ppfcz5', 'IO'), ( 'ppfcz5', 'JM'), 1139( 'ppfcz5', 'KI'), ( 'ppfcz5', 'KM'), ( 'ppfcz5', 'KN'), ( 'ppfcz5', 'KR'), 1140( 'ppfcz5', 'KY'), ( 'ppfcz5', 'LC'), ( 'ppfcz5', 'ME'), ( 'ppfcz5', 'MH'), 1141( 'ppfcz5', 'MP'), ( 'ppfcz5', 'MQ'), ( 'ppfcz5', 'MS'), ( 'ppfcz5', 'NC'), 1142( 'ppfcz5', 'NF'), ( 'ppfcz5', 'NI'), ( 'ppfcz5', 'NR'), ( 'ppfcz5', 'NU'), 1143( 'ppfcz5', 'NZ'), ( 'ppfcz5', 'PA'), ( 'ppfcz5', 'PE'), ( 'ppfcz5', 'PF'), 1144( 'ppfcz5', 'PG'), ( 'ppfcz5', 'PH'), ( 'ppfcz5', 'PN'), ( 'ppfcz5', 'PR'), 1145( 'ppfcz5', 'PS'), ( 'ppfcz5', 'PW'), ( 'ppfcz5', 'PY'), ( 'ppfcz5', 'SB'), 1146( 'ppfcz5', 'SJ'), ( 'ppfcz5', 'SR'), ( 'ppfcz5', 'ST'), ( 'ppfcz5', 'SV'), 1147( 'ppfcz5', 'TA'), ( 'ppfcz5', 'TC'), ( 'ppfcz5', 'TF'), ( 'ppfcz5', 'TK'), 1148( 'ppfcz5', 'TO'), ( 'ppfcz5', 'TP'), ( 'ppfcz5', 'TT'), ( 'ppfcz5', 'TV'), 1149( 'ppfcz5', 'UM'), ( 'ppfcz5', 'UY'), ( 'ppfcz5', 'VC'), ( 'ppfcz5', 'VE'), 1150( 'ppfcz5', 'VG'), ( 'ppfcz5', 'VI'), ( 'ppfcz5', 'VU'), ( 'ppfcz5', 'WF'), 1151( 'ppfcz5', 'WS'), ( 'ppfcz5', 'YE'), ( 'ppfcz5', 'ZM'), ( 'ppfcz5', 'ZR'); 1152 1153INSERT INTO t2 (a, b, c, d) VALUES 1154('domestic', 26, 0.25, 4.7), ('domestic', 27, 0.25, 6), 1155('domestic', 19, 2, 6.3), ('domestic', 19, 5, 7.77), 1156('domestic', 19, 10, 10.3), ('domestic', 19, 20, 14.83), 1157('domestic', 19, 30, 20.88), ('domestic', 20, 2, 7.3), 1158('domestic', 20, 5, 8.77), ('domestic', 20, 10, 11.3), 1159('domestic', 20, 20, 15.83), ('domestic', 20, 30, 21.88), 1160('domestic', 23, 2, 18.8), ('domestic', 23, 5, 20.8), 1161('domestic', 23, 10, 24.8), ('domestic', 23, 20, 27.8), 1162('domestic', 23, 30, 30.8), ('domestic', 24, 2, 21.1405), 1163('domestic', 24, 5, 22.3705), ('domestic', 24, 10, 25.0905), 1164('domestic', 24, 20, 29.7705), ('domestic', 24, 30, 35.9605), 1165('domestic', 17, 2, 7.2), ('domestic', 17, 5, 8.43), 1166('domestic', 17, 10, 11.15), ('domestic', 17, 20, 15.83), 1167('domestic', 17, 30, 22.02), ('domestic', 18, 2, 8.2), 1168('domestic', 18, 5, 9.43), ('domestic', 18, 10, 12.15), 1169('domestic', 18, 20, 16.83), ('domestic', 18, 30, 23.02), 1170('domestic', 28, 2, 17), ('domestic', 28, 5, 19), 1171('domestic', 28, 10, 22), ('domestic', 28, 20, 28), 1172('domestic', 28, 30, 35), ('domestic', 29, 30, 29.5), 1173('foreign', 25, 200, 0), ('domestic', 3, 100, 59), 1174('foreign', 10, 30, 0), ('foreign', 22, 0, 0), 1175('foreign', 11, 30, 0), ('foreign', 12, 30, 0), 1176('all', 1, 10000, 0), ('all', 2, 10000, 0), 1177('domestic', 9, 10000, 0), ('domestic', 4, 500, 0), 1178('domestic', 5, 500, 0), ('domestic', 6, 500, 0), 1179('domestic', 7, 500, 0), ('domestic', 8, 500, 0), 1180('domestic', 21, 3.9, 10.8), ('domestic', 21, 4.9, 12.2), 1181('domestic', 21, 9.9, 15.3), ('domestic', 21, 19.9, 20.6), 1182('domestic', 21, 30, 28.1), ('plfcz1', 16, 0.5, 19), 1183('plfcz2', 16, 0.5, 25), ( 'ppfcz2', 15, 16, 76.5), 1184( 'ppfcz2', 15, 15, 75.5), ( 'ppfcz2', 15, 14, 73.5), 1185( 'ppfcz2', 15, 13, 71.5), ( 'ppfcz2', 15, 12, 69.5), 1186( 'ppfcz2', 15, 11, 67.5), ( 'ppfcz2', 15, 10, 65.5), 1187( 'ppfcz2', 15, 9, 62.5), ( 'ppfcz2', 15, 8, 59.5), 1188( 'ppfcz2', 15, 7, 56.5), ( 'ppfcz2', 15, 6, 53.5), 1189( 'ppfcz2', 15, 5, 50.5), ( 'ppfcz2', 15, 4, 46.5), 1190( 'ppfcz2', 15, 3, 42.5), ( 'ppfcz2', 15, 2, 38.5), 1191('ppfcz1', 15, 2, 33.5), ('ppfcz1', 15, 3, 36.5), 1192('ppfcz1', 15, 4, 39.5), ('ppfcz1', 15, 5, 41.5), 1193('ppfcz1', 15, 6, 42.5), ('ppfcz1', 15, 7, 43.5), 1194('ppfcz1', 15, 8, 44.5), ('ppfcz1', 15, 9, 45.5), 1195('ppfcz1', 15, 10, 46.5), ('ppfcz1', 15, 11, 47.5), 1196( 'ppfcz1', 15, 12, 48.5), ( 'ppfcz1', 15, 13, 49.5), ( 'ppfcz1', 15, 14, 50.5), 1197( 'ppfcz1', 15, 15, 51.5), ( 'ppfcz1', 15, 16, 52.5), ( 'ppfcz1', 15, 17, 53.5), 1198( 'ppfcz1', 15, 18, 54.5), ( 'ppfcz1', 15, 19, 55.5), ( 'ppfcz1', 15, 20, 56.5), 1199( 'ppfcz1', 15, 21, 57.5), ( 'ppfcz1', 15, 22, 58.5), ( 'ppfcz1', 15, 23, 59.5), 1200( 'ppfcz1', 15, 24, 60.5), ( 'ppfcz1', 15, 25, 61.5), ( 'ppfcz1', 15, 26, 62.5), 1201( 'ppfcz1', 15, 27, 63.5), ( 'ppfcz1', 15, 28, 64.5), ( 'ppfcz1', 15, 29, 65.5), 1202( 'ppfcz1', 15, 30, 66.5), ( 'ppfcz2', 15, 17, 77.5), ( 'ppfcz2', 15, 18, 78.5), 1203( 'ppfcz2', 15, 19, 79.5), ( 'ppfcz2', 15, 20, 80.5), ( 'ppfcz2', 15, 21, 81.5), 1204( 'ppfcz2', 15, 22, 82.5), ( 'ppfcz2', 15, 23, 83.5), ( 'ppfcz2', 15, 24, 84.5), 1205( 'ppfcz2', 15, 25, 85.5), ( 'ppfcz2', 15, 26, 86.5), ( 'ppfcz2', 15, 27, 87.5), 1206( 'ppfcz2', 15, 28, 88.5), ( 'ppfcz2', 15, 29, 89.5), ( 'ppfcz2', 15, 30, 90.5), 1207( 'ppfcz3', 15, 2, 39.5), ( 'ppfcz3', 15, 3, 45.5), ( 'ppfcz3', 15, 4, 51.5), 1208( 'ppfcz3', 15, 5, 57.5), ( 'ppfcz3', 15, 6, 63.5), ( 'ppfcz3', 15, 7, 69.5), 1209( 'ppfcz3', 15, 8, 75.5), ( 'ppfcz3', 15, 9, 81.5), ( 'ppfcz3', 15, 10, 87.5), 1210( 'ppfcz3', 15, 11, 93.5), ( 'ppfcz3', 15, 12, 99.5), ( 'ppfcz3', 15, 13, 105.5), 1211( 'ppfcz3', 15, 14, 111.5), ( 'ppfcz3', 15, 15, 117.5), ( 'ppfcz3', 15, 16, 122.5), 1212( 'ppfcz3', 15, 17, 127.5), ( 'ppfcz3', 15, 18, 132.5), ( 'ppfcz3', 15, 19, 137.5), 1213( 'ppfcz3', 15, 20, 142.5), ( 'ppfcz3', 15, 21, 146.5), ( 'ppfcz3', 15, 22, 150.5), 1214( 'ppfcz3', 15, 23, 154.5), ( 'ppfcz3', 15, 24, 158.5), ( 'ppfcz3', 15, 25, 162.5), 1215( 'ppfcz3', 15, 26, 166.5), ( 'ppfcz3', 15, 27, 170.5), ( 'ppfcz3', 15, 28, 174.5), 1216( 'ppfcz3', 15, 29, 178.5), ( 'ppfcz3', 15, 30, 182.5), ( 'ppfcz4', 15, 2, 44.5), 1217( 'ppfcz4', 15, 3, 51.5), ( 'ppfcz4', 15, 4, 58.5), ( 'ppfcz4', 15, 5, 65.5), 1218( 'ppfcz4', 15, 6, 72.5), ( 'ppfcz4', 15, 7, 79.5), ( 'ppfcz4', 15, 8, 86.5), 1219( 'ppfcz4', 15, 9, 93.5), ( 'ppfcz4', 15, 10, 100.5), ( 'ppfcz4', 15, 11, 105.5), 1220( 'ppfcz4', 15, 12, 110.5), ( 'ppfcz4', 15, 13, 115.5), ( 'ppfcz4', 15, 14, 120.5), 1221( 'ppfcz4', 15, 15, 125.5), ( 'ppfcz4', 15, 16, 130.5), ( 'ppfcz4', 15, 17, 135.5), 1222( 'ppfcz4', 15, 18, 140.5), ( 'ppfcz4', 15, 19, 145.5), ( 'ppfcz4', 15, 20, 150.5), 1223( 'ppfcz4', 15, 21, 154.5), ( 'ppfcz4', 15, 22, 158.5), ( 'ppfcz4', 15, 23, 162.5), 1224( 'ppfcz4', 15, 24, 166.5), ( 'ppfcz4', 15, 25, 170.5), ( 'ppfcz4', 15, 26, 174.5), 1225( 'ppfcz4', 15, 27, 178.5), ( 'ppfcz4', 15, 28, 182.5), ( 'ppfcz4', 15, 29, 186.5), 1226( 'ppfcz4', 15, 30, 190.5), ( 'ppfcz5', 15, 2, 48.5), ( 'ppfcz5', 15, 3, 56.5), 1227( 'ppfcz5', 15, 4, 64.5), ( 'ppfcz5', 15, 5, 72.5), ( 'ppfcz5', 15, 6, 80.5), 1228( 'ppfcz5', 15, 7, 88.5), ( 'ppfcz5', 15, 8, 96.5), ( 'ppfcz5', 15, 9, 104.5), 1229( 'ppfcz5', 15, 10, 112.5), ( 'ppfcz5', 15, 11, 119.5), ( 'ppfcz5', 15, 12, 126.5), 1230( 'ppfcz5', 15, 13, 133.5), ( 'ppfcz5', 15, 14, 140.5), ( 'ppfcz5', 15, 15, 147.5), 1231( 'ppfcz5', 15, 16, 153.5), ( 'ppfcz5', 15, 17, 161.5), ( 'ppfcz5', 15, 18, 167.5), 1232( 'ppfcz5', 15, 19, 173.5), ( 'ppfcz5', 15, 20, 179.5), ( 'ppfcz5', 15, 21, 185.5), 1233( 'ppfcz5', 15, 22, 191.5), ( 'ppfcz5', 15, 23, 197.5), ( 'ppfcz5', 15, 24, 203.5), 1234( 'ppfcz5', 15, 25, 207.5), ( 'ppfcz5', 15, 26, 212.5), ( 'ppfcz5', 15, 27, 217.5), 1235( 'ppfcz5', 15, 28, 222.5), ( 'ppfcz5', 15, 29, 227.5), ( 'ppfcz5', 15, 30, 232.5), 1236( 'ppfcz1', 14, 2, 37.5), ( 'ppfcz1', 14, 3, 41.5), ( 'ppfcz1', 14, 4, 45.5), 1237( 'ppfcz1', 14, 5, 48.5), ( 'ppfcz1', 14, 6, 52.5), ( 'ppfcz1', 14, 7, 55.5), 1238( 'ppfcz1', 14, 8, 57.5), ( 'ppfcz1', 14, 9, 59.5), ( 'ppfcz1', 14, 10, 61.5), 1239( 'ppfcz1', 14, 11, 62.5), ( 'ppfcz1', 14, 12, 63.5), ( 'ppfcz1', 14, 13, 64.5), 1240( 'ppfcz1', 14, 14, 65.5), ( 'ppfcz1', 14, 15, 66.5), ( 'ppfcz1', 14, 16, 67.5), 1241( 'ppfcz1', 14, 17, 68.5), ( 'ppfcz1', 14, 18, 69.5), ( 'ppfcz1', 14, 19, 70.5), 1242( 'ppfcz1', 14, 20, 71.5), ( 'ppfcz1', 14, 21, 72.5), ( 'ppfcz1', 14, 22, 73.5), 1243( 'ppfcz1', 14, 23, 74.5), ( 'ppfcz1', 14, 24, 75.5), ( 'ppfcz1', 14, 25, 76.5), 1244( 'ppfcz1', 14, 26, 77.5), ( 'ppfcz1', 14, 27, 78.5), ( 'ppfcz1', 14, 28, 79.5), 1245( 'ppfcz1', 14, 29, 80.5), ( 'ppfcz1', 14, 30, 81.5), ( 'ppfcz2', 14, 2, 43.5), 1246( 'ppfcz2', 14, 3, 48.5), ( 'ppfcz2', 14, 4, 53.5), ( 'ppfcz2', 14, 5, 57.5), 1247( 'ppfcz2', 14, 6, 61.5), ( 'ppfcz2', 14, 7, 65.5), ( 'ppfcz2', 14, 8, 69.5), 1248( 'ppfcz2', 14, 9, 73.5), ( 'ppfcz2', 14, 10, 77.5), ( 'ppfcz2', 14, 11, 80.5), 1249( 'ppfcz2', 14, 12, 83.5), ( 'ppfcz2', 14, 13, 86.5), ( 'ppfcz2', 14, 14, 89.5), 1250( 'ppfcz2', 14, 15, 92.5), ( 'ppfcz2', 14, 16, 94.5), ( 'ppfcz2', 14, 17, 96.5), 1251( 'ppfcz2', 14, 18, 98.5), ( 'ppfcz2', 14, 19, 99.5), ( 'ppfcz2', 14, 20, 100.5), 1252( 'ppfcz2', 14, 21, 101.5), ( 'ppfcz2', 14, 22, 102.5), ( 'ppfcz2', 14, 23, 103.5), 1253( 'ppfcz2', 14, 24, 104.5), ( 'ppfcz2', 14, 25, 105.5), ( 'ppfcz2', 14, 26, 106.5), 1254( 'ppfcz2', 14, 27, 107.5), ( 'ppfcz2', 14, 28, 108.5), ( 'ppfcz2', 14, 29, 109.5), 1255( 'ppfcz2', 14, 30, 110.5), ( 'ppfcz3', 14, 2, 47.5), ( 'ppfcz3', 14, 3, 56.5), 1256( 'ppfcz3', 14, 4, 67.5), ( 'ppfcz3', 14, 5, 78.5), ( 'ppfcz3', 14, 6, 87.5), 1257( 'ppfcz3', 14, 7, 96.5), ( 'ppfcz3', 14, 8, 105.5), ( 'ppfcz3', 14, 9, 114.5), 1258( 'ppfcz3', 14, 10, 123.5), ( 'ppfcz3', 14, 11, 131.5), ( 'ppfcz3', 14, 12, 139.5), 1259( 'ppfcz3', 14, 13, 147.5), ( 'ppfcz3', 14, 14, 155.5), ( 'ppfcz3', 14, 15, 163.5), 1260( 'ppfcz3', 14, 16, 171.5), ( 'ppfcz3', 14, 17, 179.5), ( 'ppfcz3', 14, 18, 187.5), 1261( 'ppfcz3', 14, 19, 195.5), ( 'ppfcz3', 14, 20, 203.5), ( 'ppfcz3', 14, 21, 210.5), 1262( 'ppfcz3', 14, 22, 217.5), ( 'ppfcz3', 14, 23, 224.5), ( 'ppfcz3', 14, 24, 231.5), 1263( 'ppfcz3', 14, 25, 238.5), ( 'ppfcz3', 14, 26, 245.5), ( 'ppfcz3', 14, 27, 252.5), 1264( 'ppfcz3', 14, 28, 259.5), ( 'ppfcz3', 14, 29, 266.5), ( 'ppfcz3', 14, 30, 273.5), 1265( 'ppfcz4', 14, 2, 54.5), ( 'ppfcz4', 14, 3, 68.5), ( 'ppfcz4', 14, 4, 81.5), 1266( 'ppfcz4', 14, 5, 95.5), ( 'ppfcz4', 14, 6, 108.5), ( 'ppfcz4', 14, 7, 121.5), 1267( 'ppfcz4', 14, 8, 134.5), ( 'ppfcz4', 14, 9, 147.5), ( 'ppfcz4', 14, 10, 160.5), 1268( 'ppfcz4', 14, 11, 168.5), ( 'ppfcz4', 14, 12, 178.5), ( 'ppfcz4', 14, 13, 188.5), 1269( 'ppfcz4', 14, 14, 198.5), ( 'ppfcz4', 14, 15, 208.5), ( 'ppfcz4', 14, 16, 216.5), 1270( 'ppfcz4', 14, 17, 224.5), ( 'ppfcz4', 14, 18, 232.5), ( 'ppfcz4', 14, 19, 240.5), 1271( 'ppfcz4', 14, 20, 248.5), ( 'ppfcz4', 14, 21, 256.5), ( 'ppfcz4', 14, 22, 264.5), 1272( 'ppfcz4', 14, 23, 272.5), ( 'ppfcz4', 14, 24, 280.5), ( 'ppfcz4', 14, 25, 288.5), 1273( 'ppfcz4', 14, 26, 296.5), ( 'ppfcz4', 14, 27, 304.5), ( 'ppfcz4', 14, 28, 312.5), 1274( 'ppfcz4', 14, 29, 320.5), ( 'ppfcz4', 14, 30, 328.5), ( 'ppfcz5', 14, 2, 66.5), 1275( 'ppfcz5', 14, 3, 84.5), ( 'ppfcz5', 14, 4, 102.5), ( 'ppfcz5', 14, 5, 120.5), 1276( 'ppfcz5', 14, 6, 137.5), ( 'ppfcz5', 14, 7, 154.5), ( 'ppfcz5', 14, 8, 171.5), 1277( 'ppfcz5', 14, 9, 188.5), ( 'ppfcz5', 14, 10, 205.5), ( 'ppfcz5', 14, 11, 220.5), 1278( 'ppfcz5', 14, 12, 235.5), ( 'ppfcz5', 14, 13, 250.5), ( 'ppfcz5', 14, 14, 265.5), 1279( 'ppfcz5', 14, 15, 280.5), ( 'ppfcz5', 14, 16, 295.5), ( 'ppfcz5', 14, 17, 310.5), 1280( 'ppfcz5', 14, 18, 325.5), ( 'ppfcz5', 14, 19, 340.5), ( 'ppfcz5', 14, 20, 355.5), 1281( 'ppfcz5', 14, 21, 368.5), ( 'ppfcz5', 14, 22, 381.5), ( 'ppfcz5', 14, 23, 394.5), 1282( 'ppfcz5', 14, 24, 407.5), ( 'ppfcz5', 14, 25, 420.5), ( 'ppfcz5', 14, 26, 433.5), 1283( 'ppfcz5', 14, 27, 446.5), ( 'ppfcz5', 14, 28, 459.5), ( 'ppfcz5', 14, 29, 472.5), 1284( 'ppfcz5', 14, 30, 485.5), ( 'ppfcz1', 30, 0.5, 56.5), ( 'ppfcz1', 30, 1, 63.5), 1285( 'ppfcz1', 30, 1.5, 69.5), ( 'ppfcz1', 30, 2, 75.5), ( 'ppfcz1', 30, 2.5, 80.5), 1286( 'ppfcz1', 30, 3, 86.5), ( 'ppfcz1', 30, 3.5, 92.5), ( 'ppfcz1', 30, 4, 99.5), 1287( 'ppfcz1', 30, 4.5, 105.5), ( 'ppfcz1', 30, 5, 111.5), ( 'ppfcz1', 30, 6, 118.5), 1288( 'ppfcz1', 30, 7, 126.5), ( 'ppfcz1', 30, 8, 133.5), ( 'ppfcz1', 30, 9, 141.5), 1289( 'ppfcz1', 30, 10, 148.5), ( 'ppfcz1', 30, 11, 156.5), ( 'ppfcz1', 30, 12, 163.5), 1290( 'ppfcz1', 30, 13, 171.5), ( 'ppfcz1', 30, 14, 178.5), ( 'ppfcz1', 30, 15, 186.5), 1291( 'ppfcz1', 30, 16, 193.5), ( 'ppfcz1', 30, 17, 201.5), ( 'ppfcz1', 30, 18, 209.5), 1292( 'ppfcz1', 30, 19, 216.5), ( 'ppfcz1', 30, 20, 224.5), ( 'ppfcz1', 30, 21, 231.5), 1293( 'ppfcz1', 30, 22, 239.5), ( 'ppfcz1', 30, 23, 246.5), ( 'ppfcz1', 30, 24, 254.5), 1294( 'ppfcz1', 30, 25, 261.5), ( 'ppfcz1', 30, 26, 269.5), ( 'ppfcz1', 30, 27, 276.5), 1295( 'ppfcz1', 30, 28, 284.5), ( 'ppfcz1', 30, 29, 291.5), ( 'ppfcz1', 30, 30, 299.5), 1296( 'ppfcz2', 30, 0.5, 61.5), ( 'ppfcz2', 30, 1, 65.5), ( 'ppfcz2', 30, 1.5, 75.5), 1297( 'ppfcz2', 30, 2, 80.5), ( 'ppfcz2', 30, 2.5, 86.5), ( 'ppfcz2', 30, 3, 99.5), 1298( 'ppfcz2', 30, 3.5, 109.5), ( 'ppfcz2', 30, 4, 113.5), ( 'ppfcz2', 30, 4.5, 121.5), 1299( 'ppfcz2', 30, 5, 129.5), ( 'ppfcz2', 30, 6, 139.5), ( 'ppfcz2', 30, 7, 149.5), 1300( 'ppfcz2', 30, 8, 159.5), ( 'ppfcz2', 30, 9, 169.5), ( 'ppfcz2', 30, 10, 180.5), 1301( 'ppfcz2', 30, 11, 189.5), ( 'ppfcz2', 30, 12, 199.5), ( 'ppfcz2', 30, 13, 210.5), 1302( 'ppfcz2', 30, 14, 219.5), ( 'ppfcz2', 30, 15, 229.5), ( 'ppfcz2', 30, 16, 240.5), 1303( 'ppfcz2', 30, 17, 249.5), ( 'ppfcz2', 30, 18, 259.5), ( 'ppfcz2', 30, 19, 270.5), 1304( 'ppfcz2', 30, 20, 280.5), ( 'ppfcz2', 30, 21, 289.5), ( 'ppfcz2', 30, 22, 300.5), 1305( 'ppfcz2', 30, 23, 310.5), ( 'ppfcz2', 30, 24, 320.5), ( 'ppfcz2', 30, 25, 330.5), 1306( 'ppfcz2', 30, 26, 340.5), ( 'ppfcz2', 30, 27, 350.5), ( 'ppfcz2', 30, 28, 360.5), 1307( 'ppfcz2', 30, 29, 370.5), ( 'ppfcz2', 30, 30, 381.5), ( 'ppfcz3', 30, 0.5, 74.5), 1308( 'ppfcz3', 30, 1, 83.5), ( 'ppfcz3', 30, 1.5, 90.5), ( 'ppfcz3', 30, 2, 99.5), 1309( 'ppfcz3', 30, 2.5, 107.5), ( 'ppfcz3', 30, 3, 114.5), ( 'ppfcz3', 30, 3.5, 122.5), 1310( 'ppfcz3', 30, 4, 130.5), ( 'ppfcz3', 30, 4.5, 140.5), ( 'ppfcz3', 30, 5, 147.5), 1311( 'ppfcz3', 30, 6, 162.5), ( 'ppfcz3', 30, 7, 174.5), ( 'ppfcz3', 30, 8, 188.5), 1312( 'ppfcz3', 30, 9, 201.5), ( 'ppfcz3', 30, 10, 213.5), ( 'ppfcz3', 30, 11, 227.5), 1313( 'ppfcz3', 30, 12, 240.5), ( 'ppfcz3', 30, 13, 252.5), ( 'ppfcz3', 30, 14, 266.5), 1314( 'ppfcz3', 30, 15, 278.5), ( 'ppfcz3', 30, 16, 290.5), ( 'ppfcz3', 30, 17, 304.5), 1315( 'ppfcz3', 30, 18, 317.5), ( 'ppfcz3', 30, 19, 330.5), ( 'ppfcz3', 30, 20, 343.5), 1316( 'ppfcz3', 30, 21, 354.5), ( 'ppfcz3', 30, 22, 363.5), ( 'ppfcz3', 30, 23, 375.5), 1317( 'ppfcz3', 30, 24, 385.5), ( 'ppfcz3', 30, 25, 396.5), ( 'ppfcz3', 30, 26, 405.5), 1318( 'ppfcz3', 30, 27, 417.5), ( 'ppfcz3', 30, 28, 428.5), ( 'ppfcz3', 30, 29, 438.5), 1319( 'ppfcz3', 30, 30, 448.5), ( 'ppfcz4', 30, 0.5, 90.5), ( 'ppfcz4', 30, 1, 104.5), 1320( 'ppfcz4', 30, 1.5, 118.5), ( 'ppfcz4', 30, 2, 134.5), ( 'ppfcz4', 30, 2.5, 146.5), 1321( 'ppfcz4', 30, 3, 163.5), ( 'ppfcz4', 30, 3.5, 179.5), ( 'ppfcz4', 30, 4, 195.5), 1322( 'ppfcz4', 30, 4.5, 211.5), ( 'ppfcz4', 30, 5, 232.5), ( 'ppfcz4', 30, 6, 257.5), 1323( 'ppfcz4', 30, 7, 278.5), ( 'ppfcz4', 30, 8, 300.5), ( 'ppfcz4', 30, 9, 321.5), 1324( 'ppfcz4', 30, 10, 343.5), ( 'ppfcz4', 30, 11, 364.5), ( 'ppfcz4', 30, 12, 386.5), 1325( 'ppfcz4', 30, 13, 407.5), ( 'ppfcz4', 30, 14, 429.5), ( 'ppfcz4', 30, 15, 450.5), 1326( 'ppfcz4', 30, 16, 472.5), ( 'ppfcz4', 30, 17, 493.5), ( 'ppfcz4', 30, 18, 515.5), 1327( 'ppfcz4', 30, 19, 536.5), ( 'ppfcz4', 30, 20, 558.5), ( 'ppfcz4', 30, 21, 579.5), 1328( 'ppfcz4', 30, 22, 601.5), ( 'ppfcz4', 30, 23, 622.5), ( 'ppfcz4', 30, 24, 644.5), 1329( 'ppfcz4', 30, 25, 665.5), ( 'ppfcz4', 30, 26, 687.5), ( 'ppfcz4', 30, 27, 708.5), 1330( 'ppfcz4', 30, 28, 730.5), ( 'ppfcz4', 30, 29, 751.5), ( 'ppfcz4', 30, 30, 773.5), 1331( 'ppfcz5', 30, 0.5, 97.5), ( 'ppfcz5', 30, 1, 114.5), ( 'ppfcz5', 30, 1.5, 131.5), 1332( 'ppfcz5', 30, 2, 148.5), ( 'ppfcz5', 30, 2.5, 165.5), ( 'ppfcz5', 30, 3, 183.5), 1333( 'ppfcz5', 30, 3.5, 200.5), ( 'ppfcz5', 30, 4, 221.5), ( 'ppfcz5', 30, 4.5, 243.5), 1334( 'ppfcz5', 30, 5, 264.5), ( 'ppfcz5', 30, 6, 289.5), ( 'ppfcz5', 30, 7, 313.5), 1335( 'ppfcz5', 30, 8, 336.5), ( 'ppfcz5', 30, 9, 360.5), ( 'ppfcz5', 30, 10, 384.5), 1336( 'ppfcz5', 30, 11, 407.5), ( 'ppfcz5', 30, 12, 431.5), ( 'ppfcz5', 30, 13, 455.5), 1337( 'ppfcz5', 30, 14, 478.5), ( 'ppfcz5', 30, 15, 502.5), ( 'ppfcz5', 30, 16, 526.5), 1338( 'ppfcz5', 30, 17, 549.5), ( 'ppfcz5', 30, 18, 573.5), ( 'ppfcz5', 30, 19, 597.5), 1339( 'ppfcz5', 30, 20, 620.5), ( 'ppfcz5', 30, 21, 644.5), ( 'ppfcz5', 30, 22, 668.5), 1340( 'ppfcz5', 30, 23, 691.5), ( 'ppfcz5', 30, 24, 715.5), ( 'ppfcz5', 30, 25, 738.5), 1341( 'ppfcz5', 30, 26, 762.5), ( 'ppfcz5', 30, 27, 786.5), ( 'ppfcz5', 30, 28, 809.5), 1342( 'ppfcz5', 30, 29, 833.5), ( 'ppfcz5', 30, 30, 857.5), ( 'foreign', 13, 30, 0), 1343( 'all', 32, 10000, 23.2342007434944); 1344 1345--enable_query_log 1346 1347INSERT INTO t3 SELECT * FROM t1; 1348 1349EXPLAIN 1350SELECT d FROM t1, t2 1351WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE' 1352ORDER BY t2.c LIMIT 1; 1353SELECT d FROM t1, t2 1354WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE' 1355ORDER BY t2.c LIMIT 1; 1356 1357EXPLAIN 1358SELECT d FROM t3 AS t1, t2 AS t2 1359WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE' 1360ORDER BY t2.c LIMIT 1; 1361SELECT d FROM t3 AS t1, t2 AS t2 1362WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE' 1363ORDER BY t2.c LIMIT 1; 1364 1365DROP TABLE t1,t2,t3; 1366 1367--echo # 1368--echo # WL#1393 - Optimizing filesort with small limit 1369--echo # 1370 1371CREATE TABLE t1(f0 int auto_increment primary key, f1 int, f2 varchar(200)); 1372INSERT INTO t1(f1, f2) VALUES 1373(0,"0"),(1,"1"),(2,"2"),(3,"3"),(4,"4"),(5,"5"), 1374(6,"6"),(7,"7"),(8,"8"),(9,"9"),(10,"10"), 1375(11,"11"),(12,"12"),(13,"13"),(14,"14"),(15,"15"), 1376(16,"16"),(17,"17"),(18,"18"),(19,"19"),(20,"20"), 1377(21,"21"),(22,"22"),(23,"23"),(24,"24"),(25,"25"), 1378(26,"26"),(27,"27"),(28,"28"),(29,"29"),(30,"30"), 1379(31,"31"),(32,"32"),(33,"33"),(34,"34"),(35,"35"), 1380(36,"36"),(37,"37"),(38,"38"),(39,"39"),(40,"40"), 1381(41,"41"),(42,"42"),(43,"43"),(44,"44"),(45,"45"), 1382(46,"46"),(47,"47"),(48,"48"),(49,"49"),(50,"50"), 1383(51,"51"),(52,"52"),(53,"53"),(54,"54"),(55,"55"), 1384(56,"56"),(57,"57"),(58,"58"),(59,"59"),(60,"60"), 1385(61,"61"),(62,"62"),(63,"63"),(64,"64"),(65,"65"), 1386(66,"66"),(67,"67"),(68,"68"),(69,"69"),(70,"70"), 1387(71,"71"),(72,"72"),(73,"73"),(74,"74"),(75,"75"), 1388(76,"76"),(77,"77"),(78,"78"),(79,"79"),(80,"80"), 1389(81,"81"),(82,"82"),(83,"83"),(84,"84"),(85,"85"), 1390(86,"86"),(87,"87"),(88,"88"),(89,"89"),(90,"90"), 1391(91,"91"),(92,"92"),(93,"93"),(94,"94"),(95,"95"), 1392(96,"96"),(97,"97"),(98,"98"),(99,"99"); 1393 1394################ 1395## Test sort when source data fits in memory 1396 1397SELECT * FROM t1 ORDER BY f1 ASC, f0 LIMIT 100; 1398SELECT * FROM t1 ORDER BY f1 ASC, f0 LIMIT 30; 1399SELECT * FROM t1 ORDER BY f1 ASC, f0 LIMIT 0; 1400SELECT * FROM t1 ORDER BY f2 DESC, f0 LIMIT 30; 1401SELECT * FROM t1 ORDER BY f2 DESC, f0 LIMIT 0; 1402SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 20; 1403SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 0; 1404SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 10 OFFSET 10; 1405SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 0 OFFSET 10; 1406 1407################ 1408## Test sort when source data does not fit in memory 1409set sort_buffer_size= 32768; 1410CREATE TEMPORARY TABLE tmp (f1 int, f2 varchar(20)); 1411INSERT INTO tmp SELECT f1, f2 FROM t1; 1412INSERT INTO t1(f1, f2) SELECT * FROM tmp; 1413INSERT INTO tmp SELECT f1, f2 FROM t1; 1414INSERT INTO t1(f1, f2) SELECT * FROM tmp; 1415 1416SELECT * FROM t1 ORDER BY f1 ASC, f0 LIMIT 30; 1417SELECT * FROM t1 ORDER BY f1 ASC, f0 LIMIT 0; 1418SELECT * FROM t1 ORDER BY f2 DESC, f0 LIMIT 30; 1419SELECT * FROM t1 ORDER BY f2 DESC, f0 LIMIT 0; 1420SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 20; 1421SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 0; 1422SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 10 OFFSET 10; 1423SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 0 OFFSET 10; 1424 1425################ 1426## Test with SQL_CALC_FOUND_ROWS 1427set sort_buffer_size= 32768; 1428SELECT SQL_CALC_FOUND_ROWS * FROM t1 1429ORDER BY f1, f0 LIMIT 30; 1430SELECT FOUND_ROWS(); 1431 1432SELECT SQL_CALC_FOUND_ROWS * FROM t1 1433ORDER BY f1, f0 LIMIT 0; 1434SELECT FOUND_ROWS(); 1435 1436SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE f1>10 1437ORDER BY f2, f0 LIMIT 20; 1438SELECT FOUND_ROWS(); 1439 1440SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE f1>10 1441ORDER BY f2, f0 LIMIT 0; 1442SELECT FOUND_ROWS(); 1443 1444SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE f1>10 1445ORDER BY f2, f0 LIMIT 10 OFFSET 10; 1446SELECT FOUND_ROWS(); 1447 1448SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE f1>10 1449ORDER BY f2, f0 LIMIT 0 OFFSET 10; 1450SELECT FOUND_ROWS(); 1451 1452################ 1453## Test sorting with join 1454## These are re-written to use PQ during execution. 1455set sort_buffer_size= 327680; 1456 1457SELECT * FROM t1 JOIN tmp on t1.f2=tmp.f2 1458ORDER BY tmp.f1, f0 LIMIT 30; 1459 1460SELECT * FROM t1 JOIN tmp on t1.f2=tmp.f2 1461ORDER BY tmp.f1, f0 LIMIT 30 OFFSET 30; 1462 1463SELECT SQL_CALC_FOUND_ROWS * FROM t1 JOIN tmp on t1.f2=tmp.f2 1464ORDER BY tmp.f1, f0 LIMIT 30 OFFSET 30; 1465SELECT FOUND_ROWS(); 1466 1467SELECT SQL_CALC_FOUND_ROWS * FROM t1 JOIN tmp on t1.f2=tmp.f2 1468WHERE t1.f2>20 1469ORDER BY tmp.f1, f0 LIMIT 30 OFFSET 30; 1470SELECT FOUND_ROWS(); 1471 1472################ 1473## Test views 1474CREATE VIEW v1 as SELECT * FROM t1 ORDER BY f1, f0 LIMIT 30; 1475SELECT * FROM v1; 1476drop view v1; 1477 1478CREATE VIEW v1 as SELECT * FROM t1 ORDER BY f1, f0 LIMIT 100; 1479SELECT * FROM v1 ORDER BY f2, f0 LIMIT 30; 1480 1481CREATE VIEW v2 as SELECT * FROM t1 ORDER BY f2, f0 LIMIT 100; 1482SELECT * FROM v1 JOIN v2 on v1.f1=v2.f1 ORDER BY v1.f2,v1.f0,v2.f0 1483LIMIT 30; 1484 1485################ 1486## Test group & having 1487SELECT floor(f1/10) f3, count(f2) FROM t1 1488GROUP BY 1 ORDER BY 2,1 LIMIT 5; 1489 1490SELECT floor(f1/10) f3, count(f2) FROM t1 1491GROUP BY 1 ORDER BY 2,1 LIMIT 0; 1492 1493################ 1494## Test SP 1495delimiter |; 1496CREATE PROCEDURE wl1393_sp_test() 1497BEGIN 1498SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 30; 1499SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 15 OFFSET 15; 1500SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE f1>10 1501ORDER BY f2, f0 LIMIT 15 OFFSET 15; 1502SELECT FOUND_ROWS(); 1503SELECT * FROM v1 ORDER BY f2, f0 LIMIT 30; 1504END| 1505CALL wl1393_sp_test()| 1506DROP PROCEDURE wl1393_sp_test| 1507delimiter ;| 1508 1509################ 1510## Test with subqueries 1511SELECT d1.f1, d1.f2 FROM t1 1512LEFT JOIN (SELECT * FROM t1 ORDER BY f1 LIMIT 30) d1 on t1.f1=d1.f1 1513ORDER BY d1.f2 DESC LIMIT 30; 1514 1515SELECT * FROM t1 WHERE f1 = (SELECT f1 FROM t1 ORDER BY 1 LIMIT 1); 1516 1517--error ER_SUBQUERY_NO_1_ROW 1518SELECT * FROM t1 WHERE f1 = (SELECT f1 FROM t1 ORDER BY 1 LIMIT 2); 1519 1520DROP TABLE t1, tmp; 1521DROP VIEW v1, v2; 1522 1523--echo # end of WL#1393 - Optimizing filesort with small limit 1524 1525--echo # 1526--echo # Bug #58761 1527--echo # Crash in Field::is_null in field.h on subquery in WHERE clause 1528--echo # 1529 1530CREATE TABLE t1 ( 1531 pk INT NOT NULL AUTO_INCREMENT, 1532 col_int_key INT DEFAULT NULL, 1533 col_varchar_key VARCHAR(1) DEFAULT NULL, 1534 PRIMARY KEY (pk), 1535 KEY col_varchar_key (col_varchar_key,col_int_key) 1536); 1537 1538INSERT INTO t1 VALUES (27,7,'x'); 1539INSERT INTO t1 VALUES (28,6,'m'); 1540INSERT INTO t1 VALUES (29,4,'c'); 1541 1542CREATE TABLE where_subselect 1543 SELECT DISTINCT `pk` AS field1 , `pk` AS field2 1544 FROM t1 AS alias1 1545 WHERE alias1 . `col_int_key` > 229 1546 OR alias1 . `col_varchar_key` IS NOT NULL 1547 GROUP BY field1, field2 1548; 1549 1550SELECT * 1551FROM where_subselect 1552WHERE (field1, field2) IN ( 1553 SELECT DISTINCT `pk` AS field1 , `pk` AS field2 1554 FROM t1 AS alias1 1555 WHERE alias1 . `col_int_key` > 229 1556 OR alias1 . `col_varchar_key` IS NOT NULL 1557 GROUP BY field1, field2 1558); 1559 1560DROP TABLE t1; 1561DROP TABLE where_subselect; 1562 1563--echo # End of Bug #58761 1564 1565# 1566# Bug#35844: Covering index for ref access not compatible with ORDER BY list 1567# 1568 1569CREATE TABLE t1 ( 1570 id1 INT NULL, 1571 id2 INT NOT NULL, 1572 junk INT NOT NULL, 1573 PRIMARY KEY (id1, id2, junk), 1574 INDEX id2_j_id1 (id2, junk, id1) 1575); 1576 1577INSERT INTO t1 VALUES (1, 1, 1), (2, 1, 2), (3, 1, 3), (4, 1, 4); 1578INSERT INTO t1 VALUES (5, 2, 1), (6, 2, 2), (7, 2, 3), (8, 2, 4); 1579INSERT INTO t1 VALUES (9, 3, 1), (10, 3, 2), (11, 3, 3), (12, 3, 4); 1580INSERT INTO t1 VALUES (13, 4, 1), (14, 4, 2), (15, 4, 3), (16, 4, 4); 1581INSERT INTO t1 VALUES (17, 5, 1), (18, 5, 2), (19, 5, 3), (20, 5, 4); 1582INSERT INTO t1 VALUES (21, 6, 1), (22, 6, 2), (23, 6, 3), (24, 6, 4); 1583INSERT INTO t1 VALUES (25, 7, 1), (26, 7, 2), (27, 7, 3), (28, 7, 4); 1584INSERT INTO t1 VALUES (29, 8, 1), (30, 8, 2), (31, 8, 3), (32, 8, 4); 1585INSERT INTO t1 VALUES (33, 9, 1), (34, 9, 2), (35, 9, 3), (36, 9, 4); 1586 1587EXPLAIN SELECT id1 FROM t1 WHERE id2 = 4 ORDER BY id1; 1588 1589SELECT id1 FROM t1 WHERE id2 = 4 ORDER BY id1; 1590 1591DROP TABLE t1; 1592 1593 1594 1595# 1596# Bug#46454: MySQL wrong index optimisation leads to incorrect result & crashes 1597# 1598CREATE TABLE t1 ( 1599 a INT, 1600 b INT NOT NULL, 1601 c char(100), 1602 KEY (b, c), 1603 KEY (b, a, c) 1604) 1605DEFAULT CHARSET = utf8; 1606 1607INSERT INTO t1 VALUES 1608(1, 1, 1), 1609(2, 2, 2), 1610(3, 3, 3), 1611(4, 4, 4), 1612(5, 5, 5), 1613(6, 6, 6), 1614(7, 7, 7), 1615(8, 8, 8), 1616(9, 9, 9); 1617 1618INSERT INTO t1 SELECT a + 10, b, c FROM t1; 1619INSERT INTO t1 SELECT a + 20, b, c FROM t1; 1620INSERT INTO t1 SELECT a + 40, b, c FROM t1; 1621INSERT INTO t1 SELECT a + 80, b, c FROM t1; 1622INSERT INTO t1 SELECT a + 160, b, c FROM t1; 1623INSERT INTO t1 SELECT a + 320, b, c FROM t1; 1624INSERT INTO t1 SELECT a + 640, b, c FROM t1; 1625INSERT INTO t1 SELECT a + 1280, b, c FROM t1 LIMIT 80; 1626 1627EXPLAIN 1628SELECT a FROM t1 WHERE b = 1 ORDER BY c DESC LIMIT 9; 1629SELECT a FROM t1 WHERE b = 1 ORDER BY c DESC LIMIT 9; 1630 1631EXPLAIN 1632SELECT DISTINCT a FROM t1 WHERE b = 1 ORDER BY c DESC LIMIT 0, 9; 1633SELECT DISTINCT a FROM t1 WHERE b = 1 ORDER BY c DESC LIMIT 0, 9; 1634 1635DROP TABLE t1; 1636 1637--echo # 1638--echo # Bug #43029: FORCE INDEX FOR ORDER BY is ignored when join buffering 1639--echo # is used 1640--echo # 1641 1642CREATE TABLE t1 (a INT, b INT, KEY (a)); 1643 1644INSERT INTO t1 VALUES (0, NULL), (1, NULL), (2, NULL), (3, NULL); 1645INSERT INTO t1 SELECT a+4, b FROM t1; 1646INSERT INTO t1 SELECT a+8, b FROM t1; 1647 1648CREATE TABLE t2 (a INT, b INT); 1649 1650INSERT INTO t2 VALUES (0,NULL), (1,NULL), (2,NULL), (3,NULL), (4,NULL); 1651INSERT INTO t2 SELECT a+4, b FROM t2; 1652 1653--echo # shouldn't have "using filesort" 1654EXPLAIN 1655SELECT * FROM t1 FORCE INDEX FOR ORDER BY (a), t2 WHERE t1.a < 2 ORDER BY t1.a; 1656 1657--echo # should have "using filesort" 1658EXPLAIN 1659SELECT * FROM t1 USE INDEX FOR ORDER BY (a), t2 WHERE t1.a < 2 ORDER BY t1.a; 1660 1661--echo # should have "using filesort" 1662EXPLAIN 1663SELECT * FROM t1 FORCE INDEX FOR JOIN (a), t2 WHERE t1.a < 2 ORDER BY t1.a; 1664 1665DROP TABLE t1, t2; 1666 1667--echo # 1668--echo # Bug #50394: Regression in EXPLAIN with index scan, LIMIT, GROUP BY and 1669--echo # ORDER BY computed col 1670--echo # 1671CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL, KEY( a, b ) ); 1672 1673INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5); 1674INSERT INTO t1 SELECT a + 5, b + 5 FROM t1; 1675 1676CREATE TABLE t2( a INT PRIMARY KEY, b INT ); 1677 1678INSERT INTO t2 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5); 1679INSERT INTO t2 SELECT a + 5, b + 5 FROM t2; 1680 1681EXPLAIN 1682SELECT count(*) AS c, t1.a 1683FROM t1 JOIN t2 ON t1.b = t2.a 1684WHERE t2.b = 1 1685GROUP BY t1.a 1686ORDER by c 1687LIMIT 2; 1688 1689DROP TABLE t1, t2; 1690 1691 1692--echo # 1693--echo # Bug #59110: Memory leak of QUICK_SELECT_I allocated memory 1694--echo # and 1695--echo # Bug #59308: Incorrect result for 1696--echo SELECT DISTINCT <col>... ORDER BY <col> DESC 1697--echo 1698--echo # Use Valgrind to detect #59110! 1699--echo # 1700 1701CREATE TABLE t1 (a INT,KEY (a)); 1702INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); 1703 1704EXPLAIN SELECT DISTINCT a,1 FROM t1 WHERE a <> 1 ORDER BY a DESC; 1705SELECT DISTINCT a,1 FROM t1 WHERE a <> 1 ORDER BY a DESC; 1706 1707DROP TABLE t1; 1708 1709--echo # 1710--echo # Bug#11765255 58201: 1711--echo # VALGRIND/CRASH WHEN ORDERING BY MULTIPLE AGGREGATE FUNCTIONS 1712--echo # 1713 1714select 1 order by max(1) + min(1); 1715 1716--echo End of 5.1 tests 1717 1718 1719--echo # 1720--echo # Bug #38745: MySQL 5.1 optimizer uses filesort for ORDER BY 1721--echo # when it should use index 1722--echo # 1723 1724CREATE TABLE t1 (i1 integer NOT NULL PRIMARY KEY); 1725CREATE TABLE t2 (i2 integer NOT NULL PRIMARY KEY); 1726CREATE TABLE t3 (i3 integer); 1727 1728INSERT INTO t1 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11), (12); 1729INSERT INTO t2 SELECT * FROM t1; 1730 1731EXPLAIN EXTENDED 1732SELECT t1.*, t2.* FROM t1 JOIN t2 ON t1.i1 = t2.i2 1733 LEFT JOIN t3 ON t2.i2 = t3.i3 1734 ORDER BY t1.i1 LIMIT 5; 1735 1736SELECT t1.*, t2.* FROM t1 JOIN t2 ON t1.i1 = t2.i2 1737 LEFT JOIN t3 ON t2.i2 = t3.i3 1738 ORDER BY t1.i1 LIMIT 5; 1739 1740DROP TABLE t1, t2, t3; 1741 1742--echo # 1743--echo # Bug #11885377 VOID JOIN_READ_KEY_UNLOCK_ROW(ST_JOIN_TABLE*): ASSERTION 1744--echo # `TAB->REF.USE_COUNT' 1745--echo # 1746 1747CREATE TABLE t1(a INT PRIMARY KEY); 1748CREATE TABLE t2(b INT,c INT); 1749INSERT INTO t1 VALUES (1), (2); 1750INSERT INTO t2 VALUES (1,2), (2,3); 1751SELECT (SELECT 1 FROM t1 WHERE a=b AND c=1 ORDER BY a DESC) FROM t2; 1752DROP TABLE t1, t2; 1753 1754--echo # 1755--echo # Bug #13531865 1756--echo # TEST_IF_SKIP_SORT_ORDER() INCORRECTLY SKIP FILESORT IF 1757--echo # 'TYPE' IS REF_OR_NULL 1758--echo # 1759--echo # 1760 1761CREATE TABLE t1 ( 1762 a INT, 1763 c INT, 1764 UNIQUE KEY a_c (a,c), 1765 KEY (a)) engine=myisam; 1766 1767INSERT INTO t1 VALUES (1,10), (2,NULL), (2,10); 1768ANALYZE TABLE t1; 1769 1770--echo # Using 'KEY a_c' for order-by opt, would have required 1771--echo # REF_OR_NULL access which never can be order_by skipped. 1772--echo # -> Keep initial REF on 'KEY a' selected by cond. optimizer 1773EXPLAIN 1774SELECT c FROM t1 WHERE a=2 AND (c=10 OR c IS NULL); 1775EXPLAIN 1776SELECT c FROM t1 WHERE a=2 AND (c=10 OR c IS NULL) ORDER BY c; 1777SELECT c FROM t1 WHERE a=2 AND (c=10 OR c IS NULL) ORDER BY c; 1778 1779EXPLAIN 1780SELECT c FROM t1 WHERE a=2 AND (c=10 OR c IS NULL) ORDER BY c DESC; 1781SELECT c FROM t1 WHERE a=2 AND (c=10 OR c IS NULL) ORDER BY c DESC; 1782 1783DROP TABLE t1; 1784 1785--echo # 1786--echo # Bug #13528826 1787--echo # TEST_IF_CHEAPER_ORDERING(): CALCULATES INCORRECT 'SELECT_LIMIT' 1788--echo # 1789--echo # 1790 1791CREATE TABLE t1(a int PRIMARY KEY, b int) ENGINE=myisam; 1792INSERT INTO t1 VALUES 1793 (5, 10), (2, 70), (7, 80), (6, 20), (1, 50), (9, 40), (8, 30), (3, 60); 1794CREATE TABLE t2 (p int, a int, INDEX i_a(a)) ENGINE=myisam; 1795INSERT INTO t2 VALUES 1796 (103, 7), (109, 3), (102, 3), (108, 1), (106, 3), 1797 (107, 7), (105, 1), (101, 3), (100, 7), (110, 1); 1798 1799--echo # number of rows in t1 was incorrectly used as an 1800--echo # implicit limit-clause if not explicit specified 1801EXPLAIN 1802SELECT t1.a FROM t1 LEFT JOIN t2 ON t1.a=t2.a ORDER BY t1.a; 1803 1804--echo # Query above used to be explained identical to this: 1805EXPLAIN 1806SELECT t1.a FROM t1 LEFT JOIN t2 ON t1.a=t2.a ORDER BY t1.a LIMIT 8; 1807 1808-- echo # A really high limit was required to give the correct explain 1809EXPLAIN 1810SELECT t1.a FROM t1 LEFT JOIN t2 ON t1.a=t2.a ORDER BY t1.a LIMIT 1000; 1811 1812DROP TABLE t1, t2; 1813 1814--echo # 1815--echo # Bug #13949068 ASSERT TAB->REF.KEY == REF_KEY IN 1816--echo # PLAN_CHANGE_WATCHDOG::~PLAN_CHANGE_WATCHDOG 1817--echo # 1818CREATE TABLE t1 (a INT, b INT, KEY(b), KEY(b,a)) ENGINE=INNODB; 1819INSERT INTO t1 VALUES (0,0); 1820let $query=SELECT DISTINCT a FROM t1 WHERE b=1 ORDER BY 1; 1821eval EXPLAIN $query; 1822eval $query; 1823DROP TABLE t1; 1824