range.test
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:6k
- #
- # Problem med range optimizer
- #
- drop table if exists t1;
- CREATE TABLE t1 (
- event_date date DEFAULT '0000-00-00' NOT NULL,
- type int(11) DEFAULT '0' NOT NULL,
- event_id int(11) DEFAULT '0' NOT NULL,
- PRIMARY KEY (event_date,type,event_id)
- );
- INSERT INTO t1 VALUES ('1999-07-10',100100,24),('1999-07-11',100100,25),('1999-07-13',100600,0),('1999-07-13',100600,4),('1999-07-13',100600,26),('1999-07-14',100600,10),('1999-07-15',100600,16),('1999-07-15',100800,45),('1999-07-15',101000,47),('1999-07-16',100800,46),('1999-07-20',100600,5),('1999-07-20',100600,27),('1999-07-21',100600,11),('1999-07-22',100600,17),('1999-07-23',100100,39),('1999-07-24',100100,39),('1999-07-24',100500,40),('1999-07-25',100100,39),('1999-07-27',100600,1),('1999-07-27',100600,6),('1999-07-27',100600,28),('1999-07-28',100600,12),('1999-07-29',100500,41),('1999-07-29',100600,18),('1999-07-30',100500,41),('1999-07-31',100500,41),('1999-08-01',100700,34),('1999-08-03',100600,7),('1999-08-03',100600,29),('1999-08-04',100600,13),('1999-08-05',100500,42),('1999-08-05',100600,19),('1999-08-06',100500,42),('1999-08-07',100500,42),('1999-08-08',100500,42),('1999-08-10',100600,2),('1999-08-10',100600,9),('1999-08-10',100600,30),('1999-08-11',100600,14),('1999-08-12',100600,20),('1999-08-17',100500,8),('1999-08-17',100600,31),('1999-08-18',100600,15),('1999-08-19',100600,22),('1999-08-24',100600,3),('1999-08-24',100600,32),('1999-08-27',100500,43),('1999-08-31',100600,33),('1999-09-17',100100,37),('1999-09-18',100100,37),('1999-09-19',100100,37),('2000-12-18',100700,38);
- select event_date,type,event_id from t1 WHERE event_date >= "1999-07-01" AND event_date < "1999-07-15" AND (type=100600 OR type=100100) ORDER BY event_date;
- explain select event_date,type,event_id from t1 WHERE type = 100601 and event_date >= "1999-07-01" AND event_date < "1999-07-15" AND (type=100600 OR type=100100) ORDER BY event_date;
- select event_date,type,event_id from t1 WHERE event_date >= "1999-07-01" AND event_date <= "1999-07-15" AND (type=100600 OR type=100100) or event_date >= "1999-07-01" AND event_date <= "1999-07-15" AND type=100099;
- drop table t1;
- CREATE TABLE t1 (
- PAPER_ID smallint(6) DEFAULT '0' NOT NULL,
- YEAR smallint(6) DEFAULT '0' NOT NULL,
- ISSUE smallint(6) DEFAULT '0' NOT NULL,
- CLOSED tinyint(4) DEFAULT '0' NOT NULL,
- ISS_DATE date DEFAULT '0000-00-00' NOT NULL,
- PRIMARY KEY (PAPER_ID,YEAR,ISSUE)
- );
- INSERT INTO t1 VALUES (3,1999,34,0,'1999-07-12');
- INSERT INTO t1 VALUES (1,1999,111,0,'1999-03-23');
- INSERT INTO t1 VALUES (1,1999,222,0,'1999-03-23');
- INSERT INTO t1 VALUES (3,1999,33,0,'1999-07-12');
- INSERT INTO t1 VALUES (3,1999,32,0,'1999-07-12');
- INSERT INTO t1 VALUES (3,1999,31,0,'1999-07-12');
- INSERT INTO t1 VALUES (3,1999,30,0,'1999-07-12');
- INSERT INTO t1 VALUES (3,1999,29,0,'1999-07-12');
- INSERT INTO t1 VALUES (3,1999,28,0,'1999-07-12');
- INSERT INTO t1 VALUES (1,1999,40,1,'1999-05-01');
- INSERT INTO t1 VALUES (1,1999,41,1,'1999-05-01');
- INSERT INTO t1 VALUES (1,1999,42,1,'1999-05-01');
- INSERT INTO t1 VALUES (1,1999,46,1,'1999-05-01');
- INSERT INTO t1 VALUES (1,1999,47,1,'1999-05-01');
- INSERT INTO t1 VALUES (1,1999,48,1,'1999-05-01');
- INSERT INTO t1 VALUES (1,1999,49,1,'1999-05-01');
- INSERT INTO t1 VALUES (1,1999,50,0,'1999-05-01');
- INSERT INTO t1 VALUES (1,1999,51,0,'1999-05-01');
- INSERT INTO t1 VALUES (1,1999,200,0,'1999-06-28');
- INSERT INTO t1 VALUES (1,1999,52,0,'1999-06-28');
- INSERT INTO t1 VALUES (1,1999,53,0,'1999-06-28');
- INSERT INTO t1 VALUES (1,1999,54,0,'1999-06-28');
- INSERT INTO t1 VALUES (1,1999,55,0,'1999-06-28');
- INSERT INTO t1 VALUES (1,1999,56,0,'1999-07-01');
- INSERT INTO t1 VALUES (1,1999,57,0,'1999-07-01');
- INSERT INTO t1 VALUES (1,1999,58,0,'1999-07-01');
- INSERT INTO t1 VALUES (1,1999,59,0,'1999-07-01');
- INSERT INTO t1 VALUES (1,1999,60,0,'1999-07-01');
- INSERT INTO t1 VALUES (3,1999,35,0,'1999-07-12');
- select YEAR,ISSUE from t1 where PAPER_ID=3 and (YEAR>1999 or (YEAR=1999 and ISSUE>28)) order by YEAR,ISSUE;
- check table t1;
- repair table t1;
- drop table t1;
- CREATE TABLE t1 (
- id int(11) NOT NULL auto_increment,
- parent_id int(11) DEFAULT '0' NOT NULL,
- level tinyint(4) DEFAULT '0' NOT NULL,
- PRIMARY KEY (id),
- KEY parent_id (parent_id),
- KEY level (level)
- );
- INSERT INTO t1 VALUES (1,0,0),(3,1,1),(4,1,1),(8,2,2),(9,2,2),(17,3,2),(22,4,2),(24,4,2),(28,5,2),(29,5,2),(30,5,2),(31,6,2),(32,6,2),(33,6,2),(203,7,2),(202,7,2),(20,3,2),(157,0,0),(193,5,2),(40,7,2),(2,1,1),(15,2,2),(6,1,1),(34,6,2),(35,6,2),(16,3,2),(7,1,1),(36,7,2),(18,3,2),(26,5,2),(27,5,2),(183,4,2),(38,7,2),(25,5,2),(37,7,2),(21,4,2),(19,3,2),(5,1,1),(179,5,2);
- SELECT * FROM t1 WHERE level = 1 AND parent_id = 1;
- # The following select returned 0 rows in 3.23.8
- SELECT * FROM t1 WHERE level = 1 AND parent_id = 1 order by id;
- drop table t1;
- #
- # Testing of bug in range optimizer with many key parts and > and <
- #
- create table t1(
- Satellite varchar(25) not null,
- SensorMode varchar(25) not null,
- FullImageCornersUpperLeftLongitude double not null,
- FullImageCornersUpperRightLongitude double not null,
- FullImageCornersUpperRightLatitude double not null,
- FullImageCornersLowerRightLatitude double not null,
- index two (Satellite, SensorMode, FullImageCornersUpperLeftLongitude, FullImageCornersUpperRightLongitude, FullImageCornersUpperRightLatitude, FullImageCornersLowerRightLatitude));
- insert into t1 values("OV-3","PAN1",91,-92,40,50);
- insert into t1 values("OV-4","PAN1",91,-92,40,50);
- select * from t1 where t1.Satellite = "OV-3" and t1.SensorMode = "PAN1" and t1.FullImageCornersUpperLeftLongitude > -90.000000 and t1.FullImageCornersUpperRightLongitude < -82.000000;
- drop table t1;
- create table t1 ( aString char(100) not null default "", key aString (aString(10)) );
- insert t1 (aString) values ( "believe in myself" ), ( "believe" ), ("baaa" ), ( "believe in love");
- select * from t1 where aString < "believe in myself" order by aString;
- select * from t1 where aString > "believe in love" order by aString;
- alter table t1 drop key aString;
- select * from t1 where aString < "believe in myself" order by aString;
- select * from t1 where aString > "believe in love" order by aString;
- drop table t1;