~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/subselect.test

  • Committer: Brian Aker
  • Date: 2008-08-10 16:57:26 UTC
  • Revision ID: brian@tangent.org-20080810165726-mc1660l11a5vkv69
libdrizzle has ulong removed.

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`),
391
391
-- error 1096
392
392
SELECT * FROM (SELECT 1) b WHERE 1 IN (SELECT *);
393
393
 
394
 
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;
395
395
INSERT INTO t2 VALUES (1),(2);
396
396
SELECT * FROM t2 WHERE id IN (SELECT 1);
397
397
EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1);
406
406
-- error 1093
407
407
INSERT INTO t2 VALUES ((SELECT id FROM t2));
408
408
SELECT * FROM t2;
409
 
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;
410
410
INSERT INTO t1 values (1),(1);
411
411
-- error 1242
412
412
UPDATE t2 SET id=(SELECT * FROM t1);
475
475
drop table t1,t2,t3;
476
476
 
477
477
#LIMIT is not supported now
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;
 
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;
508
508
 
509
509
#test of uncacheable subqueries
510
510
CREATE TABLE t1 (a int);
514
514
 
515
515
 
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;
525
525
 
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;
535
535
 
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;
 
541
) ENGINE=MyISAM CHARSET=latin1;
542
542
INSERT INTO t1 (mot, topic, pseudo) VALUES ('joce','1','joce'),('test','2','test');
543
543
 
544
544
INSERT INTO t2 (mot, topic, pseudo) VALUES ('joce','1','joce'),('test','2','test');
604
604
  Continent enum('Asia','Europe','North America','Africa','Oceania','Antarctica','South America') NOT NULL default 'Asia',
605
605
  Region char(26) NOT NULL default '',
606
606
  SurfaceArea float(10,2) NOT NULL default '0.00',
607
 
  IndepYear int default NULL,
 
607
  IndepYear smallint default NULL,
608
608
  Population int NOT NULL default '0',
609
609
  LifeExpectancy float(3,1) default NULL,
610
610
  GNP float(10,2) default NULL,
628
628
# constants in IN
629
629
#
630
630
CREATE TABLE `t1` (
631
 
  `id` bigint NOT NULL auto_increment,
632
 
  `pseudo` varchar(35) NOT NULL default '',
 
631
  `id` bigint unsigned NOT NULL auto_increment,
 
632
  `pseudo` varchar(35) character set latin1 NOT NULL default '',
633
633
  PRIMARY KEY  (`id`),
634
634
  UNIQUE KEY `pseudo` (`pseudo`)
635
635
) ENGINE=MyISAM PACK_KEYS=1 ROW_FORMAT=DYNAMIC;
644
644
CREATE TABLE `t1` (
645
645
  `i` int NOT NULL default '0',
646
646
  PRIMARY KEY  (`i`)
647
 
) ENGINE=MyISAM;
 
647
) ENGINE=MyISAM CHARSET=latin1;
648
648
 
649
649
INSERT INTO t1 VALUES (1);
650
650
UPDATE t1 SET i=i+(SELECT MAX(i) FROM (SELECT 1) t) WHERE i=(SELECT MAX(i));
659
659
#
660
660
CREATE TABLE t1 (
661
661
  id int default NULL
662
 
) ENGINE=MyISAM;
 
662
) ENGINE=MyISAM CHARSET=latin1;
663
663
INSERT INTO t1 VALUES (1),(1),(2),(2),(1),(3);
664
664
CREATE TABLE t2 (
665
665
  id int default NULL,
666
666
  name varchar(15) default NULL
667
 
) ENGINE=MyISAM;
 
667
) ENGINE=MyISAM CHARSET=latin1;
668
668
 
669
669
INSERT INTO t2 VALUES (4,'vita'), (1,'vita'), (2,'vita'), (1,'vita');
670
670
update t1, t2 set t2.name='lenka' where t2.id in (select id from t1);
688
688
drop table t1;
689
689
 
690
690
CREATE TABLE t1 (
691
 
  ID int NOT NULL auto_increment,
692
 
  SUB_ID int NOT NULL default '0',
693
 
  REF_ID int default NULL,
694
 
  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',
695
695
  PRIMARY KEY (ID,SUB_ID),
696
696
  UNIQUE KEY t1_PK (ID,SUB_ID),
697
697
  KEY t1_FK (REF_ID,REF_SUB),
698
698
  KEY t1_REFID (REF_ID)
699
 
) ENGINE=MyISAM;
 
699
) ENGINE=MyISAM CHARSET=cp1251;
700
700
INSERT INTO t1 VALUES (1,0,NULL,NULL),(2,0,NULL,NULL);
701
701
SELECT DISTINCT REF_ID FROM t1 WHERE ID= (SELECT DISTINCT REF_ID FROM t1 WHERE ID=2);
702
702
DROP TABLE t1;
720
720
#
721
721
 
722
722
CREATE TABLE `t1` (
723
 
  `id` bigint NOT NULL auto_increment,
 
723
  `id` bigint unsigned NOT NULL auto_increment,
724
724
  `pseudo` varchar(35) NOT NULL default '',
725
725
  `email` varchar(60) NOT NULL default '',
726
726
  PRIMARY KEY  (`id`),
727
727
  UNIQUE KEY `email` (`email`),
728
728
  UNIQUE KEY `pseudo` (`pseudo`)
729
 
) ENGINE=MyISAM PACK_KEYS=1 ROW_FORMAT=DYNAMIC;
 
729
) ENGINE=MyISAM CHARSET=latin1 PACK_KEYS=1 ROW_FORMAT=DYNAMIC;
730
730
INSERT INTO t1 (id,pseudo,email) VALUES (1,'test','test'),(2,'test1','test1');
731
731
SELECT pseudo as a, pseudo as b FROM t1 GROUP BY (SELECT a) ORDER BY (SELECT id*1);
732
732
drop table if exists t1;
817
817
#
818
818
# collation test
819
819
#
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;
 
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;
828
828
 
829
829
#
830
830
# aggregate functions reinitialization
899
899
# correct used_tables()
900
900
#
901
901
 
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;
914
914
#
915
915
# cardinality check
916
916
#
917
 
CREATE TABLE t1 (id int default NULL) ENGINE=MyISAM;
 
917
CREATE TABLE t1 (id int default NULL) ENGINE=MyISAM CHARSET=latin1;
918
918
INSERT INTO t1 VALUES (1),(5);
919
 
CREATE TABLE t2 (id int default NULL) ENGINE=MyISAM;
 
919
CREATE TABLE t2 (id int default NULL) ENGINE=MyISAM CHARSET=latin1;
920
920
INSERT INTO t2 VALUES (2),(6);
921
921
-- error 1241
922
922
select * from t1 where (1,2,6) in (select * from t2);
935
935
#
936
936
# filesort in subquery (restoring join_tab)
937
937
#
938
 
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;
939
939
INSERT INTO t1 VALUES ('69294728265'),('18621828126'),('89356874041'),('95895001874');
940
 
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;
941
941
INSERT INTO t2 VALUES ('1'),('1226'),('1245'),('1862'),('18623'),('1874'),('1967'),('6');
942
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;
943
943
drop table t1, t2;
976
976
 
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`)
988
988
);
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`)
994
994
);
995
995
INSERT INTO `t2` VALUES (16,1987),(50,1990),(51,1990);
1277
1277
#
1278
1278
# Aggregate function comparation with ALL/ANY/SOME subselect
1279
1279
#
1280
 
CREATE TABLE `t1` ( `a` int default NULL) ENGINE=MyISAM;
 
1280
CREATE TABLE `t1` ( `a` int default NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;
1281
1281
insert into t1 values (1);
1282
 
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;
1283
1283
insert into t2 values (1,2);
1284
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);
1285
1285
drop table t1,t2;
1287
1287
#
1288
1288
# BUG#5003 - like in subselect
1289
1289
#
1290
 
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);
1291
1291
CREATE INDEX AK01IZAVORGANG ON t1(izaAnalyseart_id,Kuerzel);
1292
1292
INSERT INTO t1(`IZAVORGANG_ID`,`KUERZEL`,`IZAANALYSEART_ID`,`IZAPMKZ_ID`)VALUES('D0000000001','601','D0000000001','I0000000001');
1293
1293
INSERT INTO t1(`IZAVORGANG_ID`,`KUERZEL`,`IZAANALYSEART_ID`,`IZAPMKZ_ID`)VALUES('D0000000002','602','D0000000001','I0000000001');
1333
1333
# Test of correct maybe_null flag returning by subquwery for temporary table
1334
1334
# creation
1335
1335
#
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');
1340
1340
-- error 1054
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;
1385
1385
  Continent enum('Asia','Europe','North America','Africa','Oceania','Antarctica','South America') NOT NULL default 'Asia',
1386
1386
  Region char(26) NOT NULL default '',
1387
1387
  SurfaceArea float(10,2) NOT NULL default '0.00',
1388
 
  IndepYear int default NULL,
 
1388
  IndepYear smallint default NULL,
1389
1389
  Population int NOT NULL default '0',
1390
1390
  LifeExpectancy float(3,1) default NULL,
1391
1391
  GNP float(10,2) default NULL,
1586
1586
#
1587
1587
# Item_int_with_ref check (BUG#10020)
1588
1588
#
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`)
1595
 
