1
##################################################################
4
# This test is designed to test the changes included in WL#3228. #
5
# The changes include the ability to replicate with the master #
6
# having columns that are smaller (shorter) than the slave. #
7
##################################################################
9
-- source include/master-slave.inc
10
-- source include/have_binlog_format_row.inc
13
DROP TABLE IF EXISTS t1;
17
--echo **** Testing WL#3228 changes. ****
18
--echo *** Create "wider" table on slave ***
19
sync_slave_with_master;
22
# Check each column type to verify error 1532 fires (BUG#22086)
23
# This check covers only those fields that require additional
24
# metadata from the master to be replicated to the slave. These
26
# MYSQL_TYPE_NEWDECIMAL:
36
# Test: Checking MYSQL_TYPE_NEWDECIMAL fields
38
--echo Checking MYSQL_TYPE_NEWDECIMAL fields
39
let $test_table_master = CREATE TABLE t1 (a DECIMAL(20, 10));
40
let $test_table_slave = CREATE TABLE t1 (a DECIMAL(5,2));
41
let $test_insert = INSERT INTO t1 VALUES (901251.90125);
42
source include/test_fieldsize.inc;
44
let $test_table_master = CREATE TABLE t1 (a DECIMAL(27, 18));
45
let $test_table_slave = CREATE TABLE t1 (a DECIMAL(27, 9));
46
let $test_insert = INSERT INTO t1 VALUES (901251.90125);
47
source include/test_fieldsize.inc;
49
let $test_table_master = CREATE TABLE t1 (a NUMERIC(20, 10));
50
let $test_table_slave = CREATE TABLE t1 (a NUMERIC(5,2));
51
let $test_insert = INSERT INTO t1 VALUES (901251.90125);
52
source include/test_fieldsize.inc;
55
# Test: Checking MYSQL_TYPE_FLOAT fields
57
--echo Checking MYSQL_TYPE_FLOAT fields
58
let $test_table_master = CREATE TABLE t1 (a FLOAT(47));
59
let $test_table_slave = CREATE TABLE t1 (a FLOAT(20));
60
let $test_insert = INSERT INTO t1 VALUES (901251.90125);
61
source include/test_fieldsize.inc;
64
# Test: Checking MYSQL_TYPE_BIT fields
66
--echo Checking MYSQL_TYPE_BIT fields
67
let $test_table_master = CREATE TABLE t1 (a BIT(64));
68
let $test_table_slave = CREATE TABLE t1 (a BIT(5));
69
let $test_insert = INSERT INTO t1 VALUES (B'10101');
70
source include/test_fieldsize.inc;
72
let $test_table_master = CREATE TABLE t1 (a BIT(12));
73
let $test_table_slave = CREATE TABLE t1 (a BIT(11));
74
let $test_insert = INSERT INTO t1 VALUES (B'10101');
75
source include/test_fieldsize.inc;
78
# Test: Checking MYSQL_TYPE_SET fields
80
--echo Checking MYSQL_TYPE_SET fields
81
let $test_table_master = CREATE TABLE t1 (a SET('1','2','3','4','5','6','7','8','9'));
82
let $test_table_slave = CREATE TABLE t1 (a SET('4'));
83
let $test_insert = INSERT INTO t1 VALUES ('4');
84
source include/test_fieldsize.inc;
87
# Test: Checking MYSQL_TYPE_STRING fields
89
--echo Checking MYSQL_TYPE_STRING fields
90
let $test_table_master = CREATE TABLE t1 (a CHAR(20));
91
let $test_table_slave = CREATE TABLE t1 (a CHAR(10));
92
let $test_insert = INSERT INTO t1 VALUES ('This is a test.');
93
source include/test_fieldsize.inc;
96
# Test: Checking MYSQL_TYPE_ENUM fields
98
--echo Checking MYSQL_TYPE_ENUM fields
99
let $test_table_master = CREATE TABLE t1 (a ENUM(
100
'01','02','03','04','05','06','07','08','09',
101
'11','12','13','14','15','16','17','18','19',
102
'21','22','23','24','25','26','27','28','29',
103
'31','32','33','34','35','36','37','38','39',
104
'41','42','43','44','45','46','47','48','49',
105
'51','52','53','54','55','56','57','58','59',
106
'61','62','63','64','65','66','67','68','69',
107
'71','72','73','74','75','76','77','78','79',
108
'81','82','83','84','85','86','87','88','89',
109
'91','92','93','94','95','96','97','98','99',
110
'101','102','103','104','105','106','107','108','109',
111
'111','112','113','114','115','116','117','118','119',
112
'121','122','123','124','125','126','127','128','129',
113
'131','132','133','134','135','136','137','138','139',
114
'141','142','143','144','145','146','147','148','149',
115
'151','152','153','154','155','156','157','158','159',
116
'161','162','163','164','165','166','167','168','169',
117
'171','172','173','174','175','176','177','178','179',
118
'181','182','183','184','185','186','187','188','189',
119
'191','192','193','194','195','196','197','198','199',
120
'201','202','203','204','205','206','207','208','209',
121
'211','212','213','214','215','216','217','218','219',
122
'221','222','223','224','225','226','227','228','229',
123
'231','232','233','234','235','236','237','238','239',
124
'241','242','243','244','245','246','247','248','249',
125
'251','252','253','254','255','256','257','258','259',
126
'261','262','263','264','265','266','267','268','269',
127
'271','272','273','274','275','276','277','278','279',
128
'281','282','283','284','285','286','287','288','289',
129
'291','292','293','294','295','296','297','298','299'
131
let $test_table_slave = CREATE TABLE t1 (a ENUM('44','54'));
132
let $test_insert = INSERT INTO t1 VALUES ('44');
133
source include/test_fieldsize.inc;
136
# Test: Checking MYSQL_TYPE_VARCHAR fields
138
--echo Checking MYSQL_TYPE_VARCHAR fields
139
let $test_table_master = CREATE TABLE t1 (a VARCHAR(2000));
140
let $test_table_slave = CREATE TABLE t1 (a VARCHAR(100));
141
let $test_insert = INSERT INTO t1 VALUES ('This is a test.');
142
source include/test_fieldsize.inc;
144
let $test_table_master = CREATE TABLE t1 (a VARCHAR(200));
145
let $test_table_slave = CREATE TABLE t1 (a VARCHAR(10));
146
let $test_insert = INSERT INTO t1 VALUES ('This is a test.');
147
source include/test_fieldsize.inc;
149
let $test_table_master = CREATE TABLE t1 (a VARCHAR(2000));
150
let $test_table_slave = CREATE TABLE t1 (a VARCHAR(1000));
151
let $test_insert = INSERT INTO t1 VALUES ('This is a test.');
152
source include/test_fieldsize.inc;
155
# Test: Checking MYSQL_TYPE_BLOB fields
157
--echo Checking MYSQL_TYPE_BLOB fields
158
let $test_table_master = CREATE TABLE t1 (a LONGBLOB);
159
let $test_table_slave = CREATE TABLE t1 (a TINYBLOB);
160
let $test_insert = INSERT INTO t1 VALUES ('This is a test.');
161
source include/test_fieldsize.inc;
163
--echo *** Cleanup ***
165
DROP TABLE IF EXISTS t1;
166
sync_slave_with_master;