~ubuntu-branches/ubuntu/natty/mysql-5.1/natty-proposed

« back to all changes in this revision

Viewing changes to mysql-test/extra/rpl_tests/rpl_extra_col_slave.test

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-02-22 08:30:45 UTC
  • mfrom: (1.4.1)
  • Revision ID: package-import@ubuntu.com-20120222083045-2rd53r4bnyx7qus4
Tags: 5.1.61-0ubuntu0.11.04.1
* SECURITY UPDATE: Update to 5.1.61 to fix multiple security issues
  (LP: #937869)
  - http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html
  - CVE-2011-2262
  - CVE-2012-0075
  - CVE-2012-0112
  - CVE-2012-0113
  - CVE-2012-0114
  - CVE-2012-0115
  - CVE-2012-0116
  - CVE-2012-0117
  - CVE-2012-0118
  - CVE-2012-0119
  - CVE-2012-0120
  - CVE-2012-0484
  - CVE-2012-0485
  - CVE-2012-0486
  - CVE-2012-0487
  - CVE-2012-0488
  - CVE-2012-0489
  - CVE-2012-0490
  - CVE-2012-0491
  - CVE-2012-0492
  - CVE-2012-0493
  - CVE-2012-0494
  - CVE-2012-0495
  - CVE-2012-0496

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#################################################
 
2
# Purpose: To test having extra columns on the slave.
 
3
##################################################
 
4
 
 
5
# Some tests in here requre partitioning
 
6
-- source include/have_partition.inc
 
7
 
 
8
#################################################
 
9
############ Different Table Def Test ###########
 
10
#################################################
 
11
# Purpose: To have different table def on the   #
 
12
#          master and slave. Most of these tests#
 
13
#          should stop the slave.               #
 
14
#################################################
 
15
 
 
16
call mtr.add_suppression("Slave: Unknown table 't6' Error_code: 1051");
 
17
 
 
18
--echo **** Diff Table Def Start ****
 
19
 
 
20
##############################################
 
21
### Try to replicate w/ PK on diff columns ###
 
22
### Should Stop Slave                      ###
 
23
##############################################
 
24
 
 
25
--echo *** On Slave ***
 
26
sync_slave_with_master;
 
27
STOP SLAVE;
 
28
RESET SLAVE;
 
29
 
 
30
eval CREATE TABLE t1 (a INT, b INT PRIMARY KEY, c CHAR(20),
 
31
                      d FLOAT DEFAULT '2.00', 
 
32
                      e CHAR(4) DEFAULT 'TEST') 
 
33
                      ENGINE=$engine_type;
 
34
 
 
35
--echo *** Create t1 on Master ***
 
36
connection master;
 
37
eval CREATE TABLE t1 (a INT PRIMARY KEY, b INT, c CHAR(10)
 
38
                       ) ENGINE=$engine_type;
 
39
 
 
40
RESET MASTER;
 
41
 
 
42
--echo *** Start Slave ***
 
43
connection slave;
 
44
START SLAVE;
 
45
 
 
46
--echo *** Master Data Insert ***
 
47
connection master;
 
48
 
 
49
INSERT INTO t1 () VALUES(1,2,'TEXAS'),(2,1,'AUSTIN'),(3,4,'QA');
 
50
SELECT * FROM t1 ORDER BY a;
 
51
 
 
52
--echo *** Select from slave ***
 
53
sync_slave_with_master;
 
54
SELECT * FROM t1 ORDER BY a;
 
55
 
 
56
--echo *** Drop t1  ***
 
57
connection master;
 
58
DROP TABLE t1;
 
59
sync_slave_with_master;
 
60
 
 
61
############################################
 
62
### Try to replicate CHAR(10) to CHAR(5) ###
 
63
### Should Stop Slave or truncate value  ###
 
64
############################################
 
65
 
 
66
## BUG22086
 
67
--echo *** Create t2 on slave  ***
 
68
STOP SLAVE;
 
69
RESET SLAVE;
 
70
eval CREATE TABLE t2 (a INT, b INT PRIMARY KEY, c CHAR(5),
 
71
                      d FLOAT DEFAULT '2.00',
 
72
                      e CHAR(5) DEFAULT 'TEST2')
 
73
                      ENGINE=$engine_type;
 
74
 
 
75
--echo *** Create t2 on Master ***
 
76
connection master;
 
77
eval CREATE TABLE t2 (a INT PRIMARY KEY, b INT, c CHAR(10)
 
78
                       ) ENGINE=$engine_type;
 
79
RESET MASTER;
 
80
 
 
81
--echo *** Master Data Insert ***
 
82
connection master;
 
83
 
 
84
INSERT INTO t2 () VALUES(1,2,'Kyle, TEX'),(2,1,'JOE AUSTIN'),(3,4,'QA TESTING');
 
85
SELECT * FROM t2 ORDER BY a;
 
86
 
 
87
--echo *** Start Slave ***
 
88
connection slave;
 
89
START SLAVE;
 
90
--let $slave_sql_errno= 1535
 
91
--let $show_slave_sql_error= 1
 
92
--source include/wait_for_slave_sql_error.inc
 
93
STOP SLAVE;
 
94
RESET SLAVE;
 
95
SELECT * FROM t2 ORDER BY a;
 
96
 
 
97
connection master;
 
98
RESET MASTER;
 
99
 
 
100
connection slave;
 
101
START SLAVE;
 
102
 
 
103
--echo *** Drop t2  ***
 
104
connection master;
 
105
DROP TABLE t2;
 
106
sync_slave_with_master;
 
107
 
 
108
####################################
 
109
### Try to replicate BLOB to INT ###
 
110
### Should Stop Slave            ###
 
111
####################################
 
112
--echo *** Create t3 on slave  ***
 
113
STOP SLAVE;
 
114
RESET SLAVE;
 
115
eval CREATE TABLE t3 (a INT, b INT PRIMARY KEY, c CHAR(20),
 
116
                      d FLOAT DEFAULT '2.00',
 
117
                      e CHAR(5) DEFAULT 'TEST2')
 
118
                      ENGINE=$engine_type;
 
119
 
 
120
--echo *** Create t3 on Master ***
 
121
connection master;
 
122
eval CREATE TABLE t3 (a BLOB, b INT PRIMARY KEY, c CHAR(20)
 
123
                       ) ENGINE=$engine_type;
 
124
RESET MASTER;
 
125
 
 
126
--echo *** Start Slave ***
 
127
connection slave;
 
128
START SLAVE;
 
129
 
 
130
--echo *** Master Data Insert ***
 
131
connection master;
 
132
 
 
133
set @b1 = 'b1';
 
134
set @b1 = concat(@b1,@b1);
 
135
 
 
136
INSERT INTO t3 () VALUES(@b1,2,'Kyle, TEX'),(@b1,1,'JOE AUSTIN'),(@b1,4,'QA TESTING');
 
137
 
 
138
--echo ********************************************
 
139
--echo *** Expect slave to fail with Error 1535 ***
 
140
--echo ********************************************
 
141
connection slave;
 
142
--let $slave_sql_errno= 1535
 
143
--let $slave_skip_counter= 2
 
144
--let $show_slave_sql_error= 1
 
145
--source include/wait_for_slave_sql_error_and_skip.inc
 
146
 
 
147
--echo *** Drop t3  ***
 
148
connection master;
 
149
DROP TABLE t3;
 
150
sync_slave_with_master;
 
151
 
 
152
#####################################################
 
153
# Columns with different types, more columns at end #
 
154
# Expect: proper error message (wrong types)        #
 
155
##################################################### 
 
156
 
 
157
--echo *** Create t4 on slave  ***
 
158
STOP SLAVE;
 
159
RESET SLAVE;
 
160
eval CREATE TABLE t4 (a INT, b INT PRIMARY KEY, c CHAR(20),
 
161
                      d FLOAT DEFAULT '2.00',
 
162
                      e CHAR(5) DEFAULT 'TEST2')
 
163
                      ENGINE=$engine_type;
 
164
 
 
165
--echo *** Create t4 on Master ***
 
166
connection master;
 
167
eval CREATE TABLE t4 (a DECIMAL(8,2), b INT PRIMARY KEY, c CHAR(20)
 
168
                       ) ENGINE=$engine_type;
 
169
RESET MASTER;
 
170
 
 
171
--echo *** Start Slave ***
 
172
connection slave;
 
173
START SLAVE;
 
174
 
 
175
--echo *** Master Data Insert ***
 
176
connection master;
 
177
 
 
178
INSERT INTO t4 () VALUES(100.22,2,'Kyle, TEX'),(200.26,1,'JOE AUSTIN'),
 
179
                        (30000.22,4,'QA TESTING');
 
180
 
 
181
--echo ********************************************
 
182
--echo *** Expect slave to fail with Error 1535 ***
 
183
--echo ********************************************
 
184
connection slave;
 
185
--let $slave_sql_errno= 1535
 
186
--let $slave_skip_counter= 2
 
187
--let $show_slave_sql_error= 1
 
188
--source include/wait_for_slave_sql_error_and_skip.inc
 
189
 
 
190
--echo *** Drop t4  ***
 
191
connection master;
 
192
DROP TABLE t4;
 
193
sync_slave_with_master;
 
194
 
 
195
#######################################################
 
196
# Columns with different types, same number of colums #
 
197
# Expect: Proper error message                        #
 
198
#######################################################
 
199
 
 
200
--echo *** Create t5 on slave  ***
 
201
STOP SLAVE;
 
202
RESET SLAVE;
 
203
eval CREATE TABLE t5 (a INT PRIMARY KEY, b CHAR(5),
 
204
                      c FLOAT, d INT, e DOUBLE,
 
205
                      f DECIMAL(8,2))ENGINE=$engine_type;
 
206
 
 
207
--echo *** Create t5 on Master ***
 
208
connection master;
 
209
eval CREATE TABLE t5 (a INT PRIMARY KEY, b VARCHAR(6),
 
210
                      c DECIMAL(8,2), d BIT, e BLOB,
 
211
                      f FLOAT) ENGINE=$engine_type;
 
212
RESET MASTER;
 
213
 
 
214
--echo *** Start Slave ***
 
215
connection slave;
 
216
START SLAVE;
 
217
 
 
218
--echo *** Master Data Insert ***
 
219
connection master;
 
220
 
 
221
INSERT INTO t5 () VALUES(1,'Kyle',200.23,1,'b1b1',23.00098),
 
222
                        (2,'JOE',300.01,0,'b2b2',1.0000009);
 
223
 
 
224
--echo ********************************************
 
225
--echo *** Expect slave to fail with Error 1535 ***
 
226
--echo ********************************************
 
227
connection slave;
 
228
--let $slave_sql_errno= 1535
 
229
--let $slave_skip_counter= 2
 
230
--let $show_slave_sql_error= 1
 
231
--source include/wait_for_slave_sql_error_and_skip.inc
 
232
 
 
233
--echo *** Drop t5  ***
 
234
connection master;
 
235
DROP TABLE t5;
 
236
sync_slave_with_master;
 
237
 
 
238
#######################################################
 
239
################## Continued ##########################
 
240
#######################################################
 
241
# Columns with different types, same number of colums #
 
242
# Expect: Proper error message                        #
 
243
#######################################################
 
244
 
 
245
--echo *** Create t6 on slave  ***
 
246
STOP SLAVE;
 
247
RESET SLAVE;
 
248
eval CREATE TABLE t6 (a INT PRIMARY KEY, b CHAR(5),
 
249
                      c FLOAT, d INT)ENGINE=$engine_type;
 
250
 
 
251
--echo *** Create t6 on Master ***
 
252
connection master;
 
253
eval CREATE TABLE t6 (a INT PRIMARY KEY, b VARCHAR(6),
 
254
                      c DECIMAL(8,2), d BIT 
 
255
                      ) ENGINE=$engine_type;
 
256
RESET MASTER;
 
257
 
 
258
--echo *** Start Slave ***
 
259
connection slave;
 
260
START SLAVE;
 
261
 
 
262
--echo *** Master Data Insert ***
 
263
connection master;
 
264
 
 
265
INSERT INTO t6 () VALUES(1,'Kyle',200.23,1),
 
266
                        (2,'JOE',300.01,0);
 
267
 
 
268
--echo ********************************************
 
269
--echo *** Expect slave to fail with Error 1535 ***
 
270
--echo ********************************************
 
271
connection slave;
 
272
--let $slave_sql_errno= 1535
 
273
--let $show_slave_sql_error= 1
 
274
--source include/wait_for_slave_sql_error.inc
 
275
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
 
276
#START SLAVE;
 
277
 
 
278
--echo *** Drop t6  ***
 
279
connection master;
 
280
DROP TABLE t6;
 
281
connection slave;
 
282
DROP TABLE t6;
 
283
START SLAVE;
 
284
#sync_slave_with_master;
 
285
 
 
286
 
 
287
--echo **** Diff Table Def End ****
 
288
 
 
289
#######################################
 
290
#### Extra Column on Slave Testing ####
 
291
#######################################
 
292
# Purpose: To test extra colums on the#
 
293
#          Slave                      #
 
294
#######################################
 
295
 
 
296
--echo **** Extra Colums Start ****
 
297
 
 
298
##########################################
 
299
# More columns in slave at end of table, # 
 
300
# added columns have default values      #
 
301
# Expect: it should work, default values #
 
302
#         should be used                 #
 
303
##########################################
 
304
 
 
305
--echo *** Create t7 on slave  ***
 
306
STOP SLAVE;
 
307
RESET SLAVE;
 
308
eval CREATE TABLE t7 (a INT KEY, b BLOB, c CHAR(5),
 
309
                      d TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00',
 
310
                      e CHAR(20) DEFAULT 'Extra Column Testing')
 
311
                      ENGINE=$engine_type;
 
312
 
 
313
--echo *** Create t7 on Master ***
 
314
connection master;
 
315
eval CREATE TABLE t7 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
 
316
                       ) ENGINE=$engine_type;
 
