MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
partition_10.inc
1 # inc/partition_10.inc
2 #
3 # Do some basic checks on a table.
4 #
5 # FIXME: Do not write the statements and results, if SQL return code = 0
6 # and result set like expected. Write a message, that all is like
7 # expected instead.
8 #
9 # All SELECTs are so written, that we get my_value = 1, when everything
10 # is like expected.
11 #
12 
13 --source suite/parts/inc/partition_layout.inc
14 
15 ####### Variations with multiple records
16 # Select on empty table
17 SELECT COUNT(*) = 0 AS my_value FROM t1;
18 # (mass) Insert of $max_row records
19 eval INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND $max_row;
20 # Select
21 eval SELECT (COUNT(*) = $max_row) AND (MIN(f1) = 1) AND (MAX(f1) = $max_row)
22  AS my_value FROM t1;
23 # DEBUG SELECT COUNT(*),MIN(f1),MAX(f1) FROM t1;
24 # (mass) Update $max_row_div4 * 2 + 1 records
25 eval UPDATE t1 SET f1 = f1 + $max_row
26 WHERE f1 BETWEEN $max_row_div2 - $max_row_div4 AND $max_row_div2 + $max_row_div4;
27 # Select
28 eval SELECT (COUNT(*) = $max_row) AND (MIN(f1) = 1) AND (MAX(f1) = $max_row_div2 + $max_row_div4 + $max_row )
29  AS my_value FROM t1;
30 # DEBUG SELECT COUNT(*),MIN(f1),MAX(f1) FROM t1;
31 # (mass) Delete $max_row_div4 * 2 + 1 records
32 eval DELETE FROM t1
33 WHERE f1 BETWEEN $max_row_div2 - $max_row_div4 + $max_row AND $max_row_div2 + $max_row_div4 + $max_row;
34 # Select
35 eval SELECT (COUNT(*) = $max_row - $max_row_div4 - $max_row_div4 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = $max_row)
36  AS my_value FROM t1;
37 # DEBUG SELECT COUNT(*),MIN(f1),MAX(f1) FROM t1;
38 
39 ####### Variations with single records
40 # Insert one record at beginning
41 INSERT INTO t1 SET f1 = 0 , f2 = '#######';
42 # Select this record
43 SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######';
44 # Insert one record at end
45 eval INSERT INTO t1 SET f1 = $max_row + 1, f2 = '#######';
46 # Select this record
47 eval SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = $max_row + 1 AND f2 = '#######';
48 # Update one record
49 eval UPDATE t1 SET f1 = $max_row + 2, f2 = 'ZZZZZZZ'
50  WHERE f1 = 0 AND f2 = '#######';
51 # Select
52 eval SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = $max_row + 2 AND f2 = 'ZZZZZZZ';
53 # Bug #15968: Partitions: crash when INSERT with f1 = -1 into PARTITION BY HASH(f1)
54 eval UPDATE t1 SET f1 = 0 - 1, f2 = 'ZZZZZZZ'
55  WHERE f1 = $max_row + 1 AND f2 = '#######';
56 # Select
57 SELECT COUNT(*) AS my_value FROM t1 WHERE f1 = 0 - 1 AND f2 = 'ZZZZZZZ';
58 # Delete
59 eval DELETE FROM t1 WHERE f1 = $max_row + 2 AND f2 = 'ZZZZZZZ';
60 DELETE FROM t1 WHERE f1 = 0 - 1 AND f2 = 'ZZZZZZZ';
61 # Select
62 SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ';
63 
64 # Truncate
65 TRUNCATE t1;
66 # Select on empty table
67 SELECT COUNT(*) = 0 AS my_value FROM t1;