475
475
drop table t1,t2,t3;
477
477
#LIMIT is not supported now
478
#create table t1 (a float);
480
#select 10.5 IN (SELECT * from t1 LIMIT 1);
482
#select 10.5 IN (SELECT * from t1 LIMIT 1 UNION SELECT 1.5);
485
#create table t1 (a int, b int, c varchar(10));
486
#create table t2 (a int);
487
#insert into t1 values (1,2,'a'),(2,3,'b'),(3,4,'c');
488
#insert into t2 values (1),(2),(NULL);
489
#select a, (select a,b,c from t1 where t1.a=t2.a) = ROW(a,2,'a'),(select c from t1 where a=t2.a) from t2;
490
#select a, (select a,b,c from t1 where t1.a=t2.a) = ROW(a,3,'b'),(select c from t1 where a=t2.a) from t2;
491
#select a, (select a,b,c from t1 where t1.a=t2.a) = ROW(a,4,'c'),(select c from t1 where a=t2.a) from t2;
494
#create table t1 (a int, b real, c varchar(10));
495
#insert into t1 values (1, 1, 'a'), (2,2,'b'), (NULL, 2, 'b');
496
#select ROW(1, 1, 'a') IN (select a,b,c from t1);
497
#select ROW(1, 2, 'a') IN (select a,b,c from t1);
498
#select ROW(1, 1, 'a') IN (select b,a,c from t1);
499
#select ROW(1, 1, 'a') IN (select a,b,c from t1 where a is not null);
500
#select ROW(1, 2, 'a') IN (select a,b,c from t1 where a is not null);
501
#select ROW(1, 1, 'a') IN (select b,a,c from t1 where a is not null);
502
#select ROW(1, 1, 'a') IN (select a,b,c from t1 where c='b' or c='a');
503
#select ROW(1, 2, 'a') IN (select a,b,c from t1 where c='b' or c='a');
504
#select ROW(1, 1, 'a') IN (select b,a,c from t1 where c='b' or c='a');
506
#select ROW(1, 1, 'a') IN (select b,a,c from t1 limit 2);
478
create table t1 (a float);
480
select 10.5 IN (SELECT * from t1 LIMIT 1);
482
select 10.5 IN (SELECT * from t1 LIMIT 1 UNION SELECT 1.5);
485
create table t1 (a int, b int, c varchar(10));
486
create table t2 (a int);
487
insert into t1 values (1,2,'a'),(2,3,'b'),(3,4,'c');
488
insert into t2 values (1),(2),(NULL);
489
select a, (select a,b,c from t1 where t1.a=t2.a) = ROW(a,2,'a'),(select c from t1 where a=t2.a) from t2;
490
select a, (select a,b,c from t1 where t1.a=t2.a) = ROW(a,3,'b'),(select c from t1 where a=t2.a) from t2;
491
select a, (select a,b,c from t1 where t1.a=t2.a) = ROW(a,4,'c'),(select c from t1 where a=t2.a) from t2;
494
create table t1 (a int, b real, c varchar(10));
495
insert into t1 values (1, 1, 'a'), (2,2,'b'), (NULL, 2, 'b');
496
select ROW(1, 1, 'a') IN (select a,b,c from t1);
497
select ROW(1, 2, 'a') IN (select a,b,c from t1);
498
select ROW(1, 1, 'a') IN (select b,a,c from t1);
499
select ROW(1, 1, 'a') IN (select a,b,c from t1 where a is not null);
500
select ROW(1, 2, 'a') IN (select a,b,c from t1 where a is not null);
501
select ROW(1, 1, 'a') IN (select b,a,c from t1 where a is not null);
502
select ROW(1, 1, 'a') IN (select a,b,c from t1 where c='b' or c='a');
503
select ROW(1, 2, 'a') IN (select a,b,c from t1 where c='b' or c='a');
504
select ROW(1, 1, 'a') IN (select b,a,c from t1 where c='b' or c='a');
506
select ROW(1, 1, 'a') IN (select b,a,c from t1 limit 2);
509
509
#test of uncacheable subqueries
510
510
CREATE TABLE t1 (a int);
516
516
CREATE TABLE `t1` (
517
`mot` varchar(30) NOT NULL default '',
518
`topic` bigint NOT NULL default '0',
517
`mot` varchar(30) character set latin1 NOT NULL default '',
518
`topic` bigint unsigned NOT NULL default '0',
519
519
`date` date NOT NULL default '0000-00-00',
520
`pseudo` varchar(35) NOT NULL default '',
520
`pseudo` varchar(35) character set latin1 NOT NULL default '',
521
521
PRIMARY KEY (`mot`,`pseudo`,`date`,`topic`),
522
522
KEY `pseudo` (`pseudo`,`date`,`topic`),
523
523
KEY `topic` (`topic`)
524
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
524
) ENGINE=MyISAM CHARSET=latin1 ROW_FORMAT=DYNAMIC;
526
526
CREATE TABLE `t2` (
527
`mot` varchar(30) NOT NULL default '',
528
`topic` bigint NOT NULL default '0',
527
`mot` varchar(30) character set latin1 NOT NULL default '',
528
`topic` bigint unsigned NOT NULL default '0',
529
529
`date` date NOT NULL default '0000-00-00',
530
`pseudo` varchar(35) NOT NULL default '',
530
`pseudo` varchar(35) character set latin1 NOT NULL default '',
531
531
PRIMARY KEY (`mot`,`pseudo`,`date`,`topic`),
532
532
KEY `pseudo` (`pseudo`,`date`,`topic`),
533
533
KEY `topic` (`topic`)
534
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
534
) ENGINE=MyISAM CHARSET=latin1 ROW_FORMAT=DYNAMIC;
536
536
CREATE TABLE `t3` (
537
`numeropost` bigint NOT NULL auto_increment,
538
`maxnumrep` int NOT NULL default '0',
537
`numeropost` bigint unsigned NOT NULL auto_increment,
538
`maxnumrep` int unsigned NOT NULL default '0',
539
539
PRIMARY KEY (`numeropost`),
540
540
UNIQUE KEY `maxnumrep` (`maxnumrep`)
541
) ENGINE=MyISAM CHARSET=latin1;
542
542
INSERT INTO t1 (mot, topic, pseudo) VALUES ('joce','1','joce'),('test','2','test');
544
544
INSERT INTO t2 (mot, topic, pseudo) VALUES ('joce','1','joce'),('test','2','test');
899
899
# correct used_tables()
902
CREATE TABLE `t1` ( `id` bigint NOT NULL auto_increment, `taskid` bigint NOT NULL default '0', `dbid` int NOT NULL default '0', `create_date` datetime NOT NULL default '0000-00-00 00:00:00', `last_update` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=3 ;
902
CREATE TABLE `t1` ( `id` bigint NOT NULL auto_increment, `taskid` bigint NOT NULL default '0', `dbid` int NOT NULL default '0', `create_date` datetime NOT NULL default '0000-00-00 00:00:00', `last_update` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`)) ENGINE=MyISAM CHARSET=latin1 AUTO_INCREMENT=3 ;
903
903
INSERT INTO `t1` (`id`, `taskid`, `dbid`, `create_date`,`last_update`) VALUES (1, 1, 15, '2003-09-29 10:31:36', '2003-09-29 10:31:36'), (2, 1, 21, now(), now());
904
CREATE TABLE `t2` (`db_id` int NOT NULL auto_increment,`name` varchar(200) NOT NULL default '',`primary_uid` int NOT NULL default '0',`secondary_uid` int NOT NULL default '0',PRIMARY KEY (`db_id`),UNIQUE KEY `name_2` (`name`)) ENGINE=MyISAM AUTO_INCREMENT=2147483647;
904
CREATE TABLE `t2` (`db_id` int NOT NULL auto_increment,`name` varchar(200) NOT NULL default '',`primary_uid` smallint NOT NULL default '0',`secondary_uid` smallint NOT NULL default '0',PRIMARY KEY (`db_id`),UNIQUE KEY `name_2` (`name`)) ENGINE=MyISAM CHARSET=latin1 AUTO_INCREMENT=2147483647;
905
905
INSERT INTO `t2` (`db_id`, `name`, `primary_uid`, `secondary_uid`) VALUES (18, 'Not Set 1', 0, 0),(19, 'Valid', 1, 2),(20, 'Valid 2', 1, 2),(21, 'Should Not Return', 1, 2),(26, 'Not Set 2', 0, 0),(-1, 'ALL DB\'S', 0, 0);
906
CREATE TABLE `t3` (`taskgenid` bigint NOT NULL auto_increment,`dbid` int NOT NULL default '0',`taskid` int NOT NULL default '0',`mon` int NOT NULL default '1',`tues` int NOT NULL default '1',`wed` int NOT NULL default '1',`thur` int NOT NULL default '1',`fri` int NOT NULL default '1',`sat` int NOT NULL default '0',`sun` int NOT NULL default '0',`how_often` int NOT NULL default '1',`userid` int NOT NULL default '0',`active` int NOT NULL default '1',PRIMARY KEY (`taskgenid`)) ENGINE=MyISAM AUTO_INCREMENT=2 ;
906
CREATE TABLE `t3` (`taskgenid` bigint NOT NULL auto_increment,`dbid` int NOT NULL default '0',`taskid` int NOT NULL default '0',`mon` tinyint NOT NULL default '1',`tues` tinyint NOT NULL default '1',`wed` tinyint NOT NULL default '1',`thur` tinyint NOT NULL default '1',`fri` tinyint NOT NULL default '1',`sat` tinyint NOT NULL default '0',`sun` tinyint NOT NULL default '0',`how_often` smallint NOT NULL default '1',`userid` smallint NOT NULL default '0',`active` tinyint NOT NULL default '1',PRIMARY KEY (`taskgenid`)) ENGINE=MyISAM CHARSET=latin1 AUTO_INCREMENT=2 ;
907
907
INSERT INTO `t3` (`taskgenid`, `dbid`, `taskid`, `mon`, `tues`,`wed`, `thur`, `fri`, `sat`, `sun`, `how_often`, `userid`, `active`) VALUES (1,-1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1);
908
CREATE TABLE `t4` (`task_id` int NOT NULL default '0',`description` varchar(200) NOT NULL default '') ENGINE=MyISAM;
908
CREATE TABLE `t4` (`task_id` smallint NOT NULL default '0',`description` varchar(200) NOT NULL default '') ENGINE=MyISAM CHARSET=latin1;
909
909
INSERT INTO `t4` (`task_id`, `description`) VALUES (1, 'Daily Check List'),(2, 'Weekly Status');
910
910
select dbid, name, (date_format(now() , '%Y-%m-%d') - INTERVAL how_often DAY) >= ifnull((SELECT date_format(max(create_date),'%Y-%m-%d') FROM t1 WHERE dbid = b.db_id AND taskid = a.taskgenid), '1950-01-01') from t3 a, t2 b, t4 WHERE dbid = - 1 AND primary_uid = '1' AND t4.task_id = taskid;
911
911
SELECT dbid, name FROM t3 a, t2 b, t4 WHERE dbid = - 1 AND primary_uid = '1' AND ((date_format(now() , '%Y-%m-%d') - INTERVAL how_often DAY) >= ifnull((SELECT date_format(max(create_date),'%Y-%m-%d') FROM t1 WHERE dbid = b.db_id AND taskid = a.taskgenid), '1950-01-01')) AND t4.task_id = taskid;
977
977
CREATE TABLE `t1` (
978
978
`id` int NOT NULL auto_increment,
979
`id_cns` int NOT NULL default '0',
979
`id_cns` tinyint unsigned NOT NULL default '0',
980
980
`tipo` enum('','UNO','DUE') NOT NULL default '',
981
`anno_dep` int NOT NULL default '0',
982
`particolare` bigint NOT NULL default '0',
983
`generale` bigint NOT NULL default '0',
984
`bis` int NOT NULL default '0',
981
`anno_dep` smallint unsigned NOT NULL default '0',
982
`particolare` bigint unsigned NOT NULL default '0',
983
`generale` bigint unsigned NOT NULL default '0',
984
`bis` tinyint unsigned NOT NULL default '0',
985
985
PRIMARY KEY (`id`),
986
986
UNIQUE KEY `idx_cns_gen_anno` (`anno_dep`,`id_cns`,`generale`,`particolare`),
987
987
UNIQUE KEY `idx_cns_par_anno` (`id_cns`,`anno_dep`,`tipo`,`particolare`,`bis`)
989
989
INSERT INTO `t1` VALUES (1,16,'UNO',1987,2048,9681,0),(2,50,'UNO',1987,1536,13987,0),(3,16,'UNO',1987,2432,14594,0),(4,16,'UNO',1987,1792,13422,0),(5,16,'UNO',1987,1025,10240,0),(6,16,'UNO',1987,1026,7089,0);
990
990
CREATE TABLE `t2` (
991
`id` int NOT NULL auto_increment,
992
`max_anno_dep` int NOT NULL default '0',
991
`id` tinyint unsigned NOT NULL auto_increment,
992
`max_anno_dep` smallint unsigned NOT NULL default '0',
993
993
PRIMARY KEY (`id`)
995
995
INSERT INTO `t2` VALUES (16,1987),(50,1990),(51,1990);
1333
1333
# Test of correct maybe_null flag returning by subquwery for temporary table
1336
CREATE TABLE `t1` ( `master` int NOT NULL default '0', `map` int NOT NULL default '0', `slave` int NOT NULL default '0', `access` int NOT NULL default '0', UNIQUE KEY `access_u` (`master`,`map`,`slave`));
1336
CREATE TABLE `t1` ( `master` int unsigned NOT NULL default '0', `map` smallint unsigned NOT NULL default '0', `slave` int unsigned NOT NULL default '0', `access` int unsigned NOT NULL default '0', UNIQUE KEY `access_u` (`master`,`map`,`slave`));
1337
1337
INSERT INTO `t1` VALUES (1,0,0,700),(1,1,1,400),(1,5,5,400),(1,12,12,400),(1,12,32,400),(4,12,32,400);
1338
CREATE TABLE `t2` ( `id` int NOT NULL default '0', `pid` int NOT NULL default '0', `map` int NOT NULL default '0', `level` int NOT NULL default '0', `title` varchar(255) default NULL, PRIMARY KEY (`id`,`pid`,`map`), KEY `level` (`level`), KEY `id` (`id`,`map`)) ;
1338
CREATE TABLE `t2` ( `id` int unsigned NOT NULL default '0', `pid` int unsigned NOT NULL default '0', `map` smallint unsigned NOT NULL default '0', `level` tinyint unsigned NOT NULL default '0', `title` varchar(255) default NULL, PRIMARY KEY (`id`,`pid`,`map`), KEY `level` (`level`), KEY `id` (`id`,`map`)) ;
1339
1339
INSERT INTO `t2` VALUES (6,5,12,7,'a'),(12,0,0,7,'a'),(12,1,0,7,'a'),(12,5,5,7,'a'),(12,5,12,7,'a');
1341
1341
SELECT b.sc FROM (SELECT (SELECT a.access FROM t1 a WHERE a.map = op.map AND a.slave = op.pid AND a.master = 1) ac FROM t2 op WHERE op.id = 12 AND op.map = 0) b;
1587
1587
# Item_int_with_ref check (BUG#10020)
1589
#CREATE TABLE `t1` (
1590
# `itemid` bigint NOT NULL auto_increment,
1591
# `sessionid` bigint default NULL,
1592
# `time` int NOT NULL default '0',
1593
# `data` text collate latin1_general_ci NOT NULL,
1594
# PRIMARY KEY (`itemid`)
1596
#INSERT INTO `t1` VALUES (1, 1, 1, '');
1597
#CREATE TABLE `t2` (
1598
# `sessionid` bigint NOT NULL auto_increment,
1599
# `pid` int NOT NULL default '0',
1600
# `date` int NOT NULL default '0',
1601
# `ip` varchar(15) collate latin1_general_ci NOT NULL default '',
1602
# PRIMARY KEY (`sessionid`)
1604
#INSERT INTO `t2` VALUES (1, 1, 1, '10.10.10.1');
1605
#SELECT s.ip, count( e.itemid ) FROM `t1` e JOIN t2 s ON s.sessionid = e.sessionid WHERE e.sessionid = ( SELECT sessionid FROM t2 ORDER BY sessionid DESC LIMIT 1 ) GROUP BY s.ip HAVING count( e.itemid ) >0 LIMIT 0 , 30;
1590
`itemid` bigint unsigned NOT NULL auto_increment,
1591
`sessionid` bigint unsigned default NULL,
1592
`time` int unsigned NOT NULL default '0',
1593
`type` set('A','D','E','F','G','I','L','N','U') collate latin1_general_ci NOT
1595
`data` text collate latin1_general_ci NOT NULL,
1596
PRIMARY KEY (`itemid`)
1597
) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
1598
INSERT INTO `t1` VALUES (1, 1, 1, 'D', '');
1600
`sessionid` bigint unsigned NOT NULL auto_increment,
1601
`pid` int unsigned NOT NULL default '0',
1602
`date` int unsigned NOT NULL default '0',
1603
`ip` varchar(15) collate latin1_general_ci NOT NULL default '',
1604
PRIMARY KEY (`sessionid`)
1605
) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
1606
INSERT INTO `t2` VALUES (1, 1, 1, '10.10.10.1');
1607
SELECT s.ip, count( e.itemid ) FROM `t1` e JOIN t2 s ON s.sessionid = e.sessionid WHERE e.sessionid = ( SELECT sessionid FROM t2 ORDER BY sessionid DESC LIMIT 1 ) GROUP BY s.ip HAVING count( e.itemid ) >0 LIMIT 0 , 30;
1608
1610
# BUG#11821 : Select from subselect using aggregate function on an enum
1953
1955
DROP TABLE t1,t2,t3;
1958
# Item_int_with_ref check (BUG#10020)
1961
`itemid` bigint unsigned NOT NULL auto_increment,
1962
`sessionid` bigint unsigned default NULL,
1963
`time` int unsigned NOT NULL default '0',
1964
`type` set('A','D','E','F','G','I','L','N','U') collate latin1_general_ci NOT
1966
`data` text collate latin1_general_ci NOT NULL,
1967
PRIMARY KEY (`itemid`)
1968
) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
1969
INSERT INTO `t1` VALUES (1, 1, 1, 'D', '');
1971
`sessionid` bigint unsigned NOT NULL auto_increment,
1972
`pid` int unsigned NOT NULL default '0',
1973
`date` int unsigned NOT NULL default '0',
1974
`ip` varchar(15) collate latin1_general_ci NOT NULL default '',
1975
PRIMARY KEY (`sessionid`)
1976
) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
1977
INSERT INTO `t2` VALUES (1, 1, 1, '10.10.10.1');
1978
SELECT s.ip, count( e.itemid ) FROM `t1` e JOIN t2 s ON s.sessionid = e.sessionid WHERE e.sessionid = ( SELECT sessionid FROM t2 ORDER BY sessionid DESC LIMIT 1 ) GROUP BY s.ip HAVING count( e.itemid ) >0 LIMIT 0 , 30;
1956
1982
# Correct building of equal fields list (do not include outer
1957
1983
# fields) (BUG#6384)