~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
#
2
# Problem with count(distinct)
3
#
4
5
--disable_warnings
6
drop table if exists t1,t2,t3;
7
--enable_warnings
8
9
create table t1 (libname varchar(21) not null, city text, primary key (libname));
10
create table t2 (isbn varchar(21) not null, author text, title text, primary key (isbn));
11
create table t3 (isbn varchar(21) not null, libname varchar(21) not null, quantity int ,primary key (isbn,libname));
12
insert into t2 values ('001','Daffy','A duck''s life');
13
insert into t2 values ('002','Bugs','A rabbit\'s life');
14
insert into t2 values ('003','Cowboy','Life on the range');
15
insert into t2 values ('000','Anonymous','Wanna buy this book?');
16
insert into t2 values ('004','Best Seller','One Heckuva book');
17
insert into t2 values ('005','EveryoneBuys','This very book');
18
insert into t2 values ('006','San Fran','It is a san fran lifestyle');
19
insert into t2 values ('007','BerkAuthor','Cool.Berkley.the.book');
20
insert into t3 values('000','New York Public Libra','1');
21
insert into t3 values('001','New York Public Libra','2');
22
insert into t3 values('002','New York Public Libra','3');
23
insert into t3 values('003','New York Public Libra','4');
24
insert into t3 values('004','New York Public Libra','5');
25
insert into t3 values('005','New York Public Libra','6');
26
insert into t3 values('006','San Fransisco Public','5');
27
insert into t3 values('007','Berkeley Public1','3');
28
insert into t3 values('007','Berkeley Public2','3');
29
insert into t3 values('001','NYC Lib','8');
30
insert into t1 values ('New York Public Libra','New York');
31
insert into t1 values ('San Fransisco Public','San Fran');
32
insert into t1 values ('Berkeley Public1','Berkeley');
33
insert into t1 values ('Berkeley Public2','Berkeley');
34
insert into t1 values ('NYC Lib','New York');
35
select t2.isbn,city,t1.libname,count(t1.libname) as a from t3 left join t1 on t3.libname=t1.libname left join t2 on t3.isbn=t2.isbn group by city,t1.libname;
36
select t2.isbn,city,t1.libname,count(distinct t1.libname) as a from t3 left join t1 on t3.libname=t1.libname left join t2 on t3.isbn=t2.isbn group by city having count(distinct t1.libname) > 1;
37
select t2.isbn,city,t1.libname,count(distinct t1.libname) as a from t3 left join t1 on t3.libname=t1.libname left join t2 on t3.isbn=t2.isbn group by city having count(distinct concat(t1.libname,'a')) > 1;
38
drop table t1, t2, t3;
39
40
#
41
# Problem with LEFT JOIN
42
#
43
44
create table t1 (f1 int);
45
insert into t1 values (1);
46
create table t2 (f1 int,f2 int);
47
select t1.f1,count(distinct t2.f2),count(distinct 1,NULL) from t1 left join t2 on t1.f1=t2.f1 group by t1.f1;
48
drop table t1,t2;
49
50
51
#
52
# Empty tables
53
#
54
create table t1 (f int);
55
select count(distinct f) from t1;
56
drop table t1;
57
58
# End of 4.1 tests
59
60
#
61
# Bug #6515
62
#
63
64
create table t1 (a char(3), b char(20), primary key (a, b));
65
insert into t1 values ('ABW', 'Dutch'), ('ABW', 'English');
66
select count(distinct a) from t1 group by b;
67
drop table t1;
68
69
#
70
# Bug #9593 "The combination of COUNT, DISTINCT and CONCAT 
71
#            seems to lock the server"
72
# Bug appears only on Windows system
73
#
74
75
create table t1 (f1 int, f2 int);
76
insert into t1 values (0,1),(1,2);
77
select count(distinct if(f1,3,f2)) from t1;
78
drop table t1;
79