~drizzle-trunk/drizzle/development

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' ]
}