1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# Copyright (C) 2009-2010 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
# USA
# Attention: If you modify something under $tables than the amount and the names of
# the tables will change and this requires adjustments in
# conf/replication/replication-dml_sql.yy *_table
#
$schemas = [ 'test' ];
$tables = {
# Example: table<rows>
rows => [ 300 ] ,
#
# partitions => [ undef , 'KEY (pk) PARTITIONS 2' ] ,
# Currently not tested
#
# Example: table<rows> , table<rows>_<engine>
engines => [ 'MyISAM' , 'InnoDB' ] ,
#
# Example: table<rows>_<engine>_<pk column data type> like table0_myisam_int_autoinc
# The preferred PK variation is within the next line.
# pk => [ 'int auto_increment' , 'int' , undef ]
#
# Enable
# - "undef" when the RPL team says it is time to do this
# - "auto_increment" when
# Bug#50619 assert in handler::update_auto_increment
# Bug#46902 Assertion failed: next_insert_id >= auto_inc_interval_for_cur_row.minimum()
# are fixed
# and modify conf/replication/replication-ddl_sql.yy so that tables with names like
# table<number> and table<number>_<engine> are used.
#
pk => [ 'int auto_increment' ]
};
$fields = {
# a) CHAR(25) - constant length sqlmode PAD WITH SPACES...
# b) VARCHAR(25) - less than 255 characters
# c) VARCHAR(257) - more than 255 characters
# d) BIT ... - less than 1 Byte
# e) BIGINT - it's so simple and useful for keys
# f) DECIMAL - non easy structure but maybe not important
# g) FLOAT - non easy structure but maybe not important
# h) BLOB - special treatment if BINLOG_ROW_IMAGE = noblob
types => [
# Numeric
'bit(4)' , 'bit(64)' ,
'tinyint' , 'bigint' ,
'double' ,
#
# decimal(M,N) is not supported by RQG. I would have taken decimal(65,30),decimal(10,0).
# Enable the next line in case
# Bug#49533 Overflow in DECIMAL, SBR out of sync
# Bug#53643 assert in Field_new_decimal::store_value on slave server
# is fixed.
# 'decimal(35)' ,
# String
# Manual: Specifying the CHARACTER SET binary attribute for a character data type causes
# the column to be created as the corresponding binary data type:
# CHAR becomes BINARY, VARCHAR becomes VARBINARY, and TEXT becomes BLOB.
# We do not mention *BINARY and BLOB here + but have 'binary' between the charsets.
'char(25)',
'varchar(25)',
'tinytext'
] ,
indexes => [ undef ] ,
null => [ 'default null' , 'not null' ] ,
# default => [ undef , 'default null' ] ,
sign => [ undef ] ,
charsets => [ undef , 'binary' ]
};
$data = {
numbers => [ 'digit' , 'null' , undef ],
strings => [ 'letter' , 'english' , 'null' ],
blobs => [ 'english', 'data' ],
temporals => [ undef , 'null' , 'time' , 'date' , 'datetime' , 'year(2)' , 'year(4)' , 'timestamp' ]
}
|