~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysql-test/t/sum_distinct-big.test

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# Various tests for SUM(DISTINCT ...)
 
3
#
 
4
 
 
5
--source include/big_test.inc
 
6
--disable_warnings
 
7
DROP TABLE IF EXISTS t1, t2;
 
8
--enable_warnings
 
9
 
 
10
#
 
11
# Test the case when distinct values doesn't fit in memory and 
 
12
# filesort is used (see uniques.cc:merge_walk)
 
13
#
 
14
 
 
15
CREATE TABLE t1 (id INTEGER);
 
16
CREATE TABLE t2 (id INTEGER);
 
17
 
 
18
INSERT INTO t1 (id) VALUES (1), (1), (1),(1);
 
19
INSERT INTO t1 (id) SELECT id FROM t1; /* 8 */
 
20
INSERT INTO t1 (id) SELECT id FROM t1; /* 12 */
 
21
INSERT INTO t1 (id) SELECT id FROM t1; /* 16 */
 
22
INSERT INTO t1 (id) SELECT id FROM t1; /* 20 */
 
23
INSERT INTO t1 (id) SELECT id FROM t1; /* 24 */
 
24
INSERT INTO t1 SELECT id+1 FROM t1;
 
25
INSERT INTO t1 SELECT id+2 FROM t1;
 
26
INSERT INTO t1 SELECT id+4 FROM t1;
 
27
INSERT INTO t1 SELECT id+8 FROM t1;
 
28
INSERT INTO t1 SELECT id+16 FROM t1;
 
29
INSERT INTO t1 SELECT id+32 FROM t1;
 
30
INSERT INTO t1 SELECT id+64 FROM t1;
 
31
INSERT INTO t1 SELECT id+128 FROM t1;
 
32
INSERT INTO t1 SELECT id+256 FROM t1;
 
33
INSERT INTO t1 SELECT id+512 FROM t1;
 
34
 
 
35
# Just test that AVG(DISTINCT) is there
 
36
SELECT AVG(DISTINCT id) FROM t1 GROUP BY id % 13;
 
37
SELECT SUM(DISTINCT id)/COUNT(DISTINCT id) FROM t1 GROUP BY id % 13;
 
38
 
 
39
INSERT INTO t1 SELECT id+1024 FROM t1;
 
40
INSERT INTO t1 SELECT id+2048 FROM t1;
 
41
INSERT INTO t1 SELECT id+4096 FROM t1;
 
42
INSERT INTO t1 SELECT id+8192 FROM t1;
 
43
INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand();
 
44
 
 
45
# SELECT '++++++++++++++++++++++++++++++++++++++++++++++++++';
 
46
 
 
47
SELECT SUM(DISTINCT id) sm FROM t1;
 
48
SELECT SUM(DISTINCT id) sm FROM t2;
 
49
SELECT SUM(DISTINCT id) sm FROM t1 group by id % 13;
 
50
 
 
51
# this limit for max_heap_table_size is set to force testing the case, when
 
52
# all distinct sum values can not fit in memory and must be stored in a
 
53
# temporary table
 
54
 
 
55
SET max_heap_table_size=16384;
 
56
 
 
57
# to check that max_heap_table_size was actually set (hard limit for minimum
 
58
# max_heap_table_size is set in mysqld.cc):
 
59
 
 
60
SHOW variables LIKE 'max_heap_table_size';
 
61
 
 
62
SELECT SUM(DISTINCT id) sm FROM t1;
 
63
SELECT SUM(DISTINCT id) sm FROM t2;
 
64
SELECT SUM(DISTINCT id) sm FROM t1 GROUP BY id % 13;
 
65
 
 
66
DROP TABLE t1;
 
67
DROP TABLE t2;