~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/subselect.test

  • Committer: Monty Taylor
  • Date: 2008-08-04 19:37:18 UTC
  • mto: (261.2.2 codestyle)
  • mto: This revision was merged to the branch mainline in revision 262.
  • Revision ID: monty@inaugust.com-20080804193718-f0rz13uli4429ozb
Changed gettext_noop() to N_()

Show diffs side-by-side

added added

removed removed

Lines of Context:
145
145
SELECT * FROM t3 WHERE b = (SELECT MIN(b) FROM t3);
146
146
 
147
147
CREATE TABLE `t8` (
148
 
  `pseudo` varchar(35) NOT NULL default '',
149
 
  `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 '',
150
150
  PRIMARY KEY  (`pseudo`),
151
151
  UNIQUE KEY `email` (`email`)
152
 
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
 
152
) ENGINE=MyISAM CHARSET=latin1 ROW_FORMAT=DYNAMIC;
153
153
 
154
154
INSERT INTO t8 (pseudo,email) VALUES ('joce','test');
155
155
INSERT INTO t8 (pseudo,email) VALUES ('joce1','test1');
169
169
 
170
170
#searchconthardwarefr3 forumconthardwarefr7
171
171
CREATE TABLE `t1` (
172
 
  `topic` bigint NOT NULL default '0',
 
172
  `topic` bigint unsigned NOT NULL default '0',
173
173
  `date` date NOT NULL default '0000-00-00',
174
 
  `pseudo` varchar(35) NOT NULL default '',
 
174
  `pseudo` varchar(35) character set latin1 NOT NULL default '',
175
175
  PRIMARY KEY  (`pseudo`,`date`,`topic`),
176
176
  KEY `topic` (`topic`)
177
177
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
189
189
 
190
190
#forumconthardwarefr7 searchconthardwarefr7
191
191
CREATE TABLE `t1` (
192
 
  `numeropost` bigint NOT NULL auto_increment,
193
 
  `maxnumrep` int NOT NULL default '0',
 
192
  `numeropost` bigint unsigned NOT NULL auto_increment,
 
193
  `maxnumrep` int unsigned NOT NULL default '0',
194
194
  PRIMARY KEY  (`numeropost`),
195
195
  UNIQUE KEY `maxnumrep` (`maxnumrep`)
196
196
) ENGINE=MyISAM ROW_FORMAT=FIXED;
199
199
 
200
200
CREATE TABLE `t2` (
201
201
      `mot` varchar(30) NOT NULL default '',
202
 
      `topic` bigint NOT NULL default '0',
 
202
      `topic` bigint unsigned NOT NULL default '0',
203
203
      `date` date NOT NULL default '0000-00-00',
204
204
      `pseudo` varchar(35) NOT NULL default '',
205
205
       PRIMARY KEY  (`mot`,`pseudo`,`date`,`topic`)
232
232
 
233
233
#forumconthardwarefr7
234
234
CREATE TABLE `t1` (
235
 
  `numeropost` bigint NOT NULL auto_increment,
236
 
  `maxnumrep` int NOT NULL default '0',
 
235
  `numeropost` bigint unsigned NOT NULL auto_increment,
 
236
  `maxnumrep` int unsigned NOT NULL default '0',
237
237
  PRIMARY KEY  (`numeropost`),
238
238
  UNIQUE KEY `maxnumrep` (`maxnumrep`)
239
239
) ENGINE=MyISAM ROW_FORMAT=FIXED;
259
259
 
260
260
# threadhardwarefr7
261
261
CREATE TABLE `t1` (
262
 
  `numeropost` bigint NOT NULL default '0',
263
 
  `numreponse` int NOT NULL auto_increment,
 
262
  `numeropost` bigint unsigned NOT NULL default '0',
 
263
  `numreponse` int unsigned NOT NULL auto_increment,
264
264
  `pseudo` varchar(35) NOT NULL default '',
265
265
  PRIMARY KEY  (`numeropost`,`numreponse`),
266
266
  UNIQUE KEY `numreponse` (`numreponse`),
321
321
insert into t12 values (33, 10),(22, 11),(2, 12);
322
322
insert into t2 values (1, 21),(2, 12),(3, 23);
323
323
select * from t11;
324
 
--sorted_result
325
324
select * from t12;
326
325
-- error 1093
327
326
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b = (select b from t12 where t11.a = t12.a);
329
328
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b = (select b from t2);
330
329
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b = (select b from t2 where t11.a = t2.a);
331
330
select * from t11;
332
 
--sorted_result
333
331
select * from t12;
334
332
drop table t11, t12, t2;
335
333
 
382
380
select * from t1;
383
381
replace DELAYED into t1 (x, y) VALUES ((SELECT a+3 FROM t2), (SELECT a FROM t2));
384
382
-- sleep 1
385
 
--sorted_result
386
383
select * from t1;
387
384
replace DELAYED into t1 (x, y) VALUES ((SELECT a+3 FROM t2), (SELECT a+1 FROM t2));
388
385
-- sleep 1
389
386
select * from t1;
390
387
replace LOW_PRIORITY into t1 (x, y) VALUES ((SELECT a+1 FROM t2), (SELECT a FROM t2));
391
 
--sorted_result
392
388
select * from t1;
393
389
drop table t1, t2, t3;
394
390
 
395
391
-- error 1096
396
392
SELECT * FROM (SELECT 1) b WHERE 1 IN (SELECT *);
397
393
 
398
 
CREATE TABLE t2 (id int default NULL, KEY id (id)) ENGINE=MyISAM;
 
394
CREATE TABLE t2 (id int default NULL, KEY id (id)) ENGINE=MyISAM CHARSET=latin1;
399
395
INSERT INTO t2 VALUES (1),(2);
400
396
SELECT * FROM t2 WHERE id IN (SELECT 1);
401
397
EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1);
410
406
-- error 1093
411
407
INSERT INTO t2 VALUES ((SELECT id FROM t2));
412
408
SELECT * FROM t2;
413
 
CREATE TABLE t1 (id int default NULL, KEY id (id)) ENGINE=MyISAM;
 
409
CREATE TABLE t1 (id int default NULL, KEY id (id)) ENGINE=MyISAM CHARSET=latin1;
414
410
INSERT INTO t1 values (1),(1);
415
411
-- error 1242
416
412
UPDATE t2 SET id=(SELECT * FROM t1);
459
455
select 1.5 > ANY (SELECT * from t1);
460
456
select 10.5 > ANY (SELECT * from t1);
461
457
explain extended select (select a+1) from t1;
462
 
--sorted_result
463
458
select (select a+1) from t1;
464
459
drop table t1;
465
460
 
480
475
drop table t1,t2,t3;
481
476
 
482
477
#LIMIT is not supported now
483
 
#create table t1 (a float);
484
 
#-- error 1235
485
 
#select 10.5 IN (SELECT * from t1 LIMIT 1);
486
 
#-- error 1235
487
 
#select 10.5 IN (SELECT * from t1 LIMIT 1 UNION SELECT 1.5);
488
 
#drop table t1;
489
 
#
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;
497
 
#drop table t1,t2;
498
 
#
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');
510
 
#-- error 1235
511
 
#select ROW(1, 1, 'a') IN (select b,a,c from t1 limit 2);
512
 
#drop table t1;
 
478
create table t1 (a float);
 
479
-- error 1235
 
480
select 10.5 IN (SELECT * from t1 LIMIT 1);
 
481
-- error 1235
 
482
select 10.5 IN (SELECT * from t1 LIMIT 1 UNION SELECT 1.5);
 
483
drop table t1;
 
484
 
 
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;
 
492
drop table t1,t2;
 
493
 
 
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');
 
505
-- error 1235
 
506
select ROW(1, 1, 'a') IN (select b,a,c from t1 limit 2);
 
507
drop table t1;
513
508
 
514
509
#test of uncacheable subqueries
515
510
CREATE TABLE t1 (a int);
519
514
 
520
515
 
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;
530
525
 
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;
540
535
 
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`)
546
 
) ENGINE=MyISAM;
 
