Below is the list of changes that have just been committed into a local
5.1 repository of elkin. When elkin does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2006-09-15 17:25:13+03:00, aelkin@stripped +8
-0
Bug#22067 rpl_rbr_to_sbr and some other fail if NDB is default storage
A query SET @@GLOBAL.binlog_format = ... returns an error when NDB is the
default storage. This fails some tests invoking the set binlog_format explicitly.
because the var turns to be read-only.
In the following are files and method to fix if needed.
t/
ndb_binlog_basic2.test # here the failure is benign
rpl_rbr_to_sbr.test # does not check any ndb features =>
. # => not_ndb_default is enough
rpl_row_basic_8partition.test # set binlog_format can be replaced
rpl_switch_stm_row_mixed.test # does not check any ndb features =>
. # => not_ndb_default is enough
two more invoking invoke extra/rpl_truncate_helper.test
rpl_truncate_2myisam # to be fixed with not_ndb_default
rpl_truncate_3innodb # same as above
. # because there is a dedicated to ndb .
. # rpl_truncate_7ndb* suit.
Adapting/testing a new implement
--source include/safe_set_to_maybe_ro_var.inc
to avoid abort due to the error using binlog_format as application.
BitKeeper/etc/ignore@stripped, 2006-09-15 17:25:09+03:00,
aelkin@stripped +1 -0
Added mysql-test/t/rpl_truncate_4ndb.test to the ignore list
mysql-test/include/safe_set_to_maybe_ro_var.inc@stripped, 2006-09-15 17:25:10+03:00,
aelkin@stripped +23 -0
pseudo-macro to make read-only global/session vars "settable" in sense that
SET var= val won't produce any error nor aborts testing.
mysql-test/include/safe_set_to_maybe_ro_var.inc@stripped, 2006-09-15 17:25:10+03:00,
aelkin@stripped +0 -0
mysql-test/r/rpl_row_basic_8partition.result@stripped, 2006-09-15 17:25:09+03:00,
aelkin@stripped +4 -1
new results
mysql-test/t/rpl_rbr_to_sbr.test@stripped, 2006-09-15 17:25:10+03:00,
aelkin@stripped +1 -0
# does not check any ndb features => not_ndb_default is enough
mysql-test/t/rpl_row_basic_8partition.test@stripped, 2006-09-15 17:25:10+03:00,
aelkin@stripped +6 -1
set binlog_format can be read-only because of e.g default storage ndb.
adapting/testing a new implement
--source include/safe_set_to_maybe_ro_var.inc
to avoid abort due to the error.
Note, that it this particular test we could simply remove SET binlog_format because
there is have_binlog_format_row require, as the test is about RBR.
Futhermore utilizing safe_set_to_maybe_ro_var is redundat as well as long as
we keep non_ndb_default guard.
The latter is introduced because of ndb partitioning per-key limitation
#19259: rpl_ndb_dd_partitions fails on solaris. The page is updated to refer to this
test's.
mysql-test/t/rpl_switch_stm_row_mixed.test@stripped, 2006-09-15 17:25:10+03:00,
aelkin@stripped +1 -0
excluding ndb option, no ndb features
mysql-test/t/rpl_truncate_2myisam.test@stripped, 2006-09-15 17:25:10+03:00,
aelkin@stripped +1 -1
ndb checks truncate separately
mysql-test/t/rpl_truncate_3innodb.test@stripped, 2006-09-15 17:25:10+03:00,
aelkin@stripped +1 -0
ndb checks truncate separately
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: aelkin
# Host: dsl-hkigw8-fe00f800-98.dhcp.inet.fi
# Root: /home/elkin/MySQL/TEAM/FIXES/5.1/bug22067_set_blogformat_ndb
--- New file ---
+++ mysql-test/include/safe_set_to_maybe_ro_var.inc 06/09/15 17:25:10
# to mask out the error - never abort neither log in result file - in setting
# to read-only variable.
# It is assumed that the new value is equal to one the var was set to.
# Such situation happens particularily with binlog_format that becomes read-only
# with ndb default storage.
#
# when generate results always watch the file to find what is expected,
# the SET query may fail
# script accepts $maybe_ro_var the var name and $val4var the value
### USAGE:
### let $maybe_ro_var= ...
### let $val4var= ...
### include/safe_set_to_maybe_ro_var.inc
--disable_result_log
--disable_abort_on_error
eval SET $maybe_ro_var = $val4var;
--enable_abort_on_error
--enable_result_log
eval SELECT $maybe_ro_var;
--- 1.11/mysql-test/t/rpl_switch_stm_row_mixed.test 2006-09-15 17:25:24 +03:00
+++ 1.12/mysql-test/t/rpl_switch_stm_row_mixed.test 2006-09-15 17:25:24 +03:00
@@ -1,4 +1,5 @@
-- source include/have_row_based.inc
+-- source include/not_ndb_default.inc
-- source include/master-slave.inc
connection master;
--- 1.3/mysql-test/r/rpl_row_basic_8partition.result 2006-09-15 17:25:24 +03:00
+++ 1.4/mysql-test/r/rpl_row_basic_8partition.result 2006-09-15 17:25:24 +03:00
@@ -5,7 +5,10 @@ reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
DROP TABLE IF EXISTS t1;
-SET BINLOG_FORMAT=ROW;
+SET @@BINLOG_FORMAT = ROW;
+SELECT @@BINLOG_FORMAT;
+@@BINLOG_FORMAT
+ROW
**** Partition RANGE testing ****
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
--- 1.4/mysql-test/t/rpl_rbr_to_sbr.test 2006-09-15 17:25:24 +03:00
+++ 1.5/mysql-test/t/rpl_rbr_to_sbr.test 2006-09-15 17:25:24 +03:00
@@ -1,5 +1,6 @@
-- source include/have_row_based.inc
-- source include/have_binlog_format_mixed_or_statement.inc
+-- source include/not_ndb_default.inc
-- source include/master-slave.inc
# Test that the slave temporarily switches to ROW when seeing binrow
--- 1.4/mysql-test/t/rpl_row_basic_8partition.test 2006-09-15 17:25:24 +03:00
+++ 1.5/mysql-test/t/rpl_row_basic_8partition.test 2006-09-15 17:25:24 +03:00
@@ -8,12 +8,17 @@
############################################################
--source include/have_row_based.inc
+--source include/have_binlog_format_row.inc
--source include/have_partition.inc
+--source include/not_ndb_default.inc
--source include/master-slave.inc
connection master;
--disable_warnings
DROP TABLE IF EXISTS t1;
-SET BINLOG_FORMAT=ROW;
+
+let $maybe_ro_var = @@BINLOG_FORMAT;
+let $val4var = ROW;
+--source include/safe_set_to_maybe_ro_var.inc
--echo **** Partition RANGE testing ****
--- 1.1/mysql-test/t/rpl_truncate_2myisam.test 2006-09-15 17:25:24 +03:00
+++ 1.2/mysql-test/t/rpl_truncate_2myisam.test 2006-09-15 17:25:24 +03:00
@@ -1,4 +1,4 @@
-
+--source include/not_ndb_default.inc
let $engine=MyISAM;
--source extra/rpl_tests/rpl_truncate.test
--- 1.1/mysql-test/t/rpl_truncate_3innodb.test 2006-09-15 17:25:24 +03:00
+++ 1.2/mysql-test/t/rpl_truncate_3innodb.test 2006-09-15 17:25:24 +03:00
@@ -1,5 +1,6 @@
--source include/have_innodb.inc
+--source include/not_ndb_default.inc
let $engine=InnoDB;
--source extra/rpl_tests/rpl_truncate.test
--- 1.253/BitKeeper/etc/ignore 2006-09-15 17:25:24 +03:00
+++ 1.254/BitKeeper/etc/ignore 2006-09-15 17:25:24 +03:00
@@ -1791,3 +1791,4 @@ vio/viotest-sslconnect.cpp
vio/viotest.cpp
zlib/*.ds?
zlib/*.vcproj
+mysql-test/t/rpl_truncate_4ndb.test
| Thread |
|---|
| • bk commit into 5.1 tree (aelkin:1.2323) BUG#22067 | Andrei Elkin | 15 Sep |