317
RESET MASTER;
 
318
 
 
319
--echo *** Start Slave ***
 
320
connection slave;
 
321
START SLAVE;
 
322
 
 
323
--echo *** Master Data Insert ***
 
324
connection master;
 
325
set @b1 = 'b1';
 
326
set @b1 = concat(@b1,@b1);
 
327
INSERT INTO t7 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
 
328
SELECT * FROM t7 ORDER BY a;
 
329
 
 
330
--echo *** Select from slave ***
 
331
sync_slave_with_master;
 
332
SELECT * FROM t7 ORDER BY a;
 
333
 
 
334
--echo *** Drop t7  ***
 
335
connection master;
 
336
DROP TABLE t7;
 
337
sync_slave_with_master;
 
338
 
 
339
###########################################
 
340
# More columns in slave at end of table,  #
 
341
# added columns do not have default values#
 
342
# Expect: Proper error message            #
 
343
###########################################
 
344
# NOTE: This should fail but currently    #
 
345
#       works. BUG#22101                  #
 
346
###########################################
 
347
--echo *** Create t8 on slave  ***
 
348
STOP SLAVE;
 
349
RESET SLAVE;
 
350
eval CREATE TABLE t8 (a INT KEY, b BLOB, c CHAR(5),
 
351
                      d TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00',
 
352
                      e INT)ENGINE=$engine_type;
 