541
) ENGINE=MyISAM CHARSET=latin1;
547
542
INSERT INTO t1 (mot, topic, pseudo) VALUES ('joce','1','joce'),('test','2','test');
548
543
 
549
544
INSERT INTO t2 (mot, topic, pseudo) VALUES ('joce','1','joce'),('test','2','test');
609
604
  Continent enum('Asia','Europe','North America','Africa','Oceania','Antarctica','South America') NOT NULL default 'Asia',
610
605
  Region char(26) NOT NULL default '',
611
606
  SurfaceArea float(10,2) NOT NULL default '0.00',
612
 
  IndepYear int default NULL,
 
607
  IndepYear smallint default NULL,
613
608
  Population int NOT NULL default '0',
614
609
  LifeExpectancy float(3,1) default NULL,
615
610
  GNP float(10,2) default NULL,
633
628
# constants in IN
634
629
#
635
630
CREATE TABLE `t1` (
636
 
  `id` bigint NOT NULL auto_increment,
637
 
  `pseudo` varchar(35) NOT NULL default '',
 
631
  `id` bigint unsigned NOT NULL auto_increment,
 
632
  `pseudo` varchar(35) character set latin1 NOT NULL default '',
638
633
  PRIMARY KEY  (`id`),
639
634
  UNIQUE KEY `pseudo` (`pseudo`)
640
635
) ENGINE=MyISAM PACK_KEYS=1 ROW_FORMAT=DYNAMIC;
649
644
CREATE TABLE `t1` (
650
645
  `i` int NOT NULL default '0',
651
646
  PRIMARY KEY  (`i`)
652
 
) ENGINE=MyISAM;
 
