~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/subselect.test

  • Committer: Monty Taylor
  • Date: 2008-09-13 20:24:20 UTC
  • mfrom: (383.1.35 drizzle)
  • Revision ID: monty@inaugust.com-20080913202420-lkj76ewbabl8ljvp
MergedĀ fromĀ trunk.

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) character set latin1 NOT NULL default '',
149
 
  `email` varchar(60) character set latin1 NOT NULL default '',
 
148
  `pseudo` varchar(35) NOT NULL default '',
 
149
  `email` varchar(60) NOT NULL default '',
150
150
  PRIMARY KEY  (`pseudo`),
151
151
  UNIQUE KEY `email` (`email`)
152
152
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
171
171
CREATE TABLE `t1` (
172
172
  `topic` bigint unsigned NOT NULL default '0',
173
173
  `date` date NOT NULL default '0000-00-00',
174
 
  `pseudo` varchar(35) character set latin1 NOT NULL default '',
 
174
  `pseudo` varchar(35) NOT NULL default '',
175
175
  PRIMARY KEY  (`pseudo`,`date`,`topic`),
176
176
  KEY `topic` (`topic`)
177
177
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
475
475
drop table t1,t2,t3;
476
476
 
477
477
#LIMIT is not supported now
478
 
create table t1 (a float);
479
 
select 10.5 IN (SELECT * from t1 LIMIT 1);
480
 
select 10.5 IN (SELECT * from t1 LIMIT 1 UNION SELECT 1.5);
481
 
drop table t1;
482
 
 
483
 
create table t1 (a int, b int, c varchar(10));
484
 
create table t2 (a int);
485
 
insert into t1 values (1,2,'a'),(2,3,'b'),(3,4,'c');
486
 
insert into t2 values (1),(2),(NULL);
487
 
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;
488
 
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;
489
 
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;
490
 
drop table t1,t2;
491
 
 
492
 
create table t1 (a int, b real, c varchar(10));
493
 
insert into t1 values (1, 1, 'a'), (2,2,'b'), (NULL, 2, 'b');
494
 
select ROW(1, 1, 'a') IN (select a,b,c from t1);
495
 
select ROW(1, 2, 'a') IN (select a,b,c from t1);
496
 
select ROW(1, 1, 'a') IN (select b,a,c from t1);
497
 
select ROW(1, 1, 'a') IN (select a,b,c from t1 where a is not null);
498
 
select ROW(1, 2, 'a') IN (select a,b,c from t1 where a is not null);
499
 
select ROW(1, 1, 'a') IN (select b,a,c from t1 where a is not null);
500
 
select ROW(1, 1, 'a') IN (select a,b,c from t1 where c='b' or c='a');
501
 
select ROW(1, 2, 'a') IN (select a,b,c from t1 where c='b' or c='a');
502
 
select ROW(1, 1, 'a') IN (select b,a,c from t1 where c='b' or c='a');
503
 
select ROW(1, 1, 'a') IN (select b,a,c from t1 limit 2);
504
 
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;
505
508
 
506
509
#test of uncacheable subqueries
507
510
CREATE TABLE t1 (a int);
514
514
 
515
515
 
516
516
CREATE TABLE `t1` (
517
 
  `mot` varchar(30) character set latin1 NOT NULL default '',
 
517
  `mot` varchar(30) NOT NULL default '',
518
518
  `topic` bigint unsigned NOT NULL default '0',
519
519
  `date` date NOT NULL default '0000-00-00',
520
 
  `pseudo` varchar(35) character set latin1 NOT NULL default '',
 
520
  `pseudo` varchar(35) NOT NULL default '',
521
521
  PRIMARY KEY  (`mot`,`pseudo`,`date`,`topic`),
522
522
  KEY `pseudo` (`pseudo`,`date`,`topic`),
523
523
  KEY `topic` (`topic`)
524
524
) ENGINE=MyISAM ROW_FORMAT=DYNAMIC;
525
525
 
526
526
CREATE TABLE `t2` (
527
 
  `mot` varchar(30) character set latin1 NOT NULL default '',
 
527
  `mot` varchar(30) NOT NULL default '',
528
528
  `topic` bigint unsigned NOT NULL default '0',
529
529
  `date` date NOT NULL default '0000-00-00',
530
 
  `pseudo` varchar(35) character set latin1 NOT NULL default '',
 
530
  `pseudo` varchar(35) NOT NULL default '',
531
531
  PRIMARY KEY  (`mot`,`pseudo`,`date`,`topic`),
532
532
  KEY `pseudo` (`pseudo`,`date`,`topic`),
533
533
  KEY `topic` (`topic`)
629
629
#
630
630
CREATE TABLE `t1` (
631
631
  `id` bigint unsigned NOT NULL auto_increment,
632
 
  `pseudo` varchar(35) character set latin1 NOT NULL default '',
 
632
  `pseudo` varchar(35) NOT NULL default '',
633
633
  PRIMARY KEY  (`id`),
634
634
  UNIQUE KEY `pseudo` (`pseudo`)
635
635
) ENGINE=MyISAM PACK_KEYS=1 ROW_FORMAT=DYNAMIC;
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
 
select * from t1 where s1 > (select max(s2) from t1);
824
 
select * from t1 where s1 > any (select max(s2) from t1);
825
 
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;
826
828
 
827
829
#
828
830
# aggregate functions reinitialization
1287
1287
#
1288
1288
# BUG#5003 - like in subselect
1289
1289
#
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);
 
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);
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');
1586
1586
#
1587
1587
# Item_int_with_ref check (BUG#10020)
1588
1588
#
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
 
  `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 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
 
);
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
#  `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 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
#);
 
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;
1607
1607
 
1608
1608
# BUG#11821 : Select from subselect using aggregate function on an enum
1609
1609
# segfaults: