• unknown's avatar
    Bug#22067 rpl_rbr_to_sbr and some other fail if NDB is default storage · 791a077b
    unknown authored
    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:
      Added mysql-test/t/rpl_truncate_4ndb.test to the ignore list
    mysql-test/r/rpl_row_basic_8partition.result:
      new results
    mysql-test/t/rpl_rbr_to_sbr.test:
      # does not check any ndb features => not_ndb_default is enough
    mysql-test/t/rpl_row_basic_8partition.test:
      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:
      excluding ndb option, no ndb features
    mysql-test/t/rpl_truncate_2myisam.test:
      ndb checks truncate separately
    mysql-test/t/rpl_truncate_3innodb.test:
      ndb checks truncate separately
    mysql-test/include/safe_set_to_maybe_ro_var.inc:
      pseudo-macro to make read-only global/session vars "settable" in sense that
      SET var= val won't produce any error nor aborts testing.
    791a077b
rpl_row_basic_8partition.result 31.2 KB