110
106
select * from t3 where a in (select * from t2);
111
107
insert into t4 values (12,7),(1,7),(10,9),(9,6),(7,6),(3,9),(1,10);
113
109
select b,max(a) as ma from t4 group by b having b < (select max(t2.a) from t2 where t2.b=t4.b);
114
110
insert into t2 values (2,10);
115
111
select b,max(a) as ma from t4 group by b having ma < (select max(t2.a) from t2 where t2.b=t4.b);
116
112
delete from t2 where a=2 and b=10;
117
113
select b,max(a) as ma from t4 group by b having b >= (select max(t2.a) from t2 where t2.b=t4.b);
118
create temporary table t5 (a int) ENGINE=MyISAM;
114
create table t5 (a int);
119
115
select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;
120
116
insert into t5 values (5);
121
117
select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;
122
118
insert into t5 values (2);
123
119
select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;
125
120
explain extended select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;
127
122
select (select a from t1 where t1.a=t2.a union all select a from t5 where t5.a=t2.a), a from t2;
128
create temporary table t6 (patient_uq int, clinic_uq int, index i1 (clinic_uq)) ENGINE=MyISAM;
129
create temporary table t7( uq int primary key, name char(25)) ENGINE=MyISAM;
123
create table t6 (patient_uq int, clinic_uq int, index i1 (clinic_uq));
124
create table t7( uq int primary key, name char(25));
130
125
insert into t7 values(1,"Oblastnaia bolnitsa"),(2,"Bolnitsa Krasnogo Kresta");
131
126
insert into t6 values (1,1),(1,2),(2,2),(1,3);
132
127
select * from t6 where exists (select * from t7 where uq = clinic_uq);
133
128
explain extended select * from t6 where exists (select * from t7 where uq = clinic_uq);
135
--echo # not unique fields
137
132
select * from t1 where a= (select a from t2,t4 where t2.b=t4.b);
139
--echo # different tipes & group functions
134
# different tipes & group functions
140
135
drop table t1,t2,t3;
142
137
CREATE TABLE t3 (a varchar(20),b char(1) NOT NULL default '0');
143
138
INSERT INTO t3 VALUES ('W','a'),('A','c'),('J','b');
144
139
CREATE TABLE t2 (a varchar(20),b int NOT NULL default '0');
145
140
INSERT INTO t2 VALUES ('W','1'),('A','3'),('J','2');
146
CREATE TABLE t1 (a varchar(20),b date NULL);
141
CREATE TABLE t1 (a varchar(20),b date NOT NULL default '0000-00-00');
147
142
INSERT INTO t1 VALUES ('W','1732-02-22'),('A','1735-10-30'),('J','1743-04-13');
148
143
SELECT * FROM t1 WHERE b = (SELECT MIN(b) FROM t1);
149
144
SELECT * FROM t2 WHERE b = (SELECT MIN(b) FROM t2);
150
145
SELECT * FROM t3 WHERE b = (SELECT MIN(b) FROM t3);
152
147
CREATE TABLE `t8` (
153
`pseudo` varchar(35) NOT NULL default '',
154
`email` varchar(60) NOT NULL default '',
148
`pseudo` varchar(35) character set latin1 NOT NULL default '',
149
`email` varchar(60) character set latin1 NOT NULL default '',
155
150
PRIMARY KEY (`pseudo`),
156
151
UNIQUE KEY `email` (`email`)
152
) ENGINE=MyISAM CHARSET=latin1 ROW_FORMAT=DYNAMIC;
159
154
INSERT INTO t8 (pseudo,email) VALUES ('joce','test');
160
155
INSERT INTO t8 (pseudo,email) VALUES ('joce1','test1');
161
156
INSERT INTO t8 (pseudo,email) VALUES ('2joce1','2test1');
163
157
EXPLAIN EXTENDED SELECT pseudo,(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce')) FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce');
165
159
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
442
455
select 1.5 > ANY (SELECT * from t1);
443
456
select 10.5 > ANY (SELECT * from t1);
444
457
explain extended select (select a+1) from t1;
446
458
select (select a+1) from t1;
450
--echo # Null with keys
453
CREATE TEMPORARY TABLE t1 (a int NOT NULL default '0', PRIMARY KEY (a)) ENGINE=MyISAM;
454
CREATE TEMPORARY TABLE t2 (a int default '0', INDEX (a)) ENGINE=MyISAM;
465
CREATE TABLE t1 (a int NOT NULL default '0', PRIMARY KEY (a));
466
CREATE TABLE t2 (a int default '0', INDEX (a));
455
467
INSERT INTO t1 VALUES (1),(2),(3),(4);
456
468
INSERT INTO t2 VALUES (1),(2),(3);
457
469
SELECT t1.a, t1.a in (select t2.a from t2) FROM t1;
458
470
explain extended SELECT t1.a, t1.a in (select t2.a from t2) FROM t1;
459
CREATE TEMPORARY TABLE t3 (a int default '0') ENGINE=MyISAM;
471
CREATE TABLE t3 (a int default '0');
460
472
INSERT INTO t3 VALUES (1),(2),(3);
461
473
SELECT t1.a, t1.a in (select t2.a from t2,t3 where t3.a=t2.a) FROM t1;
462
474
explain extended SELECT t1.a, t1.a in (select t2.a from t2,t3 where t3.a=t2.a) FROM t1;
463
475
drop table t1,t2,t3;
465
--echo #LIMIT is not supported now
466
--echo #create table t1 (a float) ENGINE=MyISAM;
467
--echo #-- error 1235
468
--echo #select 10.5 IN (SELECT * from t1 LIMIT 1);
469
--echo #-- error 1235
470
--echo #select 10.5 IN (SELECT * from t1 LIMIT 1 UNION SELECT 1.5);
471
--echo #drop table t1;
473
--echo #create table t1 (a int, b int, c varchar(10)) ENGINE=MyISAM;
474
--echo #create table t2 (a int) ENGINE=MyISAM;
475
--echo #insert into t1 values (1,2,'a'),(2,3,'b'),(3,4,'c');
476
--echo #insert into t2 values (1),(2),(NULL);
477
--echo #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;
478
--echo #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;
479
--echo #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;
480
--echo #drop table t1,t2;
482
--echo #create table t1 (a int, b real, c varchar(10)) ENGINE=MyISAM;
483
--echo #insert into t1 values (1, 1, 'a'), (2,2,'b'), (NULL, 2, 'b');
484
--echo #select ROW(1, 1, 'a') IN (select a,b,c from t1);
485
--echo #select ROW(1, 2, 'a') IN (select a,b,c from t1);
486
--echo #select ROW(1, 1, 'a') IN (select b,a,c from t1);
487
--echo #select ROW(1, 1, 'a') IN (select a,b,c from t1 where a is not null);
488
--echo #select ROW(1, 2, 'a') IN (select a,b,c from t1 where a is not null);
489
--echo #select ROW(1, 1, 'a') IN (select b,a,c from t1 where a is not null);
490
--echo #select ROW(1, 1, 'a') IN (select a,b,c from t1 where c='b' or c='a');
491
--echo #select ROW(1, 2, 'a') IN (select a,b,c from t1 where c='b' or c='a');
492
--echo #select ROW(1, 1, 'a') IN (select b,a,c from t1 where c='b' or c='a');
493
--echo #-- error 1235
494
--echo #select ROW(1, 1, 'a') IN (select b,a,c from t1 limit 2);
495
--echo #drop table t1;
497
--echo #test of uncacheable subqueries
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);
509
#test of uncacheable subqueries
498
510
CREATE TABLE t1 (a int);
499
511
EXPLAIN EXTENDED SELECT (SELECT RAND() FROM t1) FROM t1;
500
512
EXPLAIN EXTENDED SELECT (SELECT BENCHMARK(1,1) FROM t1) FROM t1;
504
CREATE TEMPORARY TABLE `t1` (
505
`mot` varchar(30) NOT NULL default '',
506
`topic` bigint NOT NULL default '0',
507
`date` date NULL DEFAULT '2009-01-20',
508
`pseudo` varchar(35) NOT NULL default '',
509
PRIMARY KEY (`mot`,`pseudo`,`date`,`topic`),
510
KEY `pseudo` (`pseudo`,`date`,`topic`),
511
KEY `topic` (`topic`)
512
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
514
CREATE TEMPORARY TABLE `t2` (
515
`mot` varchar(30) NOT NULL default '',
516
`topic` bigint NOT NULL default '0',
517
`date` date NULL default '1997-08-29',
518
`pseudo` varchar(35) NOT NULL default '',
519
PRIMARY KEY (`mot`,`pseudo`,`date`,`topic`),
520
KEY `pseudo` (`pseudo`,`date`,`topic`),
521
KEY `topic` (`topic`)
522
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
524
CREATE TEMPORARY TABLE `t3` (
525
`numeropost` bigint NOT NULL auto_increment,
526
`maxnumrep` int NOT NULL default '0',
517
`mot` varchar(30) character set latin1 NOT NULL default '',
518
`topic` bigint unsigned NOT NULL default '0',
519
`date` date NOT NULL default '0000-00-00',
520
`pseudo` varchar(35) character set latin1 NOT NULL default '',
521
PRIMARY KEY (`mot`,`pseudo`,`date`,`topic`),
522
KEY `pseudo` (`pseudo`,`date`,`topic`),
523
KEY `topic` (`topic`)
524
) ENGINE=MyISAM CHARSET=latin1 ROW_FORMAT=DYNAMIC;
527
`mot` varchar(30) character set latin1 NOT NULL default '',
528
`topic` bigint unsigned NOT NULL default '0',
529
`date` date NOT NULL default '0000-00-00',
530
`pseudo` varchar(35) character set latin1 NOT NULL default '',
531
PRIMARY KEY (`mot`,`pseudo`,`date`,`topic`),
532
KEY `pseudo` (`pseudo`,`date`,`topic`),
533
KEY `topic` (`topic`)
534
) ENGINE=MyISAM CHARSET=latin1 ROW_FORMAT=DYNAMIC;
537
`numeropost` bigint unsigned NOT NULL auto_increment,
538
`maxnumrep` int unsigned NOT NULL default '0',
527
539
PRIMARY KEY (`numeropost`),
528
540
UNIQUE KEY `maxnumrep` (`maxnumrep`)
541
) ENGINE=MyISAM CHARSET=latin1;
530
542
INSERT INTO t1 (mot, topic, pseudo) VALUES ('joce','1','joce'),('test','2','test');
532
544
INSERT INTO t2 (mot, topic, pseudo) VALUES ('joce','1','joce'),('test','2','test');
643
654
select * from t1;
647
--echo # correct NULL in <CONSTANT> IN (SELECT ...)
649
create temporary table t1 (a int, unique index indexa (a)) ENGINE=MyISAM;
662
) ENGINE=MyISAM CHARSET=latin1;
663
INSERT INTO t1 VALUES (1),(1),(2),(2),(1),(3);
666
name varchar(15) default NULL
667
) ENGINE=MyISAM CHARSET=latin1;
669
INSERT INTO t2 VALUES (4,'vita'), (1,'vita'), (2,'vita'), (1,'vita');
670
update t1, t2 set t2.name='lenka' where t2.id in (select id from t1);
675
# correct NULL in <CONSTANT> IN (SELECT ...)
677
create table t1 (a int, unique index indexa (a));
650
678
insert into t1 values (-1), (-4), (-2), (NULL);
651
679
select -10 IN (select a from t1 FORCE INDEX (indexa));
655
--echo # Test optimization for sub selects
683
# Test optimization for sub selects
657
685
create table t1 (id int not null auto_increment primary key, salary int, key(salary));
658
686
insert into t1 (salary) values (100),(1000),(10000),(10),(500),(5000),(50000);
660
687
explain extended SELECT id FROM t1 where salary = (SELECT MAX(salary) FROM t1);
663
690
CREATE TABLE t1 (
664
ID int NOT NULL auto_increment,
665
SUB_ID int NOT NULL default '0',
666
REF_ID int default NULL,
667
REF_SUB int default '0',
691
ID int unsigned NOT NULL auto_increment,
692
SUB_ID int unsigned NOT NULL default '0',
693
REF_ID int unsigned default NULL,
694
REF_SUB int unsigned default '0',
668
695
PRIMARY KEY (ID,SUB_ID),
669
696
UNIQUE KEY t1_PK (ID,SUB_ID),
670
697
KEY t1_FK (REF_ID,REF_SUB),
671
698
KEY t1_REFID (REF_ID)
699
) ENGINE=MyISAM CHARSET=cp1251;
673
700
INSERT INTO t1 VALUES (1,0,NULL,NULL),(2,0,NULL,NULL);
674
701
SELECT DISTINCT REF_ID FROM t1 WHERE ID= (SELECT DISTINCT REF_ID FROM t1 WHERE ID=2);
678
--echo # uninterruptable update
680
create temporary table t1 (a int, b int) ENGINE=MyISAM;
681
create temporary table t2 (a int, b int) ENGINE=MyISAM;
705
# uninterruptable update
707
create table t1 (a int, b int);
708
create table t2 (a int, b int);
683
710
insert into t1 values (1,0), (2,0), (3,0);
684
711
insert into t2 values (1,1), (2,1), (3,1), (2,2);
689
716
drop table t1, t2;
692
--echo # reduced subselect in ORDER BY & GROUP BY clauses
719
# reduced subselect in ORDER BY & GROUP BY clauses
695
CREATE TEMPORARY TABLE `t1` (
696
`id` bigint NOT NULL auto_increment,
723
`id` bigint unsigned NOT NULL auto_increment,
697
724
`pseudo` varchar(35) NOT NULL default '',
698
725
`email` varchar(60) NOT NULL default '',
699
726
PRIMARY KEY (`id`),
700
727
UNIQUE KEY `email` (`email`),
701
728
UNIQUE KEY `pseudo` (`pseudo`)
702
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
729
) ENGINE=MyISAM CHARSET=latin1 PACK_KEYS=1 ROW_FORMAT=DYNAMIC;
703
730
INSERT INTO t1 (id,pseudo,email) VALUES (1,'test','test'),(2,'test1','test1');
704
731
SELECT pseudo as a, pseudo as b FROM t1 GROUP BY (SELECT a) ORDER BY (SELECT id*1);
705
732
drop table if exists t1;
707
734
(SELECT 1 as a) UNION (SELECT 1) ORDER BY (SELECT a+0);
710
--echo # IN subselect optimization test
712
create temporary table t1 (a int not null, b int, primary key (a)) ENGINE=MyISAM;
713
create temporary table t2 (a int not null, primary key (a)) ENGINE=MyISAM;
714
create temporary table t3 (a int not null, b int, primary key (a)) ENGINE=MyISAM;
737
# IN subselect optimization test
739
create table t1 (a int not null, b int, primary key (a));
740
create table t2 (a int not null, primary key (a));
741
create table t3 (a int not null, b int, primary key (a));
715
742
insert into t1 values (1,10), (2,20), (3,30), (4,40);
716
743
insert into t2 values (2), (3), (4), (5);
717
744
insert into t3 values (10,3), (20,4), (30,5);
753
780
explain extended select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
754
781
drop table t1, t2, t3;
757
--echo # alloc_group_fields() working
759
create temporary table t1 (a int, b int) ENGINE=MyISAM;
760
create temporary table t2 (a int, b int) ENGINE=MyISAM;
761
create temporary table t3 (a int, b int) ENGINE=MyISAM;
784
# alloc_group_fields() working
786
create table t1 (a int, b int);
787
create table t2 (a int, b int);
788
create table t3 (a int, b int);
762
789
insert into t1 values (0,100),(1,2), (1,3), (2,2), (2,7), (2,-1), (3,10);
763
790
insert into t2 values (0,0), (1,1), (2,1), (3,1), (4,1);
764
791
insert into t3 values (3,3), (2,2), (1,1);
765
792
select a,(select count(distinct t1.b) as sum from t1,t2 where t1.a=t2.a and t2.b > 0 and t1.a <= t3.b group by t1.a order by sum limit 1) from t3;
766
793
drop table t1,t2,t3;
769
--echo # aggregate functions in HAVING test
771
create temporary table t1 (s1 int) ENGINE=MyISAM;
772
create temporary table t2 (s1 int) ENGINE=MyISAM;
796
# aggregate functions in HAVING test
798
create table t1 (s1 int);
799
create table t2 (s1 int);
773
800
insert into t1 values (1);
774
801
insert into t2 values (1);
775
802
select * from t1 where exists (select s1 from t2 having max(t2.s1)=t1.s1);
776
803
drop table t1,t2;
779
--echo # update subquery with wrong field (to force name resolving
780
--echo # in UPDATE name space)
782
create temporary table t1 (s1 int) ENGINE=MyISAM;
783
create temporary table t2 (s1 int) ENGINE=MyISAM;
806
# update subquery with wrong field (to force name resolving
807
# in UPDATE name space)
809
create table t1 (s1 int);
810
create table t2 (s1 int);
784
811
insert into t1 values (1);
785
812
insert into t2 values (1);
787
814
update t1 set s1 = s1 + 1 where 1 = (select x.s1 as A from t2 WHERE t2.s1 > t1.s1 order by A);
788
815
DROP TABLE t1, t2;
791
--echo # collation test
793
--echo #CREATE TABLE t1 (s1 CHAR(5) COLLATE latin1_german1_ci,
794
--echo # s2 CHAR(5) COLLATE latin1_swedish_ci) ENGINE=MyISAM;
795
--echo #INSERT INTO t1 VALUES ('z','?');
796
--echo #-- error 1267
797
--echo #select * from t1 where s1 > (select max(s2) from t1);
798
--echo #-- error 1267
799
--echo #select * from t1 where s1 > any (select max(s2) from t1);
800
--echo #drop table t1;
820
CREATE TABLE t1 (s1 CHAR(5) COLLATE latin1_german1_ci,
821
s2 CHAR(5) COLLATE latin1_swedish_ci);
822
INSERT INTO t1 VALUES ('z','?');
824
select * from t1 where s1 > (select max(s2) from t1);
826
select * from t1 where s1 > any (select max(s2) from t1);
803
--echo # aggregate functions reinitialization
830
# aggregate functions reinitialization
805
832
create table t1(toid int,rd int);
806
833
create table t2(userid int,pmnew int,pmtotal int);
807
834
insert into t2 values(1,0,0),(2,0,0);
861
887
explain extended select * from t3 where NULL >= some (select b from t2);
862
888
select * from t3 where NULL >= some (select b from t2 group by 1);
863
889
explain extended select * from t3 where NULL >= some (select b from t2 group by 1);
865
--echo # optimized static ALL/ANY with grouping
891
# optimized static ALL/ANY with grouping
867
893
insert into t2 values (2,2), (2,1), (3,3), (3,1);
868
894
select * from t3 where a > all (select max(b) from t2 group by a);
869
895
explain extended select * from t3 where a > all (select max(b) from t2 group by a);
870
896
drop table t2, t3;
873
--echo # correct used_tables()
899
# correct used_tables()
876
CREATE TEMPORARY TABLE `t1` ( `id` bigint NOT NULL auto_increment, `taskid` bigint NOT NULL default '0', `dbid` int NOT NULL default '0', `create_date` datetime, `last_update` datetime, 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 ;
877
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());
878
CREATE TEMPORARY 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;
879
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);
880
CREATE TEMPORARY 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 ;
881
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);
882
CREATE TEMPORARY 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;
883
909
INSERT INTO `t4` (`task_id`, `description`) VALUES (1, 'Daily Check List'),(2, 'Weekly Status');
884
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;
885
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;
886
912
drop table t1,t2,t3,t4;
889
--echo # cardinality check
891
CREATE TEMPORARY TABLE t1 (id int default NULL) ENGINE=MyISAM;
917
CREATE TABLE t1 (id int default NULL) ENGINE=MyISAM CHARSET=latin1;
892
918
INSERT INTO t1 VALUES (1),(5);
893
CREATE TEMPORARY TABLE t2 (id int default NULL) ENGINE=MyISAM;
919
CREATE TABLE t2 (id int default NULL) ENGINE=MyISAM CHARSET=latin1;
894
920
INSERT INTO t2 VALUES (2),(6);
896
922
select * from t1 where (1,2,6) in (select * from t2);
897
923
DROP TABLE t1,t2;
900
--echo # optimized ALL/ANY with union
926
# optimized ALL/ANY with union
902
928
create table t1 (s1 char);
903
929
insert into t1 values ('e');
904
930
select * from t1 where 'f' > any (select s1 from t1);
905
931
select * from t1 where 'f' > any (select s1 from t1 union select s1 from t1);
907
932
explain extended select * from t1 where 'f' > any (select s1 from t1 union select s1 from t1);
911
--echo # filesort in subquery (restoring join_tab)
913
CREATE TEMPORARY TABLE t1 (number char(11) NOT NULL default '') ENGINE=MyISAM;
936
# filesort in subquery (restoring join_tab)
938
CREATE TABLE t1 (number char(11) NOT NULL default '') ENGINE=MyISAM CHARSET=latin1;
914
939
INSERT INTO t1 VALUES ('69294728265'),('18621828126'),('89356874041'),('95895001874');
915
CREATE TEMPORARY TABLE t2 (code char(5) NOT NULL default '',UNIQUE KEY code (code)) ENGINE=MyISAM;
940
CREATE TABLE t2 (code char(5) NOT NULL default '',UNIQUE KEY code (code)) ENGINE=MyISAM CHARSET=latin1;
916
941
INSERT INTO t2 VALUES ('1'),('1226'),('1245'),('1862'),('18623'),('1874'),('1967'),('6');
917
942
select c.number as phone,(select p.code from t2 p where c.number like concat(p.code, '%') order by length(p.code) desc limit 1) as code from t1 c;
918
943
drop table t1, t2;
921
--echo # unresolved field error
923
create temporary table t1 (s1 int) ENGINE=MyISAM;
924
create temporary table t2 (s1 int) ENGINE=MyISAM;
946
# unresolved field error
948
create table t1 (s1 int);
949
create table t2 (s1 int);
926
951
select * from t1 where (select count(*) from t2 where t1.s2) = 1;
930
955
select count(*) from t2 group by t1.s2;
931
956
drop table t1, t2;
934
--echo # fix_fields() in add_ref_to_table_cond()
936
CREATE TEMPORARY TABLE t1(COLA FLOAT NOT NULL,COLB FLOAT NOT NULL,COLC VARCHAR(20) DEFAULT NULL,PRIMARY KEY (COLA, COLB)) ENGINE=MyISAM;
937
CREATE TEMPORARY TABLE t2(COLA FLOAT NOT NULL,COLB FLOAT NOT NULL,COLC CHAR(1) NOT NULL,PRIMARY KEY (COLA)) ENGINE=MyISAM;
959
# fix_fields() in add_ref_to_table_cond()
961
CREATE TABLE t1(COLA FLOAT NOT NULL,COLB FLOAT NOT NULL,COLC VARCHAR(20) DEFAULT NULL,PRIMARY KEY (COLA, COLB));
962
CREATE TABLE t2(COLA FLOAT NOT NULL,COLB FLOAT NOT NULL,COLC CHAR(1) NOT NULL,PRIMARY KEY (COLA));
938
963
INSERT INTO t1 VALUES (1,1,'1A3240'), (1,2,'4W2365');
939
964
INSERT INTO t2 VALUES (100, 200, 'C');
940
965
SELECT DISTINCT COLC FROM t1 WHERE COLA = (SELECT COLA FROM t2 WHERE COLB = 200 AND COLC ='C' LIMIT 1);
941
966
DROP TABLE t1, t2;
943
CREATE TEMPORARY TABLE t1 (a int) ENGINE=MyISAM;
968
CREATE TABLE t1 (a int);
944
969
INSERT INTO t1 VALUES (1),(1),(1),(1),(1),(2),(3),(4),(5);
945
970
SELECT DISTINCT (SELECT a) FROM t1 LIMIT 100;
952
CREATE TEMPORARY TABLE `t1` (
953
978
`id` int NOT NULL auto_increment,
954
`id_cns` int NOT NULL default '0',
979
`id_cns` tinyint unsigned NOT NULL default '0',
955
980
`tipo` enum('','UNO','DUE') NOT NULL default '',
956
`anno_dep` int NOT NULL default '0',
957
`particolare` bigint NOT NULL default '0',
958
`generale` bigint NOT NULL default '0',
959
`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',
960
985
PRIMARY KEY (`id`),
961
986
UNIQUE KEY `idx_cns_gen_anno` (`anno_dep`,`id_cns`,`generale`,`particolare`),
962
UNIQUE KEY `idx_cns_par_anno` (`id_cns`,`anno_dep`,`tipo`,`particolare`,`bis`))
987
UNIQUE KEY `idx_cns_par_anno` (`id_cns`,`anno_dep`,`tipo`,`particolare`,`bis`)
964
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);
965
CREATE TEMPORARY TABLE `t2` (
966
`id` int NOT NULL auto_increment,
967
`max_anno_dep` int NOT NULL default '0',
968
PRIMARY KEY (`id`)) ENGINE=MyISAM;
991
`id` tinyint unsigned NOT NULL auto_increment,
992
`max_anno_dep` smallint unsigned NOT NULL default '0',
969
995
INSERT INTO `t2` VALUES (16,1987),(50,1990),(51,1990);
971
997
SELECT cns.id, cns.max_anno_dep, cns.max_anno_dep = (SELECT s.anno_dep FROM t1 AS s WHERE s.id_cns = cns.id ORDER BY s.anno_dep DESC LIMIT 1) AS PIPPO FROM t2 AS cns;
973
999
DROP TABLE t1, t2;
976
--echo # GLOBAL LIMIT
978
create temporary table t1 (a int) ENGINE=MyISAM;
1004
create table t1 (a int);
979
1005
insert into t1 values (1), (2), (3);
980
1006
SET SQL_SELECT_LIMIT=1;
981
1007
select sum(a) from (select * from t1) as a;
983
1009
SET SQL_SELECT_LIMIT=default;
987
--echo # Bug #3118: subselect + order by
1013
# Bug #3118: subselect + order by
990
1016
CREATE TABLE t1 (a int, b int, INDEX (a));
991
1017
INSERT INTO t1 VALUES (1, 1), (1, 2), (1, 3);
992
1018
SELECT * FROM t1 WHERE a = (SELECT MAX(a) FROM t1 WHERE a = 1) ORDER BY b;
995
--echo # Item_cond fix field
1021
# Item_cond fix field
997
1023
create table t1(val varchar(10));
998
1024
insert into t1 values ('aaa'), ('bbb'),('eee'),('mmm'),('ppp');
999
1025
select count(*) from t1 as w1 where w1.val in (select w2.val from t1 as w2 where w2.val like 'm%') and w1.val in (select w3.val from t1 as w3 where w3.val like 'e%');
1003
--echo # ref_or_null replacing with ref
1029
# ref_or_null replacing with ref
1005
1031
create table t1 (id int not null, text varchar(20) not null default '', primary key (id));
1006
1032
insert into t1 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text11'), (12, 'text12');
1007
1033
select * from t1 where id not in (select id from t1 where id < 8);
1008
1034
select * from t1 as tt where not exists (select id from t1 where id < 8 and (id = tt.id or id is null) having id is not null);
1009
--replace_column 9 #
1010
1035
explain extended select * from t1 where id not in (select id from t1 where id < 8);
1011
--replace_column 9 #
1012
1036
explain extended select * from t1 as tt where not exists (select id from t1 where id < 8 and (id = tt.id or id is null) having id is not null);
1013
1037
insert into t1 (id, text) values (1000, 'text1000'), (1001, 'text1001');
1014
create temporary table t2 (id int not null, text varchar(20) not null default '', primary key (id)) ENGINE=MyISAM;
1038
create table t2 (id int not null, text varchar(20) not null default '', primary key (id));
1015
1039
insert into t2 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text1'), (12, 'text2'), (13, 'text3'), (14, 'text4'), (15, 'text5'), (16, 'text6'), (17, 'text7'), (18, 'text8'), (19, 'text9'), (20, 'text10'),(21, 'text1'), (22, 'text2'), (23, 'text3'), (24, 'text4'), (25, 'text5'), (26, 'text6'), (27, 'text7'), (28, 'text8'), (29, 'text9'), (30, 'text10'), (31, 'text1'), (32, 'text2'), (33, 'text3'), (34, 'text4'), (35, 'text5'), (36, 'text6'), (37, 'text7'), (38, 'text8'), (39, 'text9'), (40, 'text10'), (41, 'text1'), (42, 'text2'), (43, 'text3'), (44, 'text4'), (45, 'text5'), (46, 'text6'), (47, 'text7'), (48, 'text8'), (49, 'text9'), (50, 'text10');
1016
1040
select * from t1 a left join t2 b on (a.id=b.id or b.id is null) join t1 c on (if(isnull(b.id), 1000, b.id)=c.id);
1017
--replace_column 9 #
1018
1041
explain extended select * from t1 a left join t2 b on (a.id=b.id or b.id is null) join t1 c on (if(isnull(b.id), 1000, b.id)=c.id);
1019
1042
drop table t1,t2;
1022
--echo # Static tables & rund() in subqueries
1024
create temporary table t1 (a int) ENGINE=MyISAM;
1045
# Static tables & rund() in subqueries
1047
create table t1 (a int);
1025
1048
insert into t1 values (1);
1026
1049
explain select benchmark(1000, (select a from t1 where a=rand()));
1032
create temporary table t1(id int) ENGINE=MyISAM;
1033
create temporary table t2(id int) ENGINE=MyISAM;
1034
create temporary table t3(flag int) ENGINE=MyISAM;
1055
create table t1(id int);
1056
create table t2(id int);
1057
create table t3(flag int);
1036
1059
select (select * from t3 where id not null) from t1, t2;
1037
1060
drop table t1,t2,t3;
1040
--echo # aggregate functions (Bug #3505)
1063
# aggregate functions (Bug #3505)
1042
1065
CREATE TABLE t1 (id INT);
1043
1066
CREATE TABLE t2 (id INT);
1044
1067
INSERT INTO t1 VALUES (1), (2);
1241
1263
HAVING table2.t2_b = (SELECT MAX(t2_b) FROM t2 WHERE t2_a = table2.t2_a);
1242
1264
DROP TABLE t1, t2;
1245
--echo # Test problem with NULL and derived tables (Bug #4097)
1267
# Test problem with NULL and derived tables (Bug #4097)
1248
CREATE TEMPORARY TABLE t1 (id int default NULL,name varchar(10) default NULL) ENGINE=MyISAM;
1270
CREATE TABLE t1 (id int default NULL,name varchar(10) default NULL);
1249
1271
INSERT INTO t1 VALUES (1,'Tim'),(2,'Rebecca'),(3,NULL);
1250
CREATE TEMPORARY TABLE t2 (id int default NULL, pet varchar(10) default NULL) ENGINE=MyISAM;
1272
CREATE TABLE t2 (id int default NULL, pet varchar(10) default NULL);
1251
1273
INSERT INTO t2 VALUES (1,'Fido'),(2,'Spot'),(3,'Felix');
1252
1274
SELECT a.*, b.* FROM (SELECT * FROM t1) AS a JOIN t2 as b on a.id=b.id;
1253
1275
drop table t1,t2;
1256
--echo # Aggregate function comparation with ALL/ANY/SOME subselect
1258
CREATE TEMPORARY TABLE `t1` ( `a` int default NULL) ENGINE=MyISAM;
1278
# Aggregate function comparation with ALL/ANY/SOME subselect
1280
CREATE TABLE `t1` ( `a` int default NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;
1259
1281
insert into t1 values (1);
1260
CREATE TEMPORARY TABLE `t2` ( `b` int default NULL, `a` int default NULL) ENGINE=MyISAM;
1282
CREATE TABLE `t2` ( `b` int default NULL, `a` int default NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;
1261
1283
insert into t2 values (1,2);
1262
1284
select t000.a, count(*) `C` FROM t1 t000 GROUP BY t000.a HAVING count(*) > ALL (SELECT count(*) FROM t2 t001 WHERE t001.a=1);
1263
1285
drop table t1,t2;
1266
--echo # BUG#5003 - like in subselect
1268
CREATE TABLE t1(`IZAVORGANG_ID` VARCHAR(11) COLLATE utf8_bin,`KUERZEL` VARCHAR(10) COLLATE utf8_bin,`IZAANALYSEART_ID` VARCHAR(11) COLLATE utf8_bin,`IZAPMKZ_ID` VARCHAR(11) COLLATE utf8_bin);
1288
# BUG#5003 - like in subselect
1290
CREATE TABLE t1(`IZAVORGANG_ID` VARCHAR(11) CHARACTER SET latin1 COLLATE latin1_bin,`KUERZEL` VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_bin,`IZAANALYSEART_ID` VARCHAR(11) CHARACTER SET latin1 COLLATE latin1_bin,`IZAPMKZ_ID` VARCHAR(11) CHARACTER SET latin1 COLLATE latin1_bin);
1269
1291
CREATE INDEX AK01IZAVORGANG ON t1(izaAnalyseart_id,Kuerzel);
1270
1292
INSERT INTO t1(`IZAVORGANG_ID`,`KUERZEL`,`IZAANALYSEART_ID`,`IZAPMKZ_ID`)VALUES('D0000000001','601','D0000000001','I0000000001');
1271
1293
INSERT INTO t1(`IZAVORGANG_ID`,`KUERZEL`,`IZAANALYSEART_ID`,`IZAPMKZ_ID`)VALUES('D0000000002','602','D0000000001','I0000000001');
1307
1329
select (select b.x from t1 as b where b.x=a.x) from t1 as a where a.x=2 group by a.x;
1311
--echo # Test of correct maybe_null flag returning by subquwery for temporary table
1314
CREATE TEMPORARY 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`)) ENGINE=MyISAM;
1333
# Test of correct maybe_null flag returning by subquwery for temporary table
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`));
1315
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);
1316
CREATE TEMPORARY 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`)) ENGINE=MyISAM ;
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`)) ;
1317
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');
1319
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;
1320
1342
SELECT b.ac 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;
1321
1343
drop tables t1,t2;
1324
--echo # Subselect in non-select command just after connection
1346
# Subselect in non-select command just after connection
1326
1348
connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
1327
1349
connection root;
1328
1350
set @got_val= (SELECT 1 FROM (SELECT 'A' as my_col) as T1 ) ;
1331
--echo # primary query with temporary table and subquery with groupping
1333
create temporary table t1 (a int, b int) ENGINE=MyISAM;
1334
create temporary table t2 (a int, b int) ENGINE=MyISAM;
1353
# primary query with temporary table and subquery with groupping
1355
create table t1 (a int, b int);
1356
create table t2 (a int, b int);
1335
1357
insert into t1 values (1,1),(1,2),(1,3),(2,4),(2,5);
1336
1358
insert into t2 values (1,3),(2,1);
1337
1359
select distinct a,b, (select max(b) from t2 where t1.b=t2.a) from t1 order by t1.b;
1338
1360
drop table t1, t2;
1341
--echo # Equal operation under row and empty subquery
1363
# Equal operation under row and empty subquery
1343
1365
create table t1 (s1 int,s2 int);
1344
1366
insert into t1 values (20,15);
1345
1367
select * from t1 where (('a',null) <=> (select 'a',s2 from t1 where s1 = 0));
1349
--echo # ALL/ANY with NULL
1351
1373
create table t1 (s1 int);
1352
1374
insert into t1 values (1),(null);
1353
1375
select * from t1 where s1 < all (select s1 from t1);
1354
1376
select s1, s1 < all (select s1 from t1) from t1;
1358
--echo # reference on changable fields from subquery
1380
# reference on changable fields from subquery
1360
1382
CREATE TABLE t1 (
1361
1383
Code char(3) NOT NULL default '',
1362
1384
Name char(52) NOT NULL default '',
1363
1385
Continent enum('Asia','Europe','North America','Africa','Oceania','Antarctica','South America') NOT NULL default 'Asia',
1364
1386
Region char(26) NOT NULL default '',
1365
1387
SurfaceArea float(10,2) NOT NULL default '0.00',
1366
IndepYear int default NULL,
1388
IndepYear smallint default NULL,
1367
1389
Population int NOT NULL default '0',
1368
1390
LifeExpectancy float(3,1) default NULL,
1369
1391
GNP float(10,2) default NULL,
1565
1583
select (select * from t1) = (1,2,3);
1569
--echo # Item_int_with_ref check (BUG#10020)
1571
--echo #CREATE TABLE `t1` (
1572
--echo # `itemid` bigint NOT NULL auto_increment,
1573
--echo # `sessionid` bigint default NULL,
1574
--echo # `time` int NOT NULL default '0',
1575
--echo # `data` text collate latin1_general_ci NOT NULL,
1576
--echo # PRIMARY KEY (`itemid`)
1578
--echo #INSERT INTO `t1` VALUES (1, 1, 1, '');
1579
--echo #CREATE TABLE `t2` (
1580
--echo # `sessionid` bigint NOT NULL auto_increment,
1581
--echo # `pid` int NOT NULL default '0',
1582
--echo # `date` int NOT NULL default '0',
1583
--echo # `ip` varchar(15) collate latin1_general_ci NOT NULL default '',
1584
--echo # PRIMARY KEY (`sessionid`)
1586
--echo #INSERT INTO `t2` VALUES (1, 1, 1, '10.10.10.1');
1587
--echo #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;
1588
--echo #drop tables t1,t2;
1587
# Item_int_with_ref check (BUG#10020)
1590
`itemid` bigint unsigned NOT NULL auto_increment,
1591
`sessionid` bigint unsigned default NULL,
1592
`time` int unsigned NOT NULL default '0',
1593
`data` text collate latin1_general_ci NOT NULL,
1594
PRIMARY KEY (`itemid`)
1595
) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
1596
INSERT INTO `t1` VALUES (1, 1, 1, '');
1598
`sessionid` bigint unsigned NOT NULL auto_increment,
1599
`pid` int unsigned NOT NULL default '0',
1600
`date` int unsigned NOT NULL default '0',
1601
`ip` varchar(15) collate latin1_general_ci NOT NULL default '',
1602
PRIMARY KEY (`sessionid`)
1603
) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
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
--echo # BUG#11821 : Select from subselect using aggregate function on an enum
1592
create temporary table t1 (fld enum('0','1')) ENGINE=MyISAM;
1608
# BUG#11821 : Select from subselect using aggregate function on an enum
1610
create table t1 (fld enum('0','1'));
1593
1611
insert into t1 values ('1');
1594
1612
select * from (select max(fld) from t1) as foo;
1598
--echo # Bug #11867: queries with ROW(,elems>) IN (SELECT DISTINCT <cols> FROM ...)
1616
# Bug #11867: queries with ROW(,elems>) IN (SELECT DISTINCT <cols> FROM ...)
1601
1619
CREATE TABLE t1 (one int, two int, flag char(1));
1602
1620
CREATE TABLE t2 (one int, two int, flag char(1));
2074
2091
('CCC', 7), ('AAA', 2), ('AAA', 4), ('BBB', 3), ('AAA', 8);
2076
2093
SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
2077
--replace_column 9 #
2079
2095
SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
2081
2097
ALTER TABLE t1 ADD INDEX(a);
2083
2099
SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
2084
--replace_column 9 #
2086
2101
SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
2091
--echo # Bug#17366: Unchecked Item_int results in server crash
2106
# Bug#17366: Unchecked Item_int results in server crash
2093
2108
create table t1( f1 int,f2 int);
2094
2109
insert into t1 values (1,1),(2,2);
2095
2110
select tt.t from (select 'crash1' as t, f2 from t1) as tt left join t1 on tt.t = 'crash2' and tt.f2 = t1.f2 where tt.t = 'crash1';
2099
--echo # Bug #18306: server crash on delete using subquery.
2114
# Bug #18306: server crash on delete using subquery.
2102
create temporary table t1 (c int, key(c)) ENGINE=MyISAM;
2117
create table t1 (c int, key(c));
2103
2118
insert into t1 values (1142477582), (1142455969);
2104
create temporary table t2 (a int, b int) ENGINE=MyISAM;
2119
create table t2 (a int, b int);
2105
2120
insert into t2 values (2, 1), (1, 0);
2106
2121
delete from t1 where c <= 1140006215 and (select b from t2 where a = 2) = 1;
2107
2122
drop table t1, t2;
2110
--echo # Bug#19077: A nested materialized derived table is used before being populated.
2125
# Bug#19077: A nested materialized derived table is used before being populated.
2112
2127
create table t1 (i int, j bigint);
2113
2128
insert into t1 values (1, 2), (2, 2), (3, 2);
2114
2129
select * from (select min(i) from t1 where j=(select * from (select min(j) from t1) t2)) t3;
2118
--echo # Bug#19700: subselect returning BIGINT always returned it as SIGNED
2120
CREATE TEMPORARY TABLE t1 (i BIGINT) ENGINE=MyISAM;
2121
INSERT INTO t1 VALUES (10000000000000000); # > MAX SIGNED BIGINT 9323372036854775807
2133
# Bug#19700: subselect returning BIGINT always returned it as SIGNED
2135
CREATE TABLE t1 (i BIGINT UNSIGNED);
2136
INSERT INTO t1 VALUES (10000000000000000000); # > MAX SIGNED BIGINT 9323372036854775807
2122
2137
INSERT INTO t1 VALUES (1);
2124
CREATE TEMPORARY TABLE t2 (i BIGINT) ENGINE=MyISAM;
2125
INSERT INTO t2 VALUES (10000000000000000); # same as first table
2139
CREATE TABLE t2 (i BIGINT UNSIGNED);
2140
INSERT INTO t2 VALUES (10000000000000000000); # same as first table
2126
2141
INSERT INTO t2 VALUES (1);
2128
2143
/* simple test */
2633
2647
DROP TABLE t1,t2;
2637
--echo # Bug #27333: subquery grouped for aggregate of outer query / no aggregate
2638
--echo # of subquery
2640
CREATE TEMPORARY TABLE t1 (a INTEGER, b INTEGER) ENGINE=MyISAM;
2641
CREATE TEMPORARY TABLE t2 (x INTEGER) ENGINE=MyISAM;
2651
# Bug #27333: subquery grouped for aggregate of outer query / no aggregate
2654
CREATE TABLE t1 (a INTEGER, b INTEGER);
2655
CREATE TABLE t2 (x INTEGER);
2642
2656
INSERT INTO t1 VALUES (1,11), (2,22), (2,22);
2643
2657
INSERT INTO t2 VALUES (1), (2);
2645
--echo # wasn't failing, but should
2659
# wasn't failing, but should
2646
2660
--error ER_SUBQUERY_NO_1_ROW
2647
2661
SELECT a, COUNT(b), (SELECT COUNT(b) FROM t2) FROM t1 GROUP BY a;
2649
--echo # fails as it should
2663
# fails as it should
2650
2664
--error ER_SUBQUERY_NO_1_ROW
2651
2665
SELECT a, COUNT(b), (SELECT COUNT(b)+0 FROM t2) FROM t1 GROUP BY a;
2653
2667
SELECT (SELECT SUM(t1.a)/AVG(t2.x) FROM t2) FROM t1;
2654
2668
DROP TABLE t1,t2;
2656
--echo # second test case from 27333
2670
# second test case from 27333
2657
2671
CREATE TABLE t1 (a INT, b INT);
2658
2672
INSERT INTO t1 VALUES (1, 2), (1,3), (1,4), (2,1), (2,2);
2660
--echo # returns no rows, when it should
2674
# returns no rows, when it should
2661
2675
SELECT a1.a, COUNT(*) FROM t1 a1 WHERE a1.a = 1
2662
2676
AND EXISTS( SELECT a2.a FROM t1 a2 WHERE a2.a = a1.a)
2666
--echo #test cases from 29297
2667
CREATE TEMPORARY TABLE t1 (a INT) ENGINE=MyISAM;
2668
CREATE TEMPORARY TABLE t2 (a INT) ENGINE=MyISAM;
2680
#test cases from 29297
2681
CREATE TABLE t1 (a INT);
2682
CREATE TABLE t2 (a INT);
2669
2683
INSERT INTO t1 VALUES (1),(2);
2670
2684
INSERT INTO t2 VALUES (1),(2);
2671
2685
SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=0) FROM t1;