353
 
 
354
--echo *** Create t8 on Master ***
 
355
connection master;
 
356
eval CREATE TABLE t8 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
 
357
                       ) ENGINE=$engine_type;
 
358
RESET MASTER;
 
359
 
 
360
--echo *** Start Slave ***
 
361
connection slave;
 
362
START SLAVE;
 
363
 
 
364
--echo *** Master Data Insert ***
 
365
connection master;
 
366
set @b1 = 'b1b1b1b1';
 
367
set @b1 = concat(@b1,@b1);
 
368
INSERT INTO t8 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
 
369
 
 
370
### Uncomment once bug is fixed
 
371
 
 
372
#connection slave;
 
373
#--let $slave_sql_errno= SOMETHING
 
374
#--let $slave_skip_counter= 2
 
375
#--let $show_slave_sql_error= 1
 
376
#--source include/wait_for_slave_sql_error_and_skip.inc
 
377
 
 
378
--echo *** Drop t8  ***
 
379
connection master;
 
380
DROP TABLE t8;
 
381
sync_slave_with_master;
 
382
 
 
383
###########################################
 
384
############# Continued ###################
 
385
# More columns in slave at end of table,  #
 
386
# added columns do not have default values#
 
387
# Expect: Proper error message            #
 
388
###########################################
 
