480
475
drop table t1,t2,t3;
482
477
#LIMIT is not supported now
483
#create table t1 (a float);
485
#select 10.5 IN (SELECT * from t1 LIMIT 1);
487
#select 10.5 IN (SELECT * from t1 LIMIT 1 UNION SELECT 1.5);
490
#create table t1 (a int, b int, c varchar(10));
491
#create table t2 (a int);
492
#insert into t1 values (1,2,'a'),(2,3,'b'),(3,4,'c');
493
#insert into t2 values (1),(2),(NULL);
494
#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;
495
#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;
496
#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;
499
#create table t1 (a int, b real, c varchar(10));
500
#insert into t1 values (1, 1, 'a'), (2,2,'b'), (NULL, 2, 'b');
501
#select ROW(1, 1, 'a') IN (select a,b,c from t1);
502
#select ROW(1, 2, 'a') IN (select a,b,c from t1);
503
#select ROW(1, 1, 'a') IN (select b,a,c from t1);
504
#select ROW(1, 1, 'a') IN (select a,b,c from t1 where a is not null);
505
#select ROW(1, 2, 'a') IN (select a,b,c from t1 where a is not null);
506
#select ROW(1, 1, 'a') IN (select b,a,c from t1 where a is not null);
507
#select ROW(1, 1, 'a') IN (select a,b,c from t1 where c='b' or c='a');
508
#select ROW(1, 2, 'a') IN (select a,b,c from t1 where c='b' or c='a');
509
#select ROW(1, 1, 'a') IN (select b,a,c from t1 where c='b' or c='a');
511
#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);
514
509
#test of uncacheable subqueries
515
510
CREATE TABLE t1 (a int);
521
516
CREATE TABLE `t1` (
522
`mot` varchar(30) NOT NULL default '',
523
`topic` bigint NOT NULL default '0',
517
`mot` varchar(30) character set latin1 NOT NULL default '',
518
`topic` bigint unsigned NOT NULL default '0',
524
519
`date` date NOT NULL default '0000-00-00',
525
`pseudo` varchar(35) NOT NULL default '',
520
`pseudo` varchar(35) character set latin1 NOT NULL default '',
526
521
PRIMARY KEY (`mot`,`pseudo`,`date`,`topic`),
527
522
KEY `pseudo` (`pseudo`,`date`,`topic`),
528
523
KEY `topic` (`topic`)
529
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
524
) ENGINE=MyISAM CHARSET=latin1 ROW_FORMAT=DYNAMIC;
531
526
CREATE TABLE `t2` (
532
`mot` varchar(30) NOT NULL default '',
533
`topic` bigint NOT NULL default '0',
527
`mot` varchar(30) character set latin1 NOT NULL default '',
528
`topic` bigint unsigned NOT NULL default '0',
534
529
`date` date NOT NULL default '0000-00-00',
535
`pseudo` varchar(35) NOT NULL default '',
530
`pseudo` varchar(35) character set latin1 NOT NULL default '',
536
531
PRIMARY KEY (`mot`,`pseudo`,`date`,`topic`),
537
532
KEY `pseudo` (`pseudo`,`date`,`topic`),
538
533
KEY `topic` (`topic`)
539
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
534
) ENGINE=MyISAM CHARSET=latin1 ROW_FORMAT=DYNAMIC;
541
536
CREATE TABLE `t3` (
542
`numeropost` bigint NOT NULL auto_increment,
543
`maxnumrep` int NOT NULL default '0',
537
`numeropost` bigint unsigned NOT NULL auto_increment,
538
`maxnumrep` int unsigned NOT NULL default '0',
544
539
PRIMARY KEY (`numeropost`),
545
540
UNIQUE KEY `maxnumrep` (`maxnumrep`)
541
) ENGINE=MyISAM CHARSET=latin1;
547
542
INSERT INTO t1 (mot, topic, pseudo) VALUES ('joce','1','joce'),('test','2','test');
549
544
INSERT INTO t2 (mot, topic, pseudo) VALUES ('joce','1','joce'),('test','2','test');
904
899
# correct used_tables()
907
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 ;
908
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());
909
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;
910
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);
911
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 ;
912
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);
913
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;
914
909
INSERT INTO `t4` (`task_id`, `description`) VALUES (1, 'Daily Check List'),(2, 'Weekly Status');
915
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;
916
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;
982
977
CREATE TABLE `t1` (
983
978
`id` int NOT NULL auto_increment,
984
`id_cns` int NOT NULL default '0',
979
`id_cns` tinyint unsigned NOT NULL default '0',
985
980
`tipo` enum('','UNO','DUE') NOT NULL default '',
986
`anno_dep` int NOT NULL default '0',
987
`particolare` bigint NOT NULL default '0',
988
`generale` bigint NOT NULL default '0',
989
`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',
990
985
PRIMARY KEY (`id`),
991
986
UNIQUE KEY `idx_cns_gen_anno` (`anno_dep`,`id_cns`,`generale`,`particolare`),
992
987
UNIQUE KEY `idx_cns_par_anno` (`id_cns`,`anno_dep`,`tipo`,`particolare`,`bis`)
994
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);
995
990
CREATE TABLE `t2` (
996
`id` int NOT NULL auto_increment,
997
`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',
998
993
PRIMARY KEY (`id`)
1000
995
INSERT INTO `t2` VALUES (16,1987),(50,1990),(51,1990);
1338
1333
# Test of correct maybe_null flag returning by subquwery for temporary table
1341
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`));
1342
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);
1343
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`)) ;
1344
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');
1346
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;
1592
1587
# Item_int_with_ref check (BUG#10020)
1594
#CREATE TABLE `t1` (
1595
# `itemid` bigint NOT NULL auto_increment,
1596
# `sessionid` bigint default NULL,
1597
# `time` int NOT NULL default '0',
1598
# `data` text collate latin1_general_ci NOT NULL,
1599
# PRIMARY KEY (`itemid`)
1601
#INSERT INTO `t1` VALUES (1, 1, 1, '');
1602
#CREATE TABLE `t2` (
1603
# `sessionid` bigint NOT NULL auto_increment,
1604
# `pid` int NOT NULL default '0',
1605
# `date` int NOT NULL default '0',
1606
# `ip` varchar(15) collate latin1_general_ci NOT NULL default '',
1607
# PRIMARY KEY (`sessionid`)
1609
#INSERT INTO `t2` VALUES (1, 1, 1, '10.10.10.1');
1610
#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;
1613
1610
# BUG#11821 : Select from subselect using aggregate function on an enum
1958
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;
1961
1982
# Correct building of equal fields list (do not include outer
1962
1983
# fields) (BUG#6384)