You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

183 lines
5.7 KiB

  1. #################################################
  2. # Author: JBM
  3. # Date: 2006-01-06
  4. # Purpose: Test test that BLOBs are replicated
  5. # correctly.
  6. ################################################
  7. # Pre test clean up section
  8. connection master;
  9. --disable_warnings
  10. DROP TABLE IF EXISTS test.t1;
  11. DROP TABLE IF EXISTS test.t2;
  12. --enable_warnings
  13. # Start test section
  14. --echo ***** Table Create Section ****
  15. --echo
  16. --disable_warnings
  17. --replace_result $engine_type #
  18. eval CREATE TABLE test.t1 (c1 int not null auto_increment,
  19. data LONGBLOB, PRIMARY KEY(c1))ENGINE=$engine_type;
  20. --enable_warnings
  21. --echo
  22. --echo **** Data Insert Section test.t1 *****
  23. --echo
  24. INSERT INTO test.t1 VALUES (NULL, NULL);
  25. INSERT INTO test.t1 VALUES (NULL, repeat('a',1*1024));
  26. INSERT INTO test.t1 VALUES (NULL, repeat('b',16*1024));
  27. --echo
  28. --echo **** Data Insert Validation Master Section test.t1 ****
  29. --echo
  30. SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
  31. SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
  32. SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3;
  33. save_master_pos;
  34. connection slave;
  35. sync_with_master;
  36. --source include/wait_for_ndb_to_binlog.inc
  37. --echo
  38. --echo **** Data Insert Validation Slave Section test.t1 ****
  39. --echo
  40. SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
  41. SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
  42. SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3;
  43. connection master;
  44. --echo
  45. --echo **** Data Update Section test.t1 ****
  46. --echo
  47. UPDATE test.t1 set data=repeat('a',18*1024) where c1 = 1;
  48. UPDATE t1 set data=repeat('c',17*1024) where c1 = 2;
  49. --echo
  50. --echo **** Data Update Validation Master Section test.t1 ****
  51. --echo
  52. SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
  53. SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
  54. save_master_pos;
  55. connection slave;
  56. sync_with_master;
  57. --source include/wait_for_ndb_to_binlog.inc
  58. --echo
  59. --echo **** Data Update Validation Slave Section test.t1 ****
  60. --echo
  61. SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
  62. SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
  63. connection master;
  64. --echo
  65. --echo **** End Test Section test.t1 ****
  66. --echo
  67. --echo **** Create Table test.t2 ****
  68. --echo
  69. --disable_warnings
  70. --replace_result $engine_type #
  71. eval CREATE TABLE test.t2 (
  72. c1 INT NOT NULL PRIMARY KEY,
  73. c2 TEXT,
  74. c3 INT,
  75. c4 LONGBLOB,
  76. KEY(c3))ENGINE=$engine_type;
  77. --enable_warnings
  78. --echo
  79. --echo *** Setup Values For test.t2 ***
  80. # x0 size 256 (current inline size)
  81. set @x0 = '01234567012345670123456701234567';
  82. set @x0 = concat(@x0,@x0,@x0,@x0,@x0,@x0,@x0,@x0);
  83. # b1 length 2000+256 (blob part aligned)
  84. set @b1 = 'b1';
  85. set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
  86. set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
  87. set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
  88. set @b1 = concat(@b1,@x0);
  89. # d1 length 3000
  90. set @d1 = 'dd1';
  91. set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
  92. set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
  93. set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
  94. # b2 length 20000
  95. set @b2 = 'b2';
  96. set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
  97. set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
  98. set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
  99. set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
  100. # d2 length 30000
  101. set @d2 = 'dd2';
  102. set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
  103. set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
  104. set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
  105. set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
  106. --echo
  107. --echo **** Data Insert Section test.t2 *****
  108. --echo
  109. INSERT INTO test.t2 VALUES(1,@b1,111,@d1);
  110. INSERT INTO test.t2 VALUES(2,@b2,222,@d2);
  111. --echo
  112. --echo **** Data Insert Validation Master Section test.t2 ****
  113. --echo
  114. SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
  115. FROM test.t2 WHERE c1=1;
  116. SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
  117. FROM test.t2 WHERE c1=2;
  118. save_master_pos;
  119. connection slave;
  120. sync_with_master;
  121. --source include/wait_for_ndb_to_binlog.inc
  122. --echo
  123. --echo **** Data Insert Validation Slave Section test.t2 ****
  124. --echo
  125. SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
  126. FROM test.t2 WHERE c1=1;
  127. SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
  128. FROM test.t2 WHERE c1=2;
  129. connection master;
  130. --echo
  131. --echo **** Data Update Section test.t2 ****
  132. --echo
  133. UPDATE test.t2 SET c2=@b2, c4=@d2 WHERE c1=1;
  134. UPDATE test.t2 SET c2=@b1, c4=@d1 WHERE c1=2;
  135. --echo
  136. --echo **** Data Update Validation Master Section test.t2 ****
  137. --echo
  138. SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
  139. FROM test.t2 WHERE c1=1;
  140. SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
  141. FROM test.t2 WHERE c1=2;
  142. save_master_pos;
  143. connection slave;
  144. sync_with_master;
  145. --source include/wait_for_ndb_to_binlog.inc
  146. --echo
  147. --echo **** Data Update Validation Slave Section test.t2 ****
  148. --echo
  149. SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
  150. FROM test.t2 WHERE c1=1;
  151. SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
  152. FROM test.t2 WHERE c1=2;
  153. connection master;
  154. --echo
  155. # Post test clean up section
  156. --exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/rpl_row_blob_master.sql
  157. --exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/rpl_row_blob_slave.sql
  158. diff_files $MYSQLTEST_VARDIR/tmp/rpl_row_blob_master.sql $MYSQLTEST_VARDIR/tmp/rpl_row_blob_slave.sql;
  159. DROP TABLE IF EXISTS test.t1;
  160. DROP TABLE IF EXISTS test.t2;
  161. # ensure cleanup on slave as well:
  162. # ndb blob tables consist of several tables
  163. # if cluster is shutdown while not all tables are
  164. # properly dropped, the table becomes inconsistent
  165. # and wrecks later test cases
  166. --sync_slave_with_master