389
# Bug#22234, Bug#23907 Extra Slave Col is not 
 
390
# erroring on extra col with no default values.
 
391
###############################################################
 
392
# Error reaction is up to sql_mode of the slave sql (bug#38173)
 
393
#--echo *** Create t9 on slave  ***
 
394
# Please, check BUG#47741 to see why you are not testing NDB.
 
395
if (`SELECT $engine_type != 'NDB'`)
 
396
{
 
397
  STOP SLAVE;
 
398
  RESET SLAVE;
 
399
  eval CREATE TABLE t9 (a INT KEY, b BLOB, c CHAR(5),
 
400
                        d TIMESTAMP,
 
401
                        e INT NOT NULL,
 
402
                        f text not null,
 
403
                        g text,
 
404
                        h blob not null,
 
405
                        i blob) ENGINE=$engine_type;
 
406
 
 
407
  --echo *** Create t9 on Master ***
 
408
  connection master;
 
409
  eval CREATE TABLE t9 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
 
410
                       ) ENGINE=$engine_type;
 
411
  RESET MASTER;
 
412
 
 
413
  --echo *** Start Slave ***
 
414
  connection slave;
 
415
  START SLAVE;
 
416
 
 
417
  --echo *** Master Data Insert ***
 
418
  connection master;
 
419
  set @b1 = 'b1b1b1b1';
 
420
 
 
421
  set @b1 = concat(@b1,@b1);
 
422
  INSERT INTO t9 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
 
423
 
 
424
  # the test would stop slave if @@sql_mode for the sql thread
 
425
  # was set to strict. Otherwise, as with this tests setup, 
 
426
  # the implicit defaults will be inserted into fields even though
 
427
  # they are declared without DEFAULT clause.
 
428
 
 
429
  sync_slave_with_master;
 
430
  select * from t9;
 
431
 
 
432
  # todo: fix Bug #43992 slave sql thread can't tune own sql_mode ...
 
433
  # and add/restore waiting for stop test
 
434
 
 
435
  #--let $slave_sql_errno= SOMETHING
 
436
  #--let $slave_skip_counter= 2
 
437
  #--let $show_slave_sql_error= 1
 
438
  #--source include/wait_for_slave_sql_error_and_skip.inc
 
439
}
 
440
 
 
441
#--echo *** Drop t9  ***
 
442
connection master;
 
443
DROP TABLE t9;
 
444
sync_slave_with_master;
 
445
 
 
446
############################################
 
447
# More columns in slave at middle of table #
 
448
# Expect: Proper error message             #
 
449
############################################
 
450
--echo  *** Create t10 on slave  ***
 
451
STOP SLAVE;
 
452
RESET SLAVE;
 