647
) ENGINE=MyISAM CHARSET=latin1;
653
648
 
654
649
INSERT INTO t1 VALUES (1);
655
650
UPDATE t1 SET i=i+(SELECT MAX(i) FROM (SELECT 1) t) WHERE i=(SELECT MAX(i));
664
659
#
665
660
CREATE TABLE t1 (
666
661
  id int default NULL
667
 
) ENGINE=MyISAM;
 
662
) ENGINE=MyISAM CHARSET=latin1;
668
663
INSERT INTO t1 VALUES (1),(1),(2),(2),(1),(3);
669
664
CREATE TABLE t2 (
670
665
  id int default NULL,
671
666
  name varchar(15) default NULL
672
 
) ENGINE=MyISAM;
 
667
) ENGINE=MyISAM CHARSET=latin1;
673
668
 
674
669
INSERT INTO t2 VALUES (4,'vita'), (1,'vita'), (2,'vita'), (1,'vita');
675
670
update t1, t2 set t2.name='lenka' where t2.id in (select id from t1);
693
688
drop table t1;
694
689
 
695
690
CREATE TABLE t1 (
696
 
  ID int NOT NULL auto_increment,
697
 
  SUB_ID int NOT NULL default '0',
698
 
  REF_ID int default NULL,
699
 
  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',
700
695
  PRIMARY KEY (ID,SUB_ID),
701
696
  UNIQUE KEY t1_PK (ID,SUB_ID),
702
697
  KEY t1_FK (REF_ID,REF_SUB),
703
698
  KEY t1_REFID (REF_ID)
704
 
) ENGINE=MyISAM;
 
699
) ENGINE=MyISAM CHARSET=cp1251;
705
700
INSERT INTO t1 VALUES (1,0,NULL,NULL),(2,0,NULL,NULL);
706
701
SELECT DISTINCT REF_ID FROM t1 WHERE ID= (SELECT DISTINCT REF_ID FROM t1 WHERE ID=2);
707
702
DROP TABLE t1;
725
720
#
726
721
 
727
722
CREATE TABLE `t1` (
728
 
  `id` bigint NOT NULL auto_increment,
 
723
  `id` bigint unsigned NOT NULL auto_increment,
729
724
  `pseudo` varchar(35) NOT NULL default '',
730
725
  `email` varchar(60) NOT NULL default '',
731
726
  PRIMARY KEY  (`id`),
732
727
  UNIQUE KEY `email` (`email`),
733
728
  UNIQUE KEY `pseudo` (`pseudo`)
734
 
) ENGINE=MyISAM PACK_KEYS=1 ROW_FORMAT=DYNAMIC;
 
