mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	server" Bug appears only on Windows platform. Freeing memory in TMP_TABLE_PARAM::cleanup() allocated by new Copy_fields[0] in setup_copy_fields() results in memory destruction. In test IF used instead of CONCAT because IF have more stable crash.
		
			
				
	
	
		
			69 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
drop table if exists t1,t2,t3;
 | 
						|
create table t1 (libname varchar(21) not null, city text, primary key (libname));
 | 
						|
create table t2 (isbn varchar(21) not null, author text, title text, primary key (isbn));
 | 
						|
create table t3 (isbn varchar(21) not null, libname varchar(21) not null, quantity int ,primary key (isbn,libname));
 | 
						|
insert into t2 values ('001','Daffy','A duck''s life');
 | 
						|
insert into t2 values ('002','Bugs','A rabbit\'s life');
 | 
						|
insert into t2 values ('003','Cowboy','Life on the range');
 | 
						|
insert into t2 values ('000','Anonymous','Wanna buy this book?');
 | 
						|
insert into t2 values ('004','Best Seller','One Heckuva book');
 | 
						|
insert into t2 values ('005','EveryoneBuys','This very book');
 | 
						|
insert into t2 values ('006','San Fran','It is a san fran lifestyle');
 | 
						|
insert into t2 values ('007','BerkAuthor','Cool.Berkley.the.book');
 | 
						|
insert into t3 values('000','New York Public Libra','1');
 | 
						|
insert into t3 values('001','New York Public Libra','2');
 | 
						|
insert into t3 values('002','New York Public Libra','3');
 | 
						|
insert into t3 values('003','New York Public Libra','4');
 | 
						|
insert into t3 values('004','New York Public Libra','5');
 | 
						|
insert into t3 values('005','New York Public Libra','6');
 | 
						|
insert into t3 values('006','San Fransisco Public','5');
 | 
						|
insert into t3 values('007','Berkeley Public1','3');
 | 
						|
insert into t3 values('007','Berkeley Public2','3');
 | 
						|
insert into t3 values('001','NYC Lib','8');
 | 
						|
insert into t1 values ('New York Public Libra','New York');
 | 
						|
insert into t1 values ('San Fransisco Public','San Fran');
 | 
						|
insert into t1 values ('Berkeley Public1','Berkeley');
 | 
						|
insert into t1 values ('Berkeley Public2','Berkeley');
 | 
						|
insert into t1 values ('NYC Lib','New York');
 | 
						|
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;
 | 
						|
isbn	city	libname	a
 | 
						|
007	Berkeley	Berkeley Public1	1
 | 
						|
007	Berkeley	Berkeley Public2	1
 | 
						|
000	New York	New York Public Libra	6
 | 
						|
001	New York	NYC Lib	1
 | 
						|
006	San Fran	San Fransisco Public	1
 | 
						|
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;
 | 
						|
isbn	city	libname	a
 | 
						|
007	Berkeley	Berkeley Public1	2
 | 
						|
000	New York	New York Public Libra	2
 | 
						|
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;
 | 
						|
isbn	city	libname	a
 | 
						|
007	Berkeley	Berkeley Public1	2
 | 
						|
000	New York	New York Public Libra	2
 | 
						|
drop table t1, t2, t3;
 | 
						|
create table t1 (f1 int);
 | 
						|
insert into t1 values (1);
 | 
						|
create table t2 (f1 int,f2 int);
 | 
						|
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;
 | 
						|
f1	count(distinct t2.f2)	count(distinct 1,NULL)
 | 
						|
1	0	0
 | 
						|
drop table t1,t2;
 | 
						|
create table t1 (f int);
 | 
						|
select count(distinct f) from t1;
 | 
						|
count(distinct f)
 | 
						|
0
 | 
						|
drop table t1;
 | 
						|
create table t1 (a char(3), b char(20), primary key (a, b));
 | 
						|
insert into t1 values ('ABW', 'Dutch'), ('ABW', 'English');
 | 
						|
select count(distinct a) from t1 group by b;
 | 
						|
count(distinct a)
 | 
						|
1
 | 
						|
1
 | 
						|
drop table t1;
 | 
						|
create table t1 (f1 int, f2 int);
 | 
						|
insert into t1 values (0,1),(1,2);
 | 
						|
select count(distinct if(f1,3,f2)) from t1;
 | 
						|
count(distinct if(f1,3,f2))
 | 
						|
2
 | 
						|
drop table t1;
 |