453
eval CREATE TABLE t10 (a INT KEY, b BLOB, f DOUBLE DEFAULT '233', 
 
454
                      c CHAR(5), e INT DEFAULT '1')ENGINE=$engine_type;
 
455
 
 
456
--echo *** Create t10 on Master ***
 
457
connection master;
 
458
eval CREATE TABLE t10 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
 
459
                       ) ENGINE=$engine_type;
 
460
RESET MASTER;
 
461
 
 
462
--echo *** Start Slave ***
 
463
connection slave;
 
464
START SLAVE;
 
465
 
 
466
--echo *** Master Data Insert ***
 
467
connection master;
 
468
set @b1 = 'b1b1b1b1';
 
469
set @b1 = concat(@b1,@b1);
 
470
INSERT INTO t10 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
 
471
 
 
472
--echo ********************************************
 
473
--echo *** Expect slave to fail with Error 1535 ***
 
474
--echo ********************************************
 
475
connection slave;
 
476
--let $slave_sql_errno= 1535
 
477
--let $slave_skip_counter= 2
 
478
--let $show_slave_sql_error= 1
 
479
--source include/wait_for_slave_sql_error_and_skip.inc
 
480
 
 
481
--echo *** Drop t10  ***
 
482
connection master;
 
483
DROP TABLE t10;
 
484
sync_slave_with_master;
 
485
 
 
486
############################################
 
487
############## Continued ###################
 
488
############################################
 
489
# More columns in slave at middle of table #
 
490
# Expect: Proper error message             #
 
491
############################################
 
492
--echo  *** Create t11 on slave  ***
 
493
STOP SLAVE;
 
494
RESET SLAVE;
 
495
eval CREATE TABLE t11 (a INT KEY, b BLOB, f TEXT,
 
496
                      c CHAR(5) DEFAULT 'test', e INT DEFAULT '1')ENGINE=$engine_type;
 
497
 
 
498
--echo *** Create t11 on Master ***
 
499
connection master;
 
500
eval CREATE TABLE t11 (a INT PRIMARY KEY, b BLOB, c VARCHAR(254)
 
501
                       ) ENGINE=$engine_type;
 
502
RESET MASTER;
 
503
 
 
504
--echo *** Start Slave ***
 
505
connection slave;
 
506
START SLAVE;
 
507
 
 
508
--echo *** Master Data Insert ***
 
509
connection master;
 
510
set @b1 = 'b1b1b1b1';
 
511
set @b1 = concat(@b1,@b1);
 
512
INSERT INTO t11 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
 
513
 
 
514
--echo ********************************************
 
515
--echo *** Expect slave to fail with Error 1535 ***
 
516
--echo ********************************************
 
517
connection slave;
 
518
--let $slave_sql_errno= 1535
 
519
--let $slave_skip_counter= 2
 
520
--let $show_slave_sql_error= 1
 
521
--source include/wait_for_slave_sql_error_and_skip.inc
 
522
 
 
523
--echo *** Drop t11  ***
 
524
connection master;
 
525
DROP TABLE t11;
 
526
sync_slave_with_master;
 
527
 
 
528
############################################
 
529
############## Continued ###################
 
530
############################################
 
531
# More columns in slave at middle of table #
 
532
# Expect: This one should pass blob-text   #
 
533
############################################
 
534
--echo  *** Create t12 on slave  ***
 
535
STOP SLAVE;
 
536
RESET SLAVE;
 
537
eval CREATE TABLE t12 (a INT KEY, b BLOB, f TEXT,
 
538
                      c CHAR(5) DEFAULT 'test', e INT DEFAULT '1')ENGINE=$engine_type;
 
539
 
 
540
--echo *** Create t12 on Master ***
 
541
connection master;
 
542
eval CREATE TABLE t12 (a INT PRIMARY KEY, b BLOB, c BLOB
 
543
                       ) ENGINE=$engine_type;
 
544
RESET MASTER;
 
545
 
 
546
--echo *** Start Slave ***
 
547
connection slave;
 
548
START SLAVE;
 
549
 
 
550
--echo *** Master Data Insert ***
 
551
connection master;
 
552
set @b1 = 'b1b1b1b1';
 
553
set @b1 = concat(@b1,@b1);
 
554
INSERT INTO t12 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
 
555
SELECT * FROM t12 ORDER BY a;
 
556
 
 
557
--echo *** Select on Slave ***
 
558
sync_slave_with_master;
 
559
SELECT * FROM t12 ORDER BY a;
 
560
 
 
561
--echo *** Drop t12  ***
 
562
connection master;
 
563
DROP TABLE t12;
 
564
sync_slave_with_master;
 
565
 
 
566
--echo **** Extra Colums End ****
 
567
 
 
568
###############################
 
569
# BUG#22177 CURRENT_TIMESTAMP #
 
570
# Sould work with ^           #
 
571
###############################
 
572
--echo *** BUG 22177 Start ***
 
573
--echo *** Create t13 on slave  ***
 
574
STOP SLAVE;
 
575
RESET SLAVE;
 