729
) ENGINE=MyISAM CHARSET=latin1 PACK_KEYS=1 ROW_FORMAT=DYNAMIC;
735
730
INSERT INTO t1 (id,pseudo,email) VALUES (1,'test','test'),(2,'test1','test1');
736
731
SELECT pseudo as a, pseudo as b FROM t1 GROUP BY (SELECT a) ORDER BY (SELECT id*1);
737
732
drop table if exists t1;
822
817
#
823
818
# collation test
824
819
#
825
 
#CREATE TABLE t1 (s1 CHAR(5) COLLATE latin1_german1_ci,
826
 
#                 s2 CHAR(5) COLLATE latin1_swedish_ci);
827
 
#INSERT INTO t1 VALUES ('z','?');
828
 
#-- error 1267
829
 
#select * from t1 where s1 > (select max(s2) from t1);
830
 
#-- error 1267
831
 
#select * from t1 where s1 > any (select max(s2) from t1);
832
 
#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','?');
 
823
-- error 1267
 
824
select * from t1 where s1 > (select max(s2) from t1);
 
825
-- error 1267
 
826
select * from t1 where s1 > any (select max(s2) from t1);
 
827
drop table t1;
833
828
 
834
829
#
835
830
# aggregate functions reinitialization
904
899
# correct used_tables()
905
900
#
906
901
 
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;
919
914
#
920
915
# cardinality check
921
916
#
922
 
CREATE TABLE t1 (id int default NULL) ENGINE=MyISAM;
 
917
CREATE TABLE t1 (id int default NULL) ENGINE=MyISAM CHARSET=latin1;
923
918
INSERT INTO t1 VALUES (1),(5);
924
 
CREATE TABLE t2 (id int default NULL) ENGINE=MyISAM;
 
919
CREATE TABLE t2 (id int default NULL) ENGINE=MyISAM CHARSET=latin1;
925
920
INSERT INTO t2 VALUES (2),(6);
926
921
-- error 1241
927
922
select * from t1 where (1,2,6) in (select * from t2);
940
935
#
941
936
# filesort in subquery (restoring join_tab)
942
937
#
943
 
CREATE TABLE t1 (number char(11) NOT NULL default '') ENGINE=MyISAM;
 
938
CREATE TABLE t1 (number char(11) NOT NULL default '') ENGINE=MyISAM CHARSET=latin1;
944
939
INSERT INTO t1 VALUES ('69294728265'),('18621828126'),('89356874041'),('95895001874');
945
 
CREATE 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;
946
941
INSERT INTO t2 VALUES ('1'),('1226'),('1245'),('1862'),('18623'),('1874'),('1967'),('6');
947
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;
948
943
drop table t1, t2;
981
976
 
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`)
993
988
);
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`)
999
994
);
1000
995
INSERT INTO `t2` VALUES (16,1987),(50,1990),(51,1990);
1282
1277
#
1283
1278
# Aggregate function comparation with ALL/ANY/SOME subselect
1284
1279
#
1285
 
CREATE TABLE `t1` ( `a` int default NULL) ENGINE=MyISAM;
 
1280
CREATE TABLE `t1` ( `a` int default NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;
1286
1281
insert into t1 values (1);
1287
 
CREATE 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;
1288
1283
insert into t2 values (1,2);
1289
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);
1290
1285
drop table t1,t2;
1292
1287
#
1293
1288
# BUG#5003 - like in subselect
1294
1289
#
1295
 
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);
 
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);
1296
1291
CREATE INDEX AK01IZAVORGANG ON t1(izaAnalyseart_id,Kuerzel);
1297
1292
INSERT INTO t1(`IZAVORGANG_ID`,`KUERZEL`,`IZAANALYSEART_ID`,`IZAPMKZ_ID`)VALUES('D0000000001','601','D0000000001','I0000000001');
1298
1293
INSERT INTO t1(`IZAVORGANG_ID`,`KUERZEL`,`IZAANALYSEART_ID`,`IZAPMKZ_ID`)VALUES('D0000000002','602','D0000000001','I0000000001');
1338
1333
# Test of correct maybe_null flag returning by subquwery for temporary table
1339
1334
# creation
1340
1335
#
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');
1345
1340
-- error 1054
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;
1390
1385
  Continent enum('Asia','Europe','North America','Africa','Oceania','Antarctica','South America') NOT NULL default 'Asia',
1391
1386
  Region char(26) NOT NULL default '',
