mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0
This commit is contained in:
4
mysql-test/include/big_test.inc
Normal file
4
mysql-test/include/big_test.inc
Normal file
@ -0,0 +1,4 @@
|
||||
--require r/big_test.require
|
||||
disable_query_log;
|
||||
eval select $BIG_TEST as using_big_test;
|
||||
enable_query_log;
|
@ -1179,7 +1179,7 @@ start_master()
|
||||
--default-character-set=$CHARACTER_SET \
|
||||
--tmpdir=$MYSQL_TMP_DIR \
|
||||
--language=$LANGUAGE \
|
||||
--innodb_data_file_path=ibdata1:50M \
|
||||
--innodb_data_file_path=ibdata1:128M:autoextend \
|
||||
--open-files-limit=1024 \
|
||||
$MASTER_40_ARGS \
|
||||
$SMALL_SERVER \
|
||||
@ -1200,7 +1200,7 @@ start_master()
|
||||
$USE_NDBCLUSTER \
|
||||
--tmpdir=$MYSQL_TMP_DIR \
|
||||
--language=$LANGUAGE \
|
||||
--innodb_data_file_path=ibdata1:50M \
|
||||
--innodb_data_file_path=ibdata1:128M:autoextend \
|
||||
$MASTER_40_ARGS \
|
||||
$SMALL_SERVER \
|
||||
$EXTRA_MASTER_OPT $EXTRA_MASTER_MYSQLD_OPT \
|
||||
|
@ -436,30 +436,30 @@ f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select sql_big_result v,count(t) from t1 group by v limit 10;
|
||||
v count(t)
|
||||
select sql_big_result trim(v),count(t) from t1 group by v limit 10;
|
||||
trim(v) count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select sql_big_result v,count(c) from t1 group by v limit 10;
|
||||
v count(c)
|
||||
i 10
|
||||
select sql_big_result trim(v),count(c) from t1 group by v limit 10;
|
||||
trim(v) count(c)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
i 10
|
||||
select c,count(*) from t1 group by c limit 10;
|
||||
c count(*)
|
||||
a 1
|
||||
@ -520,18 +520,18 @@ f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select sql_big_result t,count(t) from t1 group by t limit 10;
|
||||
t count(t)
|
||||
select sql_big_result trim(t),count(t) from t1 group by t limit 10;
|
||||
trim(t) count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
i 10
|
||||
drop table t1;
|
||||
create table t1 (a char(10), unique (a));
|
||||
insert into t1 values ('a');
|
||||
|
34
mysql-test/r/innodb-big.result
Normal file
34
mysql-test/r/innodb-big.result
Normal file
@ -0,0 +1,34 @@
|
||||
DROP TABLE IF EXISTS t1, t2, t3, t4;
|
||||
CREATE TABLE t1 (id INTEGER) ENGINE=MYISAM;
|
||||
CREATE TABLE t2 (id INTEGER primary key) ENGINE=INNODB;
|
||||
CREATE TABLE t3 (a char(32) primary key,id INTEGER) ENGINE=INNODB;
|
||||
CREATE TABLE t4 (a char(32) primary key,id INTEGER) ENGINE=MYISAM;
|
||||
INSERT INTO t1 (id) VALUES (1);
|
||||
INSERT INTO t1 SELECT id+1 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8 FROM t1;
|
||||
INSERT INTO t1 SELECT id+16 FROM t1;
|
||||
INSERT INTO t1 SELECT id+32 FROM t1;
|
||||
INSERT INTO t1 SELECT id+64 FROM t1;
|
||||
INSERT INTO t1 SELECT id+128 FROM t1;
|
||||
INSERT INTO t1 SELECT id+256 FROM t1;
|
||||
INSERT INTO t1 SELECT id+512 FROM t1;
|
||||
INSERT INTO t1 SELECT id+1024 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2048 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4096 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8192 FROM t1;
|
||||
INSERT INTO t1 SELECT id+16384 FROM t1;
|
||||
INSERT INTO t1 SELECT id+32768 FROM t1;
|
||||
INSERT INTO t1 SELECT id+65536 FROM t1;
|
||||
INSERT INTO t1 SELECT id+131072 FROM t1;
|
||||
INSERT INTO t1 SELECT id+262144 FROM t1;
|
||||
INSERT INTO t1 SELECT id+524288 FROM t1;
|
||||
INSERT INTO t1 SELECT id+1048576 FROM t1;
|
||||
INSERT INTO t2 SELECT * FROM t1;
|
||||
INSERT INTO t3 SELECT concat(id),id from t2 ORDER BY -id;
|
||||
INSERT INTO t4 SELECT * from t3 ORDER BY concat(a);
|
||||
select sum(id) from t3;
|
||||
sum(id)
|
||||
2199024304128
|
||||
drop table t1,t2,t3,t4;
|
108
mysql-test/r/sum_distinct-big.result
Normal file
108
mysql-test/r/sum_distinct-big.result
Normal file
@ -0,0 +1,108 @@
|
||||
using_big_test
|
||||
0
|
||||
CREATE TABLE t1 (id INTEGER);
|
||||
CREATE TABLE t2 (id INTEGER);
|
||||
INSERT INTO t1 (id) VALUES (1), (1), (1),(1);
|
||||
INSERT INTO t1 (id) SELECT id FROM t1;
|
||||
/* 8 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1;
|
||||
/* 12 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1;
|
||||
/* 16 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1;
|
||||
/* 20 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1;
|
||||
/* 24 */
|
||||
INSERT INTO t1 SELECT id+1 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8 FROM t1;
|
||||
INSERT INTO t1 SELECT id+16 FROM t1;
|
||||
INSERT INTO t1 SELECT id+32 FROM t1;
|
||||
INSERT INTO t1 SELECT id+64 FROM t1;
|
||||
INSERT INTO t1 SELECT id+128 FROM t1;
|
||||
INSERT INTO t1 SELECT id+256 FROM t1;
|
||||
INSERT INTO t1 SELECT id+512 FROM t1;
|
||||
SELECT AVG(DISTINCT id) FROM t1 GROUP BY id % 13;
|
||||
AVG(DISTINCT id)
|
||||
513.5000
|
||||
508.0000
|
||||
509.0000
|
||||
510.0000
|
||||
511.0000
|
||||
512.0000
|
||||
513.0000
|
||||
514.0000
|
||||
515.0000
|
||||
516.0000
|
||||
517.0000
|
||||
511.5000
|
||||
512.5000
|
||||
SELECT SUM(DISTINCT id)/COUNT(DISTINCT id) FROM t1 GROUP BY id % 13;
|
||||
SUM(DISTINCT id)/COUNT(DISTINCT id)
|
||||
513.50000
|
||||
508.00000
|
||||
509.00000
|
||||
510.00000
|
||||
511.00000
|
||||
512.00000
|
||||
513.00000
|
||||
514.00000
|
||||
515.00000
|
||||
516.00000
|
||||
517.00000
|
||||
511.50000
|
||||
512.50000
|
||||
INSERT INTO t1 SELECT id+1024 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2048 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4096 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8192 FROM t1;
|
||||
INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand();
|
||||
SELECT SUM(DISTINCT id) sm FROM t1;
|
||||
sm
|
||||
134225920
|
||||
SELECT SUM(DISTINCT id) sm FROM t2;
|
||||
sm
|
||||
134225920
|
||||
SELECT SUM(DISTINCT id) sm FROM t1 group by id % 13;
|
||||
sm
|
||||
10327590
|
||||
10328851
|
||||
10330112
|
||||
10331373
|
||||
10332634
|
||||
10317510
|
||||
10318770
|
||||
10320030
|
||||
10321290
|
||||
10322550
|
||||
10323810
|
||||
10325070
|
||||
10326330
|
||||
SET max_heap_table_size=16384;
|
||||
SHOW variables LIKE 'max_heap_table_size';
|
||||
Variable_name Value
|
||||
max_heap_table_size 16384
|
||||
SELECT SUM(DISTINCT id) sm FROM t1;
|
||||
sm
|
||||
134225920
|
||||
SELECT SUM(DISTINCT id) sm FROM t2;
|
||||
sm
|
||||
134225920
|
||||
SELECT SUM(DISTINCT id) sm FROM t1 GROUP BY id % 13;
|
||||
sm
|
||||
10327590
|
||||
10328851
|
||||
10330112
|
||||
10331373
|
||||
10332634
|
||||
10317510
|
||||
10318770
|
||||
10320030
|
||||
10321290
|
||||
10322550
|
||||
10323810
|
||||
10325070
|
||||
10326330
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
@ -95,109 +95,3 @@ SELECT SUM(DISTINCT id % 11) FROM t1;
|
||||
SUM(DISTINCT id % 11)
|
||||
55
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id INTEGER);
|
||||
CREATE TABLE t2 (id INTEGER);
|
||||
INSERT INTO t1 (id) VALUES (1), (1), (1),(1);
|
||||
INSERT INTO t1 (id) SELECT id FROM t1;
|
||||
/* 8 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1;
|
||||
/* 12 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1;
|
||||
/* 16 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1;
|
||||
/* 20 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1;
|
||||
/* 24 */
|
||||
INSERT INTO t1 SELECT id+1 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8 FROM t1;
|
||||
INSERT INTO t1 SELECT id+16 FROM t1;
|
||||
INSERT INTO t1 SELECT id+32 FROM t1;
|
||||
INSERT INTO t1 SELECT id+64 FROM t1;
|
||||
INSERT INTO t1 SELECT id+128 FROM t1;
|
||||
INSERT INTO t1 SELECT id+256 FROM t1;
|
||||
INSERT INTO t1 SELECT id+512 FROM t1;
|
||||
SELECT AVG(DISTINCT id) FROM t1 GROUP BY id % 13;
|
||||
AVG(DISTINCT id)
|
||||
513.5000
|
||||
508.0000
|
||||
509.0000
|
||||
510.0000
|
||||
511.0000
|
||||
512.0000
|
||||
513.0000
|
||||
514.0000
|
||||
515.0000
|
||||
516.0000
|
||||
517.0000
|
||||
511.5000
|
||||
512.5000
|
||||
SELECT SUM(DISTINCT id)/COUNT(DISTINCT id) FROM t1 GROUP BY id % 13;
|
||||
SUM(DISTINCT id)/COUNT(DISTINCT id)
|
||||
513.50000
|
||||
508.00000
|
||||
509.00000
|
||||
510.00000
|
||||
511.00000
|
||||
512.00000
|
||||
513.00000
|
||||
514.00000
|
||||
515.00000
|
||||
516.00000
|
||||
517.00000
|
||||
511.50000
|
||||
512.50000
|
||||
INSERT INTO t1 SELECT id+1024 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2048 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4096 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8192 FROM t1;
|
||||
INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand();
|
||||
SELECT SUM(DISTINCT id) sm FROM t1;
|
||||
sm
|
||||
134225920
|
||||
SELECT SUM(DISTINCT id) sm FROM t2;
|
||||
sm
|
||||
134225920
|
||||
SELECT SUM(DISTINCT id) sm FROM t1 group by id % 13;
|
||||
sm
|
||||
10327590
|
||||
10328851
|
||||
10330112
|
||||
10331373
|
||||
10332634
|
||||
10317510
|
||||
10318770
|
||||
10320030
|
||||
10321290
|
||||
10322550
|
||||
10323810
|
||||
10325070
|
||||
10326330
|
||||
SET max_heap_table_size=16384;
|
||||
SHOW variables LIKE 'max_heap_table_size';
|
||||
Variable_name Value
|
||||
max_heap_table_size 16384
|
||||
SELECT SUM(DISTINCT id) sm FROM t1;
|
||||
sm
|
||||
134225920
|
||||
SELECT SUM(DISTINCT id) sm FROM t2;
|
||||
sm
|
||||
134225920
|
||||
SELECT SUM(DISTINCT id) sm FROM t1 GROUP BY id % 13;
|
||||
sm
|
||||
10327590
|
||||
10328851
|
||||
10330112
|
||||
10331373
|
||||
10332634
|
||||
10317510
|
||||
10318770
|
||||
10320030
|
||||
10321290
|
||||
10322550
|
||||
10323810
|
||||
10325070
|
||||
10326330
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
@ -280,14 +280,14 @@ explain select * from t1 where v='a';
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
select v,count(t) from t1 group by v limit 10;
|
||||
select v,count(c) from t1 group by v limit 10;
|
||||
select sql_big_result v,count(t) from t1 group by v limit 10;
|
||||
select sql_big_result v,count(c) from t1 group by v limit 10;
|
||||
select sql_big_result trim(v),count(t) from t1 group by v limit 10;
|
||||
select sql_big_result trim(v),count(c) from t1 group by v limit 10;
|
||||
select c,count(*) from t1 group by c limit 10;
|
||||
select c,count(t) from t1 group by c limit 10;
|
||||
select sql_big_result c,count(t) from t1 group by c limit 10;
|
||||
select t,count(*) from t1 group by t limit 10;
|
||||
select t,count(t) from t1 group by t limit 10;
|
||||
select sql_big_result t,count(t) from t1 group by t limit 10;
|
||||
select sql_big_result trim(t),count(t) from t1 group by t limit 10;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
|
46
mysql-test/t/innodb-big.test
Normal file
46
mysql-test/t/innodb-big.test
Normal file
@ -0,0 +1,46 @@
|
||||
#
|
||||
# Test some things that takes a long time
|
||||
|
||||
-- source include/big_test.inc
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1, t2, t3, t4;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# Test test how filesort and buffered-record-reads works with innodb
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (id INTEGER) ENGINE=MYISAM;
|
||||
CREATE TABLE t2 (id INTEGER primary key) ENGINE=INNODB;
|
||||
CREATE TABLE t3 (a char(32) primary key,id INTEGER) ENGINE=INNODB;
|
||||
CREATE TABLE t4 (a char(32) primary key,id INTEGER) ENGINE=MYISAM;
|
||||
|
||||
INSERT INTO t1 (id) VALUES (1);
|
||||
INSERT INTO t1 SELECT id+1 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8 FROM t1;
|
||||
INSERT INTO t1 SELECT id+16 FROM t1;
|
||||
INSERT INTO t1 SELECT id+32 FROM t1;
|
||||
INSERT INTO t1 SELECT id+64 FROM t1;
|
||||
INSERT INTO t1 SELECT id+128 FROM t1;
|
||||
INSERT INTO t1 SELECT id+256 FROM t1;
|
||||
INSERT INTO t1 SELECT id+512 FROM t1;
|
||||
INSERT INTO t1 SELECT id+1024 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2048 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4096 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8192 FROM t1;
|
||||
INSERT INTO t1 SELECT id+16384 FROM t1;
|
||||
INSERT INTO t1 SELECT id+32768 FROM t1;
|
||||
INSERT INTO t1 SELECT id+65536 FROM t1;
|
||||
INSERT INTO t1 SELECT id+131072 FROM t1;
|
||||
INSERT INTO t1 SELECT id+262144 FROM t1;
|
||||
INSERT INTO t1 SELECT id+524288 FROM t1;
|
||||
INSERT INTO t1 SELECT id+1048576 FROM t1;
|
||||
INSERT INTO t2 SELECT * FROM t1;
|
||||
INSERT INTO t3 SELECT concat(id),id from t2 ORDER BY -id;
|
||||
INSERT INTO t4 SELECT * from t3 ORDER BY concat(a);
|
||||
select sum(id) from t3;
|
||||
drop table t1,t2,t3,t4;
|
67
mysql-test/t/sum_distinct-big.test
Normal file
67
mysql-test/t/sum_distinct-big.test
Normal file
@ -0,0 +1,67 @@
|
||||
#
|
||||
# Various tests for SUM(DISTINCT ...)
|
||||
#
|
||||
|
||||
--source include/big_test.inc
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# Test the case when distinct values doesn't fit in memory and
|
||||
# filesort is used (see uniques.cc:merge_walk)
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (id INTEGER);
|
||||
CREATE TABLE t2 (id INTEGER);
|
||||
|
||||
INSERT INTO t1 (id) VALUES (1), (1), (1),(1);
|
||||
INSERT INTO t1 (id) SELECT id FROM t1; /* 8 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1; /* 12 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1; /* 16 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1; /* 20 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1; /* 24 */
|
||||
INSERT INTO t1 SELECT id+1 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8 FROM t1;
|
||||
INSERT INTO t1 SELECT id+16 FROM t1;
|
||||
INSERT INTO t1 SELECT id+32 FROM t1;
|
||||
INSERT INTO t1 SELECT id+64 FROM t1;
|
||||
INSERT INTO t1 SELECT id+128 FROM t1;
|
||||
INSERT INTO t1 SELECT id+256 FROM t1;
|
||||
INSERT INTO t1 SELECT id+512 FROM t1;
|
||||
|
||||
# Just test that AVG(DISTINCT) is there
|
||||
SELECT AVG(DISTINCT id) FROM t1 GROUP BY id % 13;
|
||||
SELECT SUM(DISTINCT id)/COUNT(DISTINCT id) FROM t1 GROUP BY id % 13;
|
||||
|
||||
INSERT INTO t1 SELECT id+1024 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2048 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4096 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8192 FROM t1;
|
||||
INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand();
|
||||
|
||||
# SELECT '++++++++++++++++++++++++++++++++++++++++++++++++++';
|
||||
|
||||
SELECT SUM(DISTINCT id) sm FROM t1;
|
||||
SELECT SUM(DISTINCT id) sm FROM t2;
|
||||
SELECT SUM(DISTINCT id) sm FROM t1 group by id % 13;
|
||||
|
||||
# this limit for max_heap_table_size is set to force testing the case, when
|
||||
# all distinct sum values can not fit in memory and must be stored in a
|
||||
# temporary table
|
||||
|
||||
SET max_heap_table_size=16384;
|
||||
|
||||
# to check that max_heap_table_size was actually set (hard limit for minimum
|
||||
# max_heap_table_size is set in mysqld.cc):
|
||||
|
||||
SHOW variables LIKE 'max_heap_table_size';
|
||||
|
||||
SELECT SUM(DISTINCT id) sm FROM t1;
|
||||
SELECT SUM(DISTINCT id) sm FROM t2;
|
||||
SELECT SUM(DISTINCT id) sm FROM t1 GROUP BY id % 13;
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
@ -93,62 +93,3 @@ SELECT SUM(DISTINCT id) FROM t1;
|
||||
SELECT SUM(DISTINCT id % 11) FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Test the case when distinct values doesn't fit in memory and
|
||||
# filesort is used (see uniques.cc:merge_walk)
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (id INTEGER);
|
||||
CREATE TABLE t2 (id INTEGER);
|
||||
|
||||
INSERT INTO t1 (id) VALUES (1), (1), (1),(1);
|
||||
INSERT INTO t1 (id) SELECT id FROM t1; /* 8 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1; /* 12 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1; /* 16 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1; /* 20 */
|
||||
INSERT INTO t1 (id) SELECT id FROM t1; /* 24 */
|
||||
INSERT INTO t1 SELECT id+1 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8 FROM t1;
|
||||
INSERT INTO t1 SELECT id+16 FROM t1;
|
||||
INSERT INTO t1 SELECT id+32 FROM t1;
|
||||
INSERT INTO t1 SELECT id+64 FROM t1;
|
||||
INSERT INTO t1 SELECT id+128 FROM t1;
|
||||
INSERT INTO t1 SELECT id+256 FROM t1;
|
||||
INSERT INTO t1 SELECT id+512 FROM t1;
|
||||
|
||||
# Just test that AVG(DISTINCT) is there
|
||||
SELECT AVG(DISTINCT id) FROM t1 GROUP BY id % 13;
|
||||
SELECT SUM(DISTINCT id)/COUNT(DISTINCT id) FROM t1 GROUP BY id % 13;
|
||||
|
||||
INSERT INTO t1 SELECT id+1024 FROM t1;
|
||||
INSERT INTO t1 SELECT id+2048 FROM t1;
|
||||
INSERT INTO t1 SELECT id+4096 FROM t1;
|
||||
INSERT INTO t1 SELECT id+8192 FROM t1;
|
||||
INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand();
|
||||
|
||||
# SELECT '++++++++++++++++++++++++++++++++++++++++++++++++++';
|
||||
|
||||
SELECT SUM(DISTINCT id) sm FROM t1;
|
||||
SELECT SUM(DISTINCT id) sm FROM t2;
|
||||
SELECT SUM(DISTINCT id) sm FROM t1 group by id % 13;
|
||||
|
||||
# this limit for max_heap_table_size is set to force testing the case, when
|
||||
# all distinct sum values can not fit in memory and must be stored in a
|
||||
# temporary table
|
||||
|
||||
SET max_heap_table_size=16384;
|
||||
|
||||
# to check that max_heap_table_size was actually set (hard limit for minimum
|
||||
# max_heap_table_size is set in mysqld.cc):
|
||||
|
||||
SHOW variables LIKE 'max_heap_table_size';
|
||||
|
||||
SELECT SUM(DISTINCT id) sm FROM t1;
|
||||
SELECT SUM(DISTINCT id) sm FROM t2;
|
||||
SELECT SUM(DISTINCT id) sm FROM t1 GROUP BY id % 13;
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
Reference in New Issue
Block a user