576
eval CREATE TABLE t13 (a INT KEY, b BLOB, c CHAR(5),
 
577
                      d INT DEFAULT '1',
 
578
                      e TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
 
579
                      )ENGINE=$engine_type;
 
580
 
 
581
--echo *** Create t13 on Master ***
 
582
connection master;
 
583
eval CREATE TABLE t13 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
 
584
                       ) ENGINE=$engine_type;
 
585
RESET MASTER;
 
586
 
 
587
--echo *** Start Slave ***
 
588
connection slave;
 
589
START SLAVE;
 
590
 
 
591
--echo *** Master Data Insert ***
 
592
connection master;
 
593
set @b1 = 'b1b1b1b1';
 
594
set @b1 = concat(@b1,@b1);
 
595
INSERT INTO t13 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
 
596
SELECT * FROM t13 ORDER BY a;
 
597
 
 
598
--echo *** Select on Slave ****
 
599
sync_slave_with_master;
 
600
--replace_column 5 CURRENT_TIMESTAMP 
 
601
SELECT * FROM t13 ORDER BY a;
 
602
 
 
603
--echo *** Drop t13  ***
 
604
connection master;
 
605
DROP TABLE t13;
 
606
sync_slave_with_master;
 
607
 
 
608
--echo *** 22117 END *** 
 
609
 
 
610
##############################
 
611
# ALTER MASTER TABLE TESTING #
 
612
##############################
 
613
 
 
614
--echo *** Alter Master Table Testing Start ***
 
615
 
 
616
####################################################
 
617
# - Alter Master adding columns at middle of table #
 
618
#   Expect: columns added                          #
 
619
####################################################
 
620
 
 
621
--echo *** Create t14 on slave  ***
 
622
STOP SLAVE;
 
623
RESET SLAVE;
 
624
eval CREATE TABLE t14 (c1 INT KEY, c4 BLOB, c5 CHAR(5),
 
625
                      c6 INT DEFAULT '1',
 
626
                      c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
 
627
                      )ENGINE=$engine_type;
 
628
 
 
629
--echo *** Create t14 on Master ***
 
630
connection master;
 
631
eval CREATE TABLE t14 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
 
632
                       ) ENGINE=$engine_type;
 
633
RESET MASTER;
 
634
 
 
635
--echo *** Start Slave ***
 
636
connection slave;
 
637
START SLAVE;
 
638
 
 
639
--echo *** Master Data Insert ***
 
640
connection master;
 
641
ALTER TABLE t14 ADD COLUMN c2 DECIMAL(8,2) AFTER c1;
 
642
ALTER TABLE t14 ADD COLUMN c3 TEXT AFTER c2;
 
643
set @b1 = 'b1b1b1b1';
 
644
set @b1 = concat(@b1,@b1);
 
645
INSERT INTO t14 () VALUES(1,1.00,'Replication Testing Extra Col',@b1,'Kyle'),
 
646
                        (2,2.00,'This Test Should work',@b1,'JOE'),
 
647
                        (3,3.00,'If is does not, I will open a bug',@b1,'QA');
 
648
SELECT * FROM t14 ORDER BY c1;
 
649
 
 
650
 
 
651
--echo *** Select on Slave ****
 
652
sync_slave_with_master;
 
653
--replace_column 7 CURRENT_TIMESTAMP
 
654
SELECT * FROM t14 ORDER BY c1;
 
655
 
 
656
####################################################
 
657
# - Alter Master drop column at end of table      #
 
658
#   Expect: column dropped                        #
 
659
####################################################
 
660
 
 
661
--echo *** Create t14a on slave  ***
 
662
STOP SLAVE;
 
663
RESET SLAVE;
 
664
eval CREATE TABLE t14a (c1 INT KEY, c4 BLOB, c5 CHAR(5),
 
665
                      c6 INT DEFAULT '1',
 
666
                      c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
 
667
                      )ENGINE=$engine_type;
 
668
 
 
669
--echo *** Create t14a on Master ***
 
670
connection master;
 
671
eval CREATE TABLE t14a (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
 
672
                       ) ENGINE=$engine_type;
 
673
RESET MASTER;
 
674
 
 
675
--echo *** Start Slave ***
 
676
connection slave;
 
677
START SLAVE;
 
678
 
 
679
--echo *** Master Data Insert ***
 
680
connection master;
 
681
set @b1 = 'b1b1b1b1';
 
682
set @b1 = concat(@b1,@b1);
 
683
INSERT INTO t14a () VALUES(1,@b1,'Kyle'),
 
684
                        (2,@b1,'JOE'),
 
685
                        (3,@b1,'QA');
 
686
 
 
687
SELECT * FROM t14a ORDER BY c1;
 
688
--echo *** Select on Slave ****
 
689
sync_slave_with_master;
 
690
--replace_column 5 CURRENT_TIMESTAMP
 
691
SELECT * FROM t14a ORDER BY c1;
 
