3
# In general, queries referencing @@system_variables are not
4
# considered safe to write to the binlog in statement-based logging
5
# mode. However, a few special cases are supported.
7
# This test verifies that queries referencing these specially
8
# supported variables are replicated correctly in statement mode.
13
# The test simply does a lot of "INSERT INTO t1 VALUES (@@variable)"
14
# and checks the result on the slave.
16
# Statements referencing a variable only replicate correctly in mixed
17
# and row mode: in row mode, the values inserted are replicated. In
18
# mixed mode, statements referencing a variable are marked as unsafe,
19
# meaning they will be replicated by row. In statement mode, the
20
# slave's value will be used and replication will break. (Except in a
21
# small number of special cases: random seeds, insert_id, and
22
# auto_increment are replicated).
24
# We test all replicated variables, from each of the following
27
# - from a stored procedure
28
# - from a stored function
30
# - from a prepared statement
32
# For all variables where it is possible, we set the variable to one
33
# value on slave, and insert it on the master with two distinct
36
# The same insertions are made in four different tables using direct
37
# insert, stored procedure, stored function, or trigger. Then all
38
# eight resulting tables on master and slave are compared.
41
# ==== Related bugs ====
43
# BUG#31168: @@hostname does not replicate
46
# ==== Related test cases ====
48
# binlog.binlog_unsafe tests that a warning is issued if system
49
# variables are replicated in statement mode.
51
# rpl.rpl_variables verifies that variables which cannot be replicated
52
# safely in statement mode are replicated correctly in mixed or row
55
source include/master-slave.inc;
56
source include/have_binlog_format_mixed_or_statement.inc;
59
--echo ==== Initialization ====
61
# Backup the values of global variables so that they can be restored
66
SET @m_pseudo_thread_id= @@global.pseudo_thread_id;
67
SET @m_auto_increment_increment= @@global.auto_increment_increment;
68
SET @m_auto_increment_offset= @@global.auto_increment_offset;
69
SET @m_character_set_client= @@global.character_set_client;
70
SET @m_collation_connection= @@global.collation_connection;
71
SET @m_collation_server= @@global.collation_server;
72
SET @m_time_zone= @@global.time_zone;
73
SET @m_lc_time_names= @@global.lc_time_names;
74
SET @m_collation_database= @@global.collation_database;
78
SET @s_pseudo_thread_id= @@global.pseudo_thread_id;
79
SET @s_auto_increment_increment= @@global.auto_increment_increment;
80
SET @s_auto_increment_offset= @@global.auto_increment_offset;
81
SET @s_character_set_client= @@global.character_set_client;
82
SET @s_collation_connection= @@global.collation_connection;
83
SET @s_collation_server= @@global.collation_server;
84
SET @s_time_zone= @@global.time_zone;
85
SET @s_lc_time_names= @@global.lc_time_names;
86
SET @s_collation_database= @@global.collation_database;
88
SET @@global.pseudo_thread_id= 4711;
89
SET @@global.auto_increment_increment=19;
90
SET @@global.auto_increment_offset=4;
91
SET @@global.character_set_client='latin2';
92
SET @@global.collation_connection='latin2_bin';
93
SET @@global.collation_server='geostd8_general_ci';
94
SET @@global.time_zone='Japan';
95
SET @@global.lc_time_names='sv_SE';
96
SET @@global.collation_database='geostd8_bin';
101
# Tables where everything happens.
102
CREATE TABLE tstmt (id INT AUTO_INCREMENT PRIMARY KEY,
105
CREATE TABLE tproc LIKE tstmt;
106
CREATE TABLE tfunc LIKE tstmt;
107
CREATE TABLE ttrig LIKE tstmt;
108
CREATE TABLE tprep LIKE tstmt;
110
# Table on which we put a trigger.
111
CREATE TABLE trigger_table (text CHAR(4));
114
--echo ==== Insert variables directly ====
116
SET @@pseudo_thread_id= 4712;
117
INSERT INTO tstmt(num) VALUES (@@session.pseudo_thread_id);
118
SET @@pseudo_thread_id= 4713;
119
INSERT INTO tstmt(num) VALUES (@@session.pseudo_thread_id);
121
SET @@foreign_key_checks= 0;
122
INSERT INTO tstmt(num) VALUES (@@session.foreign_key_checks);
123
SET @@foreign_key_checks= 1;
124
INSERT INTO tstmt(num) VALUES (@@session.foreign_key_checks);
126
SET @@sql_auto_is_null= 0;
127
INSERT INTO tstmt(num) VALUES (@@session.sql_auto_is_null);
128
SET @@sql_auto_is_null= 1;
129
INSERT INTO tstmt(num) VALUES (@@session.sql_auto_is_null);
131
SET @@unique_checks= 0;
132
INSERT INTO tstmt(num) VALUES (@@session.unique_checks);
133
SET @@unique_checks= 1;
134
INSERT INTO tstmt(num) VALUES (@@session.unique_checks);
136
SET @@auto_increment_increment= 11;
137
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_increment);
138
SET @@auto_increment_increment= 19;
139
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_increment);
141
SET @@auto_increment_offset= 13;
142
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_offset);
143
SET @@auto_increment_offset= 17;
144
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_offset);
146
# reset these as they affect the index column
147
SET @@auto_increment_increment= 1;
148
SET @@auto_increment_offset= 1;
150
SET @@character_set_client= 'cp1257';
151
INSERT INTO tstmt(text) VALUES (@@session.character_set_client);
152
SET @@character_set_client= 'cp1256';
153
INSERT INTO tstmt(text) VALUES (@@session.character_set_client);
155
SET @@collation_connection= 'cp1251_ukrainian_ci';
156
INSERT INTO tstmt(text) VALUES (@@session.collation_connection);
157
INSERT INTO tstmt(text) VALUES (@@session.character_set_connection);
158
SET @@collation_connection= 'cp1251_bulgarian_ci';
159
INSERT INTO tstmt(text) VALUES (@@session.collation_connection);
160
INSERT INTO tstmt(text) VALUES (@@session.character_set_connection);
162
SET @@collation_server= 'latin7_bin';
163
INSERT INTO tstmt(text) VALUES (@@session.collation_server);
164
INSERT INTO tstmt(text) VALUES (@@session.character_set_server);
165
SET @@collation_server= 'latin7_general_cs';
166
INSERT INTO tstmt(text) VALUES (@@session.collation_server);
167
INSERT INTO tstmt(text) VALUES (@@session.character_set_server);
169
SET @@time_zone= 'Europe/Moscow';
170
INSERT INTO tstmt(text) VALUES (@@session.time_zone);
171
SET @@time_zone= 'Universal';
172
INSERT INTO tstmt(text) VALUES (@@session.time_zone);
174
SET @@lc_time_names= 'sv_FI';
175
INSERT INTO tstmt(text) VALUES (@@session.lc_time_names);
176
SET @@lc_time_names= 'no_NO';
177
INSERT INTO tstmt(text) VALUES (@@session.lc_time_names);
179
SET @@collation_database= 'latin7_general_ci';
180
INSERT INTO tstmt(text) VALUES (@@session.collation_database);
181
INSERT INTO tstmt(text) VALUES (@@session.character_set_database);
182
SET @@collation_database= 'latin7_estonian_cs';
183
INSERT INTO tstmt(text) VALUES (@@session.collation_database);
184
INSERT INTO tstmt(text) VALUES (@@session.character_set_database);
186
SET @@timestamp= 47114711;
187
INSERT INTO tstmt(text) VALUES (@@session.timestamp);
188
SET @@timestamp= 47124712;
189
INSERT INTO tstmt(text) VALUES (@@session.timestamp);
191
SET @@last_insert_id= 1616;
192
INSERT INTO tstmt(text) VALUES (@@session.last_insert_id);
193
SET @@last_insert_id= 1717;
194
INSERT INTO tstmt(text) VALUES (@@session.last_insert_id);
197
--echo ==== Insert variables from a stored procedure ====
200
CREATE PROCEDURE proc()
203
SET @@pseudo_thread_id= 4712;
204
INSERT INTO tproc(num) VALUES (@@session.pseudo_thread_id);
205
SET @@pseudo_thread_id= 4713;
206
INSERT INTO tproc(num) VALUES (@@session.pseudo_thread_id);
208
SET @@foreign_key_checks= 0;
209
INSERT INTO tproc(num) VALUES (@@session.foreign_key_checks);
210
SET @@foreign_key_checks= 1;
211
INSERT INTO tproc(num) VALUES (@@session.foreign_key_checks);
213
SET @@sql_auto_is_null= 0;
214
INSERT INTO tproc(num) VALUES (@@session.sql_auto_is_null);
215
SET @@sql_auto_is_null= 1;
216
INSERT INTO tproc(num) VALUES (@@session.sql_auto_is_null);
218
SET @@unique_checks= 0;
219
INSERT INTO tproc(num) VALUES (@@session.unique_checks);
220
SET @@unique_checks= 1;
221
INSERT INTO tproc(num) VALUES (@@session.unique_checks);
223
SET @@auto_increment_increment= 11;
224
INSERT INTO tproc(num) VALUES (@@session.auto_increment_increment);
225
SET @@auto_increment_increment= 19;
226
INSERT INTO tproc(num) VALUES (@@session.auto_increment_increment);
228
SET @@auto_increment_offset= 13;
229
INSERT INTO tproc(num) VALUES (@@session.auto_increment_offset);
230
SET @@auto_increment_offset= 17;
231
INSERT INTO tproc(num) VALUES (@@session.auto_increment_offset);
233
# reset these as they affect the index column
234
SET @@auto_increment_increment= 1;
235
SET @@auto_increment_offset= 1;
237
SET @@character_set_client= 'cp1257';
238
INSERT INTO tproc(text) VALUES (@@session.character_set_client);
239
SET @@character_set_client= 'cp1256';
240
INSERT INTO tproc(text) VALUES (@@session.character_set_client);
242
SET @@collation_connection= 'cp1251_ukrainian_ci';
243
INSERT INTO tproc(text) VALUES (@@session.collation_connection);
244
INSERT INTO tproc(text) VALUES (@@session.character_set_connection);
245
SET @@collation_connection= 'cp1251_bulgarian_ci';
246
INSERT INTO tproc(text) VALUES (@@session.collation_connection);
247
INSERT INTO tproc(text) VALUES (@@session.character_set_connection);
249
SET @@collation_server= 'latin7_bin';
250
INSERT INTO tproc(text) VALUES (@@session.collation_server);
251
INSERT INTO tproc(text) VALUES (@@session.character_set_server);
252
SET @@collation_server= 'latin7_general_cs';
253
INSERT INTO tproc(text) VALUES (@@session.collation_server);
254
INSERT INTO tproc(text) VALUES (@@session.character_set_server);
256
SET @@time_zone= 'Europe/Moscow';
257
INSERT INTO tproc(text) VALUES (@@session.time_zone);
258
SET @@time_zone= 'Universal';
259
INSERT INTO tproc(text) VALUES (@@session.time_zone);
261
SET @@lc_time_names= 'sv_FI';
262
INSERT INTO tproc(text) VALUES (@@session.lc_time_names);
263
SET @@lc_time_names= 'no_NO';
264
INSERT INTO tproc(text) VALUES (@@session.lc_time_names);
266
SET @@collation_database= 'latin7_general_ci';
267
INSERT INTO tproc(text) VALUES (@@session.collation_database);
268
INSERT INTO tproc(text) VALUES (@@session.character_set_database);
269
SET @@collation_database= 'latin7_estonian_cs';
270
INSERT INTO tproc(text) VALUES (@@session.collation_database);
271
INSERT INTO tproc(text) VALUES (@@session.character_set_database);
273
SET @@timestamp= 47114711;
274
INSERT INTO tproc(text) VALUES (@@session.timestamp);
275
SET @@timestamp= 47124712;
276
INSERT INTO tproc(text) VALUES (@@session.timestamp);
278
SET @@last_insert_id= 1616;
279
INSERT INTO tproc(text) VALUES (@@session.last_insert_id);
280
SET @@last_insert_id= 1717;
281
INSERT INTO tproc(text) VALUES (@@session.last_insert_id);
289
--echo ==== Insert variables from a stored function ====
292
CREATE FUNCTION func()
296
SET @@pseudo_thread_id= 4712;
297
INSERT INTO tfunc(num) VALUES (@@session.pseudo_thread_id);
298
SET @@pseudo_thread_id= 4713;
299
INSERT INTO tfunc(num) VALUES (@@session.pseudo_thread_id);
301
SET @@foreign_key_checks= 0;
302
INSERT INTO tfunc(num) VALUES (@@session.foreign_key_checks);
303
SET @@foreign_key_checks= 1;
304
INSERT INTO tfunc(num) VALUES (@@session.foreign_key_checks);
306
SET @@sql_auto_is_null= 0;
307
INSERT INTO tfunc(num) VALUES (@@session.sql_auto_is_null);
308
SET @@sql_auto_is_null= 1;
309
INSERT INTO tfunc(num) VALUES (@@session.sql_auto_is_null);
311
SET @@unique_checks= 0;
312
INSERT INTO tfunc(num) VALUES (@@session.unique_checks);
313
SET @@unique_checks= 1;
314
INSERT INTO tfunc(num) VALUES (@@session.unique_checks);
316
SET @@auto_increment_increment= 11;
317
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_increment);
318
SET @@auto_increment_increment= 19;
319
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_increment);
321
SET @@auto_increment_offset= 13;
322
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_offset);
323
SET @@auto_increment_offset= 17;
324
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_offset);
326
# reset these as they affect the index column
327
SET @@auto_increment_increment= 1;
328
SET @@auto_increment_offset= 1;
330
SET @@character_set_client= 'cp1257';
331
INSERT INTO tfunc(text) VALUES (@@session.character_set_client);
332
SET @@character_set_client= 'cp1256';
333
INSERT INTO tfunc(text) VALUES (@@session.character_set_client);
335
SET @@collation_connection= 'cp1251_ukrainian_ci';
336
INSERT INTO tfunc(text) VALUES (@@session.collation_connection);
337
INSERT INTO tfunc(text) VALUES (@@session.character_set_connection);
338
SET @@collation_connection= 'cp1251_bulgarian_ci';
339
INSERT INTO tfunc(text) VALUES (@@session.collation_connection);
340
INSERT INTO tfunc(text) VALUES (@@session.character_set_connection);
342
SET @@collation_server= 'latin7_bin';
343
INSERT INTO tfunc(text) VALUES (@@session.collation_server);
344
INSERT INTO tfunc(text) VALUES (@@session.character_set_server);
345
SET @@collation_server= 'latin7_general_cs';
346
INSERT INTO tfunc(text) VALUES (@@session.collation_server);
347
INSERT INTO tfunc(text) VALUES (@@session.character_set_server);
349
SET @@time_zone= 'Europe/Moscow';
350
INSERT INTO tfunc(text) VALUES (@@session.time_zone);
351
SET @@time_zone= 'Universal';
352
INSERT INTO tfunc(text) VALUES (@@session.time_zone);
354
SET @@lc_time_names= 'sv_FI';
355
INSERT INTO tfunc(text) VALUES (@@session.lc_time_names);
356
SET @@lc_time_names= 'no_NO';
357
INSERT INTO tfunc(text) VALUES (@@session.lc_time_names);
359
SET @@collation_database= 'latin7_general_ci';
360
INSERT INTO tfunc(text) VALUES (@@session.collation_database);
361
INSERT INTO tfunc(text) VALUES (@@session.character_set_database);
362
SET @@collation_database= 'latin7_estonian_cs';
363
INSERT INTO tfunc(text) VALUES (@@session.collation_database);
364
INSERT INTO tfunc(text) VALUES (@@session.character_set_database);
366
SET @@timestamp= 47114711;
367
INSERT INTO tfunc(text) VALUES (@@session.timestamp);
368
SET @@timestamp= 47124712;
369
INSERT INTO tfunc(text) VALUES (@@session.timestamp);
371
SET @@last_insert_id= 1616;
372
INSERT INTO tfunc(text) VALUES (@@session.last_insert_id);
373
SET @@last_insert_id= 1717;
374
INSERT INTO tfunc(text) VALUES (@@session.last_insert_id);
383
--echo ==== Insert variables from a trigger ====
387
BEFORE INSERT ON trigger_table
391
SET @@pseudo_thread_id= 4712;
392
INSERT INTO ttrig(num) VALUES (@@session.pseudo_thread_id);
393
SET @@pseudo_thread_id= 4713;
394
INSERT INTO ttrig(num) VALUES (@@session.pseudo_thread_id);
396
SET @@foreign_key_checks= 0;
397
INSERT INTO ttrig(num) VALUES (@@session.foreign_key_checks);
398
SET @@foreign_key_checks= 1;
399
INSERT INTO ttrig(num) VALUES (@@session.foreign_key_checks);
401
SET @@sql_auto_is_null= 0;
402
INSERT INTO ttrig(num) VALUES (@@session.sql_auto_is_null);
403
SET @@sql_auto_is_null= 1;
404
INSERT INTO ttrig(num) VALUES (@@session.sql_auto_is_null);
406
SET @@unique_checks= 0;
407
INSERT INTO ttrig(num) VALUES (@@session.unique_checks);
408
SET @@unique_checks= 1;
409
INSERT INTO ttrig(num) VALUES (@@session.unique_checks);
411
SET @@auto_increment_increment= 11;
412
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_increment);
413
SET @@auto_increment_increment= 19;
414
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_increment);
416
SET @@auto_increment_offset= 13;
417
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_offset);
418
SET @@auto_increment_offset= 17;
419
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_offset);
421
# reset these as they affect the index column
422
SET @@auto_increment_increment= 1;
423
SET @@auto_increment_offset= 1;
425
SET @@character_set_client= 'cp1257';
426
INSERT INTO ttrig(text) VALUES (@@session.character_set_client);
427
SET @@character_set_client= 'cp1256';
428
INSERT INTO ttrig(text) VALUES (@@session.character_set_client);
430
SET @@collation_connection= 'cp1251_ukrainian_ci';
431
INSERT INTO ttrig(text) VALUES (@@session.collation_connection);
432
INSERT INTO ttrig(text) VALUES (@@session.character_set_connection);
433
SET @@collation_connection= 'cp1251_bulgarian_ci';
434
INSERT INTO ttrig(text) VALUES (@@session.collation_connection);
435
INSERT INTO ttrig(text) VALUES (@@session.character_set_connection);
437
SET @@collation_server= 'latin7_bin';
438
INSERT INTO ttrig(text) VALUES (@@session.collation_server);
439
INSERT INTO ttrig(text) VALUES (@@session.character_set_server);
440
SET @@collation_server= 'latin7_general_cs';
441
INSERT INTO ttrig(text) VALUES (@@session.collation_server);
442
INSERT INTO ttrig(text) VALUES (@@session.character_set_server);
444
SET @@time_zone= 'Europe/Moscow';
445
INSERT INTO ttrig(text) VALUES (@@session.time_zone);
446
SET @@time_zone= 'Universal';
447
INSERT INTO ttrig(text) VALUES (@@session.time_zone);
449
SET @@lc_time_names= 'sv_FI';
450
INSERT INTO ttrig(text) VALUES (@@session.lc_time_names);
451
SET @@lc_time_names= 'no_NO';
452
INSERT INTO ttrig(text) VALUES (@@session.lc_time_names);
454
SET @@collation_database= 'latin7_general_ci';
455
INSERT INTO ttrig(text) VALUES (@@session.collation_database);
456
INSERT INTO ttrig(text) VALUES (@@session.character_set_database);
457
SET @@collation_database= 'latin7_estonian_cs';
458
INSERT INTO ttrig(text) VALUES (@@session.collation_database);
459
INSERT INTO ttrig(text) VALUES (@@session.character_set_database);
461
SET @@timestamp= 47114711;
462
INSERT INTO ttrig(text) VALUES (@@session.timestamp);
463
SET @@timestamp= 47124712;
464
INSERT INTO ttrig(text) VALUES (@@session.timestamp);
466
SET @@last_insert_id= 1616;
467
INSERT INTO ttrig(text) VALUES (@@session.last_insert_id);
468
SET @@last_insert_id= 1717;
469
INSERT INTO ttrig(text) VALUES (@@session.last_insert_id);
474
INSERT INTO trigger_table VALUES ('bye.');
477
--echo ==== Insert variables from a prepared statement ====
481
PREPARE p1 FROM 'SET @@pseudo_thread_id= 4712';
482
PREPARE p2 FROM 'INSERT INTO tprep(num) VALUES (@@session.pseudo_thread_id)';
483
PREPARE p3 FROM 'SET @@pseudo_thread_id= 4713';
484
PREPARE p4 FROM 'INSERT INTO tprep(num) VALUES (@@session.pseudo_thread_id)';
486
PREPARE p5 FROM 'SET @@foreign_key_checks= 0';
487
PREPARE p6 FROM 'INSERT INTO tprep(num) VALUES (@@session.foreign_key_checks)';
488
PREPARE p7 FROM 'SET @@foreign_key_checks= 1';
489
PREPARE p8 FROM 'INSERT INTO tprep(num) VALUES (@@session.foreign_key_checks)';
491
PREPARE p9 FROM 'SET @@sql_auto_is_null= 0';
492
PREPARE p10 FROM 'INSERT INTO tprep(num) VALUES (@@session.sql_auto_is_null)';
493
PREPARE p11 FROM 'SET @@sql_auto_is_null= 1';
494
PREPARE p12 FROM 'INSERT INTO tprep(num) VALUES (@@session.sql_auto_is_null)';
496
PREPARE p13 FROM 'SET @@unique_checks= 0';
497
PREPARE p14 FROM 'INSERT INTO tprep(num) VALUES (@@session.unique_checks)';
498
PREPARE p15 FROM 'SET @@unique_checks= 1';
499
PREPARE p16 FROM 'INSERT INTO tprep(num) VALUES (@@session.unique_checks)';
501
PREPARE p17 FROM 'SET @@auto_increment_increment= 11';
502
PREPARE p18 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_increment)';
503
PREPARE p19 FROM 'SET @@auto_increment_increment= 19';
504
PREPARE p20 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_increment)';
506
PREPARE p21 FROM 'SET @@auto_increment_offset= 13';
507
PREPARE p22 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_offset)';
508
PREPARE p23 FROM 'SET @@auto_increment_offset= 17';
509
PREPARE p24 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_offset)';
511
# reset these as they affect the index column
512
PREPARE p25 FROM 'SET @@auto_increment_increment= 1';
513
PREPARE p26 FROM 'SET @@auto_increment_offset= 1';
515
PREPARE p27 FROM 'SET @@character_set_client= \'cp1257\'';
516
PREPARE p28 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_client)';
517
PREPARE p29 FROM 'SET @@character_set_client= \'cp1256\'';
518
PREPARE p30 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_client)';
520
PREPARE p31 FROM 'SET @@collation_connection= \'cp1251_ukrainian_ci\'';
521
PREPARE p32 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_connection)';
522
PREPARE p33 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_connection)';
523
PREPARE p34 FROM 'SET @@collation_connection= \'cp1251_bulgarian_ci\'';
524
PREPARE p35 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_connection)';
525
PREPARE p36 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_connection)';
527
PREPARE p37 FROM 'SET @@collation_server= \'latin7_bin\'';
528
PREPARE p38 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_server)';
529
PREPARE p39 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_server)';
530
PREPARE p40 FROM 'SET @@collation_server= \'latin7_general_cs\'';
531
PREPARE p41 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_server)';
532
PREPARE p42 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_server)';
534
PREPARE p43 FROM 'SET @@time_zone= \'Europe/Moscow\'';
535
PREPARE p44 FROM 'INSERT INTO tprep(text) VALUES (@@session.time_zone)';
536
PREPARE p45 FROM 'SET @@time_zone= \'Universal\'';
537
PREPARE p46 FROM 'INSERT INTO tprep(text) VALUES (@@session.time_zone)';
539
PREPARE p47 FROM 'SET @@lc_time_names= \'sv_FI\'';
540
PREPARE p48 FROM 'INSERT INTO tprep(text) VALUES (@@session.lc_time_names)';
541
PREPARE p49 FROM 'SET @@lc_time_names= \'no_NO\'';
542
PREPARE p50 FROM 'INSERT INTO tprep(text) VALUES (@@session.lc_time_names)';
544
PREPARE p51 FROM 'SET @@collation_database= \'latin7_general_ci\'';
545
PREPARE p52 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_database)';
546
PREPARE p53 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_database)';
547
PREPARE p54 FROM 'SET @@collation_database= \'latin7_estonian_cs\'';
548
PREPARE p55 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_database)';
549
PREPARE p56 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_database)';
551
PREPARE p57 FROM 'SET @@timestamp= 47114711';
552
PREPARE p58 FROM 'INSERT INTO tprep(text) VALUES (@@session.timestamp)';
553
PREPARE p59 FROM 'SET @@timestamp= 47124712';
554
PREPARE p60 FROM 'INSERT INTO tprep(text) VALUES (@@session.timestamp)';
556
PREPARE p61 FROM 'SET @@last_insert_id= 1616';
557
PREPARE p62 FROM 'INSERT INTO tprep(text) VALUES (@@session.last_insert_id)';
558
PREPARE p63 FROM 'SET @@last_insert_id= 1717';
559
PREPARE p64 FROM 'INSERT INTO tprep(text) VALUES (@@session.last_insert_id)';
561
EXECUTE p1; EXECUTE p2; EXECUTE p3; EXECUTE p4; EXECUTE p5; EXECUTE p6;
562
EXECUTE p7; EXECUTE p8; EXECUTE p9; EXECUTE p10; EXECUTE p11; EXECUTE p12;
563
EXECUTE p13; EXECUTE p14; EXECUTE p15; EXECUTE p16; EXECUTE p17; EXECUTE p18;
564
EXECUTE p19; EXECUTE p20; EXECUTE p21; EXECUTE p22; EXECUTE p23; EXECUTE p24;
565
EXECUTE p25; EXECUTE p26; EXECUTE p27; EXECUTE p28; EXECUTE p29; EXECUTE p30;
566
EXECUTE p31; EXECUTE p32; EXECUTE p33; EXECUTE p34; EXECUTE p35; EXECUTE p36;
567
EXECUTE p37; EXECUTE p38; EXECUTE p39; EXECUTE p40; EXECUTE p41; EXECUTE p42;
568
EXECUTE p43; EXECUTE p44; EXECUTE p45; EXECUTE p46; EXECUTE p47; EXECUTE p48;
569
EXECUTE p49; EXECUTE p50; EXECUTE p51; EXECUTE p52; EXECUTE p53; EXECUTE p54;
570
EXECUTE p55; EXECUTE p56; EXECUTE p57; EXECUTE p58; EXECUTE p59; EXECUTE p60;
571
EXECUTE p61; EXECUTE p62; EXECUTE p63; EXECUTE p64;
574
--echo ==== Results ====
576
# Show the result in table test.tstmt on master...
577
SELECT * FROM tstmt ORDER BY id;
578
let $diff_table_1=master:test.tstmt;
580
# ... then compare test.tstmt on master to the other tables on master...
581
let $diff_table_2=master:test.tproc;
582
source include/diff_tables.inc;
583
let $diff_table_2=master:test.tfunc;
584
source include/diff_tables.inc;
585
let $diff_table_2=master:test.ttrig;
586
source include/diff_tables.inc;
587
let $diff_table_2=master:test.tprep;
588
source include/diff_tables.inc;
590
# ... and to all tables on slave.
591
sync_slave_with_master;
592
let $diff_table_2=slave:test.tstmt;
593
source include/diff_tables.inc;
594
let $diff_table_2=slave:test.tproc;
595
source include/diff_tables.inc;
596
let $diff_table_2=slave:test.tfunc;
597
source include/diff_tables.inc;
598
let $diff_table_2=slave:test.ttrig;
599
source include/diff_tables.inc;
600
let $diff_table_2=slave:test.tprep;
601
source include/diff_tables.inc;
604
--echo ==== Clean up ====
611
DROP TABLE tstmt, tproc, tfunc, ttrig, tprep, trigger_table;
613
SET @@global.pseudo_thread_id= @m_pseudo_thread_id;
614
SET @@global.auto_increment_increment= @m_auto_increment_increment;
615
SET @@global.auto_increment_offset= @m_auto_increment_offset;
616
SET @@global.character_set_client= @m_character_set_client;
617
SET @@global.collation_connection= @m_collation_connection;
618
SET @@global.collation_server= @m_collation_server;
619
SET @@global.time_zone= @m_time_zone;
620
SET @@global.lc_time_names= @m_lc_time_names;
621
SET @@global.collation_database= @m_collation_database;
625
SET @@global.pseudo_thread_id= @s_pseudo_thread_id;
626
SET @@global.auto_increment_increment= @s_auto_increment_increment;
627
SET @@global.auto_increment_offset= @s_auto_increment_offset;
628
SET @@global.character_set_client= @s_character_set_client;
629
SET @@global.collation_connection= @s_collation_connection;
630
SET @@global.collation_server= @s_collation_server;
631
SET @@global.time_zone= @s_time_zone;
632
SET @@global.lc_time_names= @s_lc_time_names;
633
SET @@global.collation_database= @s_collation_database;
636
sync_slave_with_master;