Reason:
This test executes DML statements on a NDB table to detect if some SQL statements of special interest commits the ongoing transaction.
When running in MIXED mode, automatic switching from statement-based to row-based replication takes place when a DML statement
updates an NDB table.
That means running this test on NDB with binlog-format=mixed and binlog-format=row mostly checks the same routines twice.
Therefore we skip the variant with binlog-format=mixed.
mysql-test/t/rpl_ndb_ddl.test:
Prevent the execution of this test if replication format is statement or mixed.
It was later disabled because the test failed with timeout on one testing box.
The reason for this failing test could not be found because we do not have informations about the conditions on the box during this test.
Jeb and I tried this test on other boxes and it passed.
My experience is that
- tests using NDB need in general often significant more runtime
than comparable tests of other storage engines
- the actual load of the box where the test is running and the
filesystem (nfs could be extreme slow) where the tests are
executed might have a huge impact on the test performance
(runtime * 2 till 3)
- there are sometimes problems with the ports most probably
caused by OS properties (NDB+RPL need many ports) or
parallel tests accidently running with the same ports.
AFAIK these are the reasons why the NDB tests fail sometimes with timeout.
Conclusion: We enable rpl_ndb_ddl again because the failure happens in rare cases
and seems not to be caused by errors within the server or test code.
mysql-test/t/disabled.def:
Enable t/rpl_ndb_ddl.test again
into romeo.(none):/home/bk/merge-mysql-5.1
client/mysql.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
configure.in:
Merging 5.0 into 5.1
sql/slave.cc:
Merging 5.0 into 5.1
into romeo.(none):/home/bk/merge-mysql-5.1
BitKeeper/etc/ignore:
auto-union
client/mysql.cc:
Auto merged
client/mysqlbinlog.cc:
Auto merged
configure.in:
Auto merged
client/mysqltest.c:
Auto merged
mysql-test/r/rpl_ndb_basic.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
sql/CMakeLists.txt:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_repl.cc:
Auto merged
into romeo.(none):/home/bk/merge-mysql-5.0
client/mysql.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_class.cc:
Auto merged
mysql-test/r/ndb_binlog_ddl_multi.result:
corrrection of test case
(this was actually a bug that had not been spotted, that was fixed by previous patch)
BitKeeper/etc/ignore:
Added client/log_event_old.cc client/log_event_old.h client/rpl_record_old.cc client/rpl_record_old.h libmysqld/log_event_old.cc libmysqld/rpl_record.cc libmysqld/rpl_record_old.cc to the ignore list
mysql-test/include/show_binlog_events2.inc:
New BitKeeper file ``mysql-test/include/show_binlog_events2.inc''
- test case
sql/ha_ndbcluster_binlog.cc:
drop table not logged when it should
mysql-test/r/ndb_binlog_log_bin.result:
New BitKeeper file ``mysql-test/r/ndb_binlog_log_bin.result''
mysql-test/t/ndb_binlog_log_bin.test:
New BitKeeper file ``mysql-test/t/ndb_binlog_log_bin.test''
- both for data schema operations
- also make sure schema events vet the right server id when injected into the binlog
- use same mechanism to signal server_id in bug#17095, and reserve some "id's" for flagging special conditions on the event, in this case do not log it
- enable printing of server ids in the testcases to show that we cot it right
into bk-internal.mysql.com:/data0/bk/mysql-5.0-marvel
sql/ha_ndbcluster.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
into bk-internal.mysql.com:/data0/bk/mysql-5.1-marvel
mysql-test/r/strict.result:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
(Removes some warnings about UNIX_TIMESTAMP from the slave.err logs)
Marked federated_server as a '--big-test'
Change error in net_clear to 'Note', as it interfered with mysql-test-run.
client/mysqltest.c:
More DBUG messages
Adding missing DBUG_RETURN
mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
Added missing sync_slave_with_master
mysql-test/extra/rpl_tests/rpl_relayrotate.test:
Added missing sync_slave_with_master
mysql-test/include/federated.inc:
Don't do stop slave before the slave has started properly
(Removes some warnings about UNIX_TIMESTAMP from the slave.err logs)
mysql-test/include/federated_cleanup.inc:
Trivial cleanup
mysql-test/t/federated_server.test:
Don't run this unless under --big-test
Made test-loop smaller. (We will find out errors in code over time, as the test is run under a lot of difference machines which will compensate for the smaller loop)
mysql-test/t/rpl_flushlog_loop.test:
Added missing sync_slave_with_master
sql/net_serv.cc:
Change error to Note (low level warning), as it interfered with mysql-test-run.
This is probably fine as we in some context on sever shutdown can get information about connection shutdown on the connection while we are doing a query at the same time.
Still, in normal context one should get this, so it's good to have it in the log as it enables one to find errors easier.
sql/slave.cc:
Added reason to why things failed to error message
mysql-test/r/rpl_ndb_circular_simplex.result:
Result change
mysql-test/t/rpl_ndb_circular_simplex.test:
Using master port on slave side instead of slave port (which should be
used on master side).
tests for the bug and associated is moved into another file because
they appeared to be binlog-format sensitive.
mysql-test/r/sp_trans.result:
results changed
mysql-test/t/sp_trans.test:
binlog format sensitive piece of test moved to sp_trans_log.
mysql-test/r/sp_trans_log.result:
new results
mysql-test/t/sp_trans_log.test:
binlog-format sensitive part of sp_trans.test
Change to use remove_file instead of 'system rm' in a lot of tests. (Should fix some windows test problems)
Removed memory leak in mysql_test if sync_with_master fails.
Do not terminate ndb_cluster_binary_log before the util thread has finnished. This should fix a shutdown bug where a thread is accessing injector_mutex after it's freed.
Patch may fix Bug#27622 "mysqld shutdown, util thread continues, while binlog thread exits"
client/mysqltest.c:
Added missing 'mysql_free_result' (fixed confusing memory leak when sync_with_master fails)ug
mysql-test/mysql-test-run.pl:
Add the test case name to the instance manager log files
mysql-test/r/rpl_log_pos.result:
Made test more portable (for powermac)
mysql-test/t/disabled.def:
Disabled im_life_cycle (added bug#27851)
mysql-test/t/myisam-system.test:
Use remove_file instead of "system rm"
mysql-test/t/ndb_autodiscover.test:
Use remove_file instead of "system rm"
mysql-test/t/ndb_loaddatalocal.test:
Use remove_file instead of "system rm"
mysql-test/t/rpl_loaddatalocal.test:
Use remove_file instead of "system rm"
mysql-test/t/rpl_log_pos.test:
Made test more portable (for powermac)
mysql-test/t/rpl_misc_functions.test:
Use remove_file instead of "system rm"
mysql-test/t/rpl_rbr_to_sbr.test:
Use remove_file instead of "system rm"
mysql-test/t/rpl_row_NOW.test:
Use remove_file instead of "system rm"
mysql-test/t/rpl_row_sp001.test:
Use remove_file instead of "system rm"
mysql-test/t/rpl_row_sp011.test:
Use remove_file instead of "system rm"
mysql-test/t/show_check.test:
Use remove_file instead of "system rm"
mysys/my_alloc.c:
Don't return on zero argument, as this may hide other errors
server-tools/instance-manager/log.cc:
Log errors to both stdout and stderr (to know in which context we got the error)
server-tools/instance-manager/thread_registry.cc:
Log error before common assert (to know in which context we fail)
sql/ha_ndbcluster.cc:
Do not terminate ndb_cluster_binary_log before the util thread has finnished.
sql/ha_ndbcluster.h:
Do not terminate ndb_cluster_binary_log before the util thread has finnished.
sql/ha_ndbcluster_binlog.cc:
Do not terminate ndb_cluster_binary_log before the util thread has finnished.
sql-common/client.c:
Clear field_alloc when it's moved to result set (allows us to always call free_root on field_alloc)
mysql-test/r/rpl_ndb_circular_simplex.result:
Result change.
mysql-test/t/rpl_ndb_circular_simplex.test:
Blanking out field that are not critical for the result.
into moonbone.local:/mnt/gentoo64/work/bk-trees/mysql-5.1-opt
mysql-test/r/subselect3.result:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
mysql-test/r/subselect.result:
Manual merge
mysql-test/t/subselect.test:
Manual merge
into moonbone.local:/mnt/gentoo64/work/27321-bug-5.0-opt-mysql
mysql-test/r/subselect3.result:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/r/subselect.result:
Manually merged
mysql-test/t/subselect.test:
Manually merged
mysql-test/t/subselect3.test:
Manually merged
The Item_outer_ref class based on the Item_direct_ref class was always used
to represent an outer field. But if the outer select is a grouping one and the
outer field isn't under an aggregate function which is aggregated in that
outer select an Item_ref object should be used to represent such a field.
If the outer select in which the outer field is resolved isn't grouping then
the Item_field class should be used to represent such a field.
This logic also should be used for an outer field resolved through its alias
name.
Now the Item_field::fix_outer_field() uses Item_outer_field objects to
represent aliased and non-aliased outer fields for grouping outer selects
only.
Now the fix_inner_refs() function chooses which class to use to access outer
field - the Item_ref or the Item_direct_ref. An object of the chosen class
substitutes the original field in the Item_outer_ref object.
The direct_ref and the found_in_select_list fields were added to the
Item_outer_ref class.
mysql-test/t/subselect3.test:
Some test cases were corrected after the fix for the bug#27321.
mysql-test/r/subselect3.result:
Some test cases were corrected after the fix for the bug#27321.
mysql-test/t/subselect.test:
Added a test case for the bug#27321: Wrong subquery result in a grouping select.
mysql-test/r/subselect.result:
Added a test case for the bug#27321: Wrong subquery result in a grouping select.
Some test cases were corrected after this fix.
sql/sql_union.cc:
Bug#27321: Wrong subquery result in a grouping select.
Cleanup of the inner_refs_list.
sql/sql_select.cc:
Bug#27321: Wrong subquery result in a grouping select.
Now the fix_inner_refs() function chooses which class to use to access outer
field - the Item_ref or the Item_direct_ref. An object of the chosen class
substitutes the original field in the Item_outer_ref object.
A comment is corrected.
sql/item.cc:
Bug#27321: Wrong subquery result in a grouping select.
Now the Item_field::fix_outer_field() uses Item_outer_field objects to
represent aliased and non-aliased outer fields for grouping outer selects
only.
sql/item.h:
Bug#27321: Wrong subquery result in a grouping select.
The direct_ref and the found_in_select_list fields were added to the
Item_outer_ref class.
into bk-internal.mysql.com:/data0/bk/mysql-5.1-opt
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
into a88-113-38-195.elisa-laajakaista.fi:/home/my/new/mysql-5.1-marvel
client/mysql.cc:
Auto merged
client/mysql_upgrade.c:
Auto merged
client/mysqlbinlog.cc:
Auto merged
client/mysqldump.c:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/t/grant.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysys/my_malloc.c:
Auto merged
mysys/my_static.c:
Auto merged
mysys/safemalloc.c:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql-common/client.c:
Auto merged
sql-common/my_time.c:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.cc:
Auto merged
storage/archive/ha_archive.cc:
Auto merged
storage/heap/hp_write.c:
Auto merged
storage/innobase/handler/ha_innodb.cc:
Auto merged
storage/ndb/src/mgmclient/CommandInterpreter.cpp:
Auto merged
mysql-test/r/grant.result:
Merged from 5.0
sql/sql_db.cc:
Merged from 5.0
sql/sql_parse.cc:
Merged from 5.0
into mysql.com:/home/bar/mysql-5.1-new-rpl
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/field_conv.cc:
Auto merged
Problem: single byte do_varstring1() function was called, which didn't
check limit on "number of character", and checked only "number of bytes".
Fix: adding a multi-byte aware function do_varstring1_mb(),
to limit on "number of characters"
mysql-test/r/ctype_utf8.result:
Adding test case
mysql-test/t/ctype_utf8.test:
Adding test case
sql/field_conv.cc:
Adding missing function to copy VARCHAR strings
having one length byte.
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
storage/ndb/tools/restore/Restore.hpp:
Auto merged
storage/ndb/tools/restore/consumer_restore.cpp:
Auto merged
mysql-test/r/ndb_restore.result:
manual merge
mysql-test/t/ndb_restore.test:
manual merge
Support of views wasn't implemented for the TRUNCATE statement.
Now TRUNCATE on views has the same semantics as DELETE FROM view:
mysql_truncate() checks whether the table is a view and falls back
to delete if so.
In order to initialize properly the LEX::updatable for a view
st_lex::can_use_merged() now allows usage of merged views for the
TRUNCATE statement.
mysql-test/r/truncate.result:
Added a test case for the Bug#5507: TRUNCATE does not work with views.
mysql-test/t/truncate.test:
Added a test case for the Bug#5507: TRUNCATE does not work with views.
sql/sql_lex.cc:
Bug#5507: TRUNCATE does not work with views.
can_use_merged() was denying of usage of merged views for a
TRUNCATE statement. This results in improper initialization
of view LEX::updatable. Fixed.
sql/sql_delete.cc:
Bug#5507: TRUNCATE does not work with views.
1.mysql_truncate() was lacking of check whether the table is view. Added.
2.mysql_truncate() calls mysql_delete(), but mysql_delete() always reports
errors as "DELETE" errors. Fixed.
mysql-test/t/view.test:
Updated test case for Bug#14540: OPTIMIZE, ANALYZE, REPAIR applied
to not a view.
mysql-test/r/view.result:
Updated test case for Bug#14540: OPTIMIZE, ANALYZE, REPAIR applied
to not a view.