692
STOP SLAVE;
 
693
RESET SLAVE;
 
694
 
 
695
--echo *** Master Drop c5 ***
 
696
connection master;
 
697
ALTER TABLE t14a DROP COLUMN c5;
 
698
RESET MASTER;
 
699
 
 
700
--echo *** Start Slave ***
 
701
connection slave;
 
702
START SLAVE;
 
703
 
 
704
--echo *** Master Data Insert ***
 
705
connection master;
 
706
set @b1 = 'b1b1b1b1';
 
707
set @b1 = concat(@b1,@b1);
 
708
 
 
709
INSERT INTO t14a () VALUES(4,@b1),
 
710
                        (5,@b1),
 
711
                        (6,@b1);
 
712
SELECT * FROM t14a ORDER BY c1;
 
713
 
 
714
--echo *** Select on Slave ****
 
715
sync_slave_with_master;
 
716
--replace_column 5 CURRENT_TIMESTAMP
 
717
SELECT * FROM t14a ORDER BY c1;
 
718
 
 
719
--connection master
 
720
DROP TABLE t14a;
 
721
--sync_slave_with_master
 
722
 
 
723
####################################################
 
724
# - Alter Master Dropping columns from the middle. #
 
725
#   Expect: columns dropped                        #
 
726
####################################################
 
727
 
 
728
--echo *** connect to master and drop columns ***
 
729
connection master;
 
730
ALTER TABLE t14 DROP COLUMN c2;
 
731
ALTER TABLE t14 DROP COLUMN c4;
 
732
--echo *** Select from Master ***
 
733
SELECT * FROM t14 ORDER BY c1;
 
734
 
 
735
--echo *** Select from Slave ***
 
736
sync_slave_with_master;
 
737
--replace_column 5 CURRENT_TIMESTAMP
 
738
SELECT * FROM t14 ORDER BY c1;
 
739
 
 
740
--echo *** Drop t14  ***
 
741
connection master;
 
742
DROP TABLE t14;
 
743
sync_slave_with_master;
 
744
 
 
745
##############################################################
 
746
# - Alter Master adding columns that already exist on slave. #
 
747
#  Expect: proper error message                              #
 
748
##############################################################
 
749
 
 
750
--echo *** Create t15 on slave  ***
 
751
STOP SLAVE;
 
752
RESET SLAVE;
 
753
eval CREATE TABLE t15 (c1 INT KEY, c2 DECIMAL(8,2), c3 TEXT,
 
754
                      c4 BLOB, c5 CHAR(5),
 
755
                      c6 INT DEFAULT '1',
 
756
                      c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
 
757
                      )ENGINE=$engine_type;
 
758
 
 
759
--echo *** Create t15 on Master ***
 
760
connection master;
 
761
eval CREATE TABLE t15 (c1 INT PRIMARY KEY, c2 DECIMAL(8,2), c3 TEXT,
 
762
                      c4 BLOB, c5 CHAR(5)) ENGINE=$engine_type;
 
763
RESET MASTER;
 
764
 
 
765
--echo *** Start Slave ***
 
766
connection slave;
 
767
START SLAVE;
 
768
 
 
769
call mtr.add_suppression("Slave SQL.*Error .Unknown table .t6.. on query.* Error_code: 1051");
 
770
call mtr.add_suppression("Slave SQL.*Error .Duplicate column name .c6.. on query.* Error_code: 1060");
 
771
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column . ...e mismatch.* Error_code: 1535");
 
772
 
 
773
--echo *** Master Data Insert ***
 
774
connection master;
 
775
set @b1 = 'b1b1b1b1';
 
776
set @b1 = concat(@b1,@b1);
 
777
INSERT INTO t15 () VALUES(1,1.00,'Replication Testing Extra Col',@b1,'Kyle'),
 
778
                        (2,2.00,'This Test Should work',@b1,'JOE'),
 
779
                        (3,3.00,'If is does not, I will open a bug',@b1,'QA');
 
780
SELECT * FROM t15 ORDER BY c1;
 
781
 
 
782
 
 
783
--echo *** Select on Slave ****
 
784
sync_slave_with_master;
 
785
--replace_column 7 CURRENT_TIMESTAMP
 
786
SELECT * FROM t15 ORDER BY c1;
 
787
 
 
788
--echo *** Add column on master that is a Extra on Slave ***
 
789
connection master;
 
790
ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5;
 
791
 
 
792
--echo ********************************************
 
793
--echo *** Expect slave to fail with Error 1060 ***
 
794
--echo ********************************************
 
795
connection slave;
 
796
--let $slave_sql_errno= 1060
 
797
--let $slave_skip_counter= 1
 
798
--let $show_slave_sql_error= 1
 
799
--source include/wait_for_slave_sql_error_and_skip.inc
 
800
 
 
801
--echo *** Try to insert in master ****
 
802
connection master;
 
803
INSERT INTO t15 () VALUES(5,2.00,'Replication Testing',@b1,'Buda',2);
 
