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.
for push in 5.1 (I will inform Trudy).
Storage engines and plugins can now have unit tests to test their components; such
test must be an executable C/C++ program which name ends with '-t' and which is
obeys the mytap protocol, it must be stored in the storage engine's or plugin's
source directory (storage/<engine> or plugin/<plugin>) or any subdirectories of
this.
The top-level Makefile target "test-unit" will run all unit tests: it will scan
the engines' and plugins' directories, recursively, and execute all executable
files which name ends with '-t'."
- compiler warning
- detection of pthread_create failure (you will see this message
only if you run with "make test-verbose" in unittest; otherwise
unit.pl masks all messages from the test but "ok" ones.
- the test fails randomly on some machines (I filed it as BUG#22320),
on one host it looks like a crash at exit() which a sleep(2) makes
disappear. So I add the sleep(2), which can be removed
when BUG#22320 is fixed.
The cause of the bug was an incomplete fix for bug 18080.
The problem was that setup_tables() unconditionally reset the
name resolution context to its 'tables' argument, which pointed
to the first table of an SQL statement.
The bug fix limits resetting of the name resolution context in
setup_tables() only in the cases when the context was not set
by earlier parser/optimizer phases.
(as part of the auto_increment cleanup of WL#3146; let's not be
sad, that monster push still removed serious bugs):
one problem with INSERT DELAYED (unexpected interval releases),
one with stored functions (wrong auto_inc binlogging).
These bugs were not released.
- When an ALTER TABLE RENAME is performed on windows, the files are closed and their cached file
descriptors are marked invalid. Performing INSERT, UPDATE or SELECT on the associated merge
table causes a server crash on windows. This patch adds a test for bad file descriptors when a
table attempts a lock. If a bad descriptor is found an error is thrown. An additional FLUSH TABLES
will be necessary to further operate on the associated merge table.
More specifically, the scripts/Makefile isn't created and it doesn't
translate mysql_fix_privilege_tables ".sh" . So,
mysql-test/mysql-test-run.pl doesn't find the binary and substitutes
/bin/false instead. That obviously doesn't "fix" anything and the
test fails because of it.
- Add ifdefs in ha_innodb.cc so it's only compiled if we have selected to build mysqld with innodb.
This is inline with how it's done in other handlers.