1392
1387
  SurfaceArea float(10,2) NOT NULL default '0.00',
1393
 
  IndepYear int default NULL,
 
1388
  IndepYear smallint default NULL,
1394
1389
  Population int NOT NULL default '0',
1395
1390
  LifeExpectancy float(3,1) default NULL,
1396
1391
  GNP float(10,2) default NULL,
1591
1586
#
1592
1587
# Item_int_with_ref check (BUG#10020)
1593
1588
#
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`)
1600
 
#);
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`)
1608
 
#);
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;
1611
 
#drop tables t1,t2;
 
1589
CREATE TABLE `t1` (
 
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
 
1594
NULL default '',
 
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', '');
 
1599
CREATE TABLE `t2` (
 
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
drop tables t1,t2;
1612
1609
 
1613
1610
# BUG#11821 : Select from subselect using aggregate function on an enum
1614
1611
# segfaults:
1713
1710
#
1714
1711
create table t1 (
1715
1712
  retailerID varchar(8) NOT NULL,
1716
 
  statusID   int NOT NULL,
 
1713
  statusID   int unsigned NOT NULL,
1717
1714
  changed    datetime NOT NULL,
1718
1715
  UNIQUE KEY retailerID (retailerID, statusID, changed)
1719
1716
);
1958
1955
DROP TABLE t1,t2,t3;
1959
1956
 
1960
1957
#
 
1958
# Item_int_with_ref check (BUG#10020)
 
1959
#
 
1960
CREATE TABLE `t1` (
 
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
 
1965
NULL default '',
 
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', '');
 
1970
CREATE TABLE `t2` (
 
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;
 
1979
drop tables t1,t2;
 
1980
 
 
1981
#
1961
1982
# Correct building of equal fields list (do not include outer
1962
1983
# fields) (BUG#6384)
1963
1984
#
2137
2158
2138
2159
# Bug#19700: subselect returning BIGINT always returned it as SIGNED
2139
2160
#
2140
 
CREATE TABLE t1 (i BIGINT);
2141
 
INSERT INTO t1 VALUES (10000000000000000); # > MAX SIGNED BIGINT 9323372036854775807
 
2161
CREATE TABLE t1 (i BIGINT UNSIGNED);
 
2162
INSERT INTO t1 VALUES (10000000000000000000); # > MAX SIGNED BIGINT 9323372036854775807
2142
2163
INSERT INTO t1 VALUES (1);
2143
2164
 
2144
 
CREATE TABLE t2 (i BIGINT);
2145
 
INSERT INTO t2 VALUES (10000000000000000); # same as first table
 
2165
CREATE TABLE t2 (i BIGINT UNSIGNED);
 
2166
INSERT INTO t2 VALUES (10000000000000000000); # same as first table
2146
2167
INSERT INTO t2 VALUES (1);
2147
2168
 
2148
2169
/* simple test */
2152
2173
SELECT t1.i FROM t1 WHERE t1.i = (SELECT MAX(i) FROM t2);
2153
2174
 
2154
2175
/* subquery test with cast*/
2155
 
SELECT t1.i FROM t1 WHERE t1.i = (SELECT MAX(i) FROM t2);
 
2176
SELECT t1.i FROM t1 WHERE t1.i = CAST((SELECT MAX(i) FROM t2) AS UNSIGNED);
2156
2177
 
2157
2178
DROP TABLE t1;
2158
2179
DROP TABLE t2;
2162
2183
#
2163
2184
 
2164
2185
CREATE TABLE t1 (
2165
 
  id bigint NOT NULL auto_increment,
 
2186
  id bigint unsigned NOT NULL auto_increment,
2166
2187
  name varchar(255) NOT NULL,
2167
2188
  PRIMARY KEY  (id)
2168
2189
);
2170
2191
  (1, 'Balazs'), (2, 'Joe'), (3, 'Frank');
2171
2192
 
2172
2193
CREATE TABLE t2 (
2173
 
  id bigint NOT NULL auto_increment,
2174
 
  mid bigint NOT NULL,
 
2194
  id bigint unsigned NOT NULL auto_increment,
 
2195
  mid bigint unsigned NOT NULL,
2175
2196
  date date NOT NULL,
2176
2197
  PRIMARY KEY  (id)
2177
2198
);