804
SELECT * FROM t15 ORDER BY c1;
 
805
 
 
806
#SHOW BINLOG EVENTS;
 
807
 
 
808
--echo *** Try to select from slave ****
 
809
sync_slave_with_master;
 
810
--replace_column 7 CURRENT_TIMESTAMP
 
811
SELECT * FROM t15 ORDER BY c1;
 
812
 
 
813
--echo *** DROP TABLE t15 ***
 
814
connection master;
 
815
DROP TABLE t15;
 
816
sync_slave_with_master;
 
817
 
 
818
####################################
 
819
# - Alter Master and ADD PARTITION #
 
820
#   Expect:?                       #
 
821
####################################
 
822
 
 
823
--echo *** Create t16 on slave  ***
 
824
STOP SLAVE;
 
825
RESET SLAVE;
 
826
eval CREATE TABLE t16 (c1 INT KEY, c2 DECIMAL(8,2), c3 TEXT,
 
827
                      c4 BLOB, c5 CHAR(5),
 
828
                      c6 INT DEFAULT '1',
 
829
                      c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
 
830
                      )ENGINE=$engine_type;
 
831
 
 
832
--echo *** Create t16 on Master ***
 
833
connection master;
 
834
eval CREATE TABLE t16 (c1 INT PRIMARY KEY, c2 DECIMAL(8,2), c3 TEXT,
 
835
                      c4 BLOB, c5 CHAR(5))ENGINE=$engine_type;
 
836
RESET MASTER;
 
837
 
 
838
--echo *** Start Slave ***
 
839
connection slave;
 
840
START SLAVE;
 
841
 
 
842
--echo *** Master Data Insert ***
 
843
connection master;
 
844
set @b1 = 'b1b1b1b1';
 
845
set @b1 = concat(@b1,@b1);
 
846
INSERT INTO t16 () VALUES(1,1.00,'Replication Testing Extra Col',@b1,'Kyle'),
 
847
                        (2,2.00,'This Test Should work',@b1,'JOE'),
 
848
                        (3,3.00,'If is does not, I will open a bug',@b1,'QA');
 
849
SELECT * FROM t16 ORDER BY c1;
 
850
 
 
851
--echo *** Select on Slave ****
 
852
sync_slave_with_master;
 
853
--replace_column 7 CURRENT_TIMESTAMP
 
854
SELECT * FROM t16 ORDER BY c1;
 
855
 
 
856
--echo *** Add Partition on master ***
 
857
connection master;
 
858
ALTER TABLE t16 PARTITION BY KEY(c1) PARTITIONS 4;
 
859
INSERT INTO t16 () VALUES(4,1.00,'Replication Rocks',@b1,'Omer');
 
860
SHOW CREATE TABLE t16;
 
861
 
 
862
--echo *** Show table on Slave ****
 
863
sync_slave_with_master;
 
864
SHOW CREATE TABLE t16;
 
865
 
 
866
--echo *** DROP TABLE t16 ***
 
867
connection master;
 
868
DROP TABLE t16;
 
869
sync_slave_with_master;
 
870
 
 
871
--echo *** Alter Master End ***
 
872
 
 
873
############################################
 
874
### Try to replicate BIGINT to SMALLINT ###
 
875
### Should Stop Slave                   ###
 
876
############################################
 
877
 
 
878
--echo *** Create t17 on slave  ***
 
879
STOP SLAVE;
 
880
RESET SLAVE;
 
881
eval CREATE TABLE t17 (a SMALLINT, b INT PRIMARY KEY, c CHAR(5),
 
882
                      d FLOAT DEFAULT '2.00',
 
883
                      e CHAR(5) DEFAULT 'TEST2')
 
884
                      ENGINE=$engine_type;
 
885
 
 
886
--echo *** Create t17 on Master ***
 
887
connection master;
 
888
eval CREATE TABLE t17 (a BIGINT PRIMARY KEY, b INT, c CHAR(10)
 
889
                       ) ENGINE=$engine_type;
 
890
RESET MASTER;
 
891
 
 
892
--echo *** Start Slave ***
 
893
connection slave;
 
894
START SLAVE;
 
895
 
 
896
--echo *** Master Data Insert ***
 
897
connection master;
 
898
 
 
899
INSERT INTO t17 () VALUES(9223372036854775807,2,'Kyle, TEX');
 
900
 
 
901
--echo ********************************************
 
902
--echo *** Expect slave to fail with Error 1535 ***
 
903
--echo ********************************************
 
904
connection slave;
 
905
--let $slave_sql_errno= 1535
 
906
--let $slave_skip_counter= 2
 
907
--let $show_slave_sql_error= 1
 
908
--source include/wait_for_slave_sql_error_and_skip.inc
 
909
 
 
910
--echo ** DROP table t17 ***
 
911
connection master;
 
912
DROP TABLE t17;
 
913
sync_slave_with_master;