#);
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`)
1603
 
#);
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;
1606
 
#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;
1607
1609
 
1608
1610
# BUG#11821 : Select from subselect using aggregate function on an enum
1609
1611
# segfaults:
1708
1710
#
1709
1711
create table t1 (
1710
1712
  retailerID varchar(8) NOT NULL,
1711
 
  statusID   int NOT NULL,
 
1713
  statusID   int unsigned NOT NULL,
1712
1714
  changed    datetime NOT NULL,
1713
1715
  UNIQUE KEY retailerID (retailerID, statusID, changed)
1714
1716
);
1953
1955
DROP TABLE t1,t2,t3;
1954
1956
 
1955
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
#
1956
1982
# Correct building of equal fields list (do not include outer
1957
1983
# fields) (BUG#6384)
1958
1984
#
2132
2158
2133
2159
# Bug#19700: subselect returning BIGINT always returned it as SIGNED
2134
2160
#
2135
 
CREATE TABLE t1 (i BIGINT);
2136
 
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
2137
2163
INSERT INTO t1 VALUES (1);
2138
2164
 
2139
 
CREATE TABLE t2 (i BIGINT);
2140
 
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
2141
2167
INSERT INTO t2 VALUES (1);
2142
2168
 
2143
2169
/* simple test */
2147
2173
SELECT t1.i FROM t1 WHERE t1.i = (SELECT MAX(i) FROM t2);
2148
2174
 
2149
2175
/* subquery test with cast*/
2150
 
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);
2151
2177
 
2152
2178
DROP TABLE t1;
2153
2179
DROP TABLE t2;
2157
2183
#
2158
2184
 
2159
2185
CREATE TABLE t1 (
2160
 
  id bigint NOT NULL auto_increment,
 
2186
  id bigint unsigned NOT NULL auto_increment,
2161
2187
  name varchar(255) NOT NULL,
2162
2188
  PRIMARY KEY  (id)
2163
2189
);
2165
2191
  (1, 'Balazs'), (2, 'Joe'), (3, 'Frank');
2166
2192
 
2167
2193
CREATE TABLE t2 (
2168
 
  id bigint NOT NULL auto_increment,
2169
 
  mid bigint NOT NULL,
 
2194
  id bigint unsigned NOT NULL auto_increment,
 
2195
  mid bigint unsigned NOT NULL,
2170
2196
  date date NOT NULL,
2171
2197
  PRIMARY KEY  (id)
2172
2198
);