we store 7 bytes (1 + 2*3) in every Query_log_event.
In the future if users want binlog optimized for small size and less safe,
we could add --binlog-no-charset (and binlog-no-sql-mode etc): charset info
is something by design optional (even if for now we don't offer possibility to disable it):
it's not a binlog format change.
We try to reduce the number of get_charset() calls in the slave SQL thread to a minimum
by caching the charset read from the previous event (which will often be equal to the one of the current event).
We don't use SET ONE_SHOT for charset-aware repl (we still do for timezones, will be fixed later).
No more errors if one changes the global value of charset vars on master or slave
(as we log charset info in all Query_log_event).
Not fixing Load_log_event as it will be rewritten soon by Dmitri.
Testing how mysqlbinlog behaves in rpl_charset.test.
mysqlbinlog needs to know where charset file is (to be able to convert a charset number found
in binlog (e.g. in User_var_log_event) to a charset name); mysql-test-run needs to pass
the correct value for this option to mysqlbinlog.
Many result udpates (adding charset info into every event shifts log_pos in SHOW BINLOG EVENTS).
Roughly the same job is to be done for timezones :)
Added preparation of mysql_client_test(_embedded) and mysqltest(_embedded)
Added --purify, --purecov, --quantify and --cxxfilt <cxxfiltprog> options
mysql-test-run.sh:
Report correctly combinations of embedded+ps-protocol etc
Added initial Purify support
Test cases using common object (database,user,table,..) names could probably
destroy customer data, when connecting to an already running server.
This Changeset contains an auxiliary routine include/testdb_only.inc" which
should be sourced by tests doing such dangerous things.
The test case will get a "[skipped]" when the environment variable
USE_RUNNING_SERVER is not 0 .
The modified mysql-test-run.sh sets USE_RUNNING_SERVER to 0, when
the "mysql-test-run" starts its own server, aka there was no "--extern"
option.
Let MYSQL_CLIENT_TEST be set with command line from mysql-test-run script
mysql-test-run.sh:
Renamed client_test to mysql_client_test
Support --embedded-server test on installed server
mysql_client_test.test:
Renamed client_test to mysql_client_test
Use env var CLIENT_TEST with full name, it differs when run with --embedded-server
Rename: mysql-test/t/client_test.test -> mysql-test/t/mysql_client_test.test
Install varchar.frm
Otherwise type_varchar fails when running mysql-test-run on installed system
mysql-test/mysql-test-run.sh
Use correct path to clist_tests in on installed system