Problem 1: BUG#36625: rpl_redirect doesn't do anything useful. It tests an
obsolete feature that was never fully implemented.
Fix 1: Remove rpl_redirect.
Problem 2: rpl_innodb_bug28430 and rpl_flushlog_loop are disabled despite the
bugs for which they were disabled have been fixed.
Fix 2: Re-enable rpl_innodb_bug28430 and rpl_flushlog_loop.
mysql-test/suite/rpl/r/rpl_redirect.result:
Removed result file for obsolete test.\
mysql-test/suite/rpl/t/disabled.def:
Re-enabled tests.
mysql-test/suite/rpl/t/rpl_redirect.test:
Removed obsolete test.
updating two test results.
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
results changed.
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
results changed.
The partitioning clause is only a very long single line, which is very
hard to interpret for a human. This patch breaks the partitioning
syntax into one line for the partitioning type, and one line per
partition/subpartition.
mysql-test/r/information_schema_part.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/r/partition.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/r/partition_archive.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/r/partition_datatype.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/r/partition_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/r/partition_mgm.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/r/partition_mgm_err.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/r/partition_not_windows.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/r/partition_range.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/r/partition_symlink.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/ndb/r/ndb_partition_key.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/ndb/r/ndb_partition_range.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/inc/partition_directory.inc:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Changed partitioning clause format for verifying the new output format.
mysql-test/suite/parts/r/ndb_dd_backuprestore.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/part_supported_sql_func_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/part_supported_sql_func_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/part_supported_sql_func_ndb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter1_1_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter1_1_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter1_2_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter1_2_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter2_1_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter2_1_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter2_2_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter2_2_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter3_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter3_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter4_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_alter4_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_auto_increment_archive.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_auto_increment_blackhole.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_auto_increment_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_auto_increment_memory.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_auto_increment_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_auto_increment_ndb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_basic_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_basic_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_basic_symlink_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_basic_symlink_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_bit_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_bit_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_bit_ndb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_char_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_char_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_datetime_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_datetime_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_decimal_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_decimal_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_engine_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_engine_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_engine_ndb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_float_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_float_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_int_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_int_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_int_ndb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc0_archive.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc0_memory.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc1_archive.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc1_memory.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc2_archive.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc2_memory.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_special_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_special_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_syntax_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/partition_syntax_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/parts/r/rpl_partition.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/rpl/r/rpl_extraCol_innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/rpl/r/rpl_extraCol_myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/rpl/r/rpl_innodb_bug28430.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/rpl/r/rpl_row_basic_8partition.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Updated test result due to the new partitioning clause output format.
mysql-test/t/partition.test:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Added small tests for for the new partitioning clause output format.
mysql-test/t/partition_mgm.test:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Added small tests for for the new partitioning clause output format.
sql/sql_partition.cc:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Changed formatting of the partitioning clause from single line into
multiple indented lines
sql/sql_show.cc:
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
Changed formatting of the partitioning clause from single line into
multiple indented lines
a test on the bug page does not reveal the problem with the latest trees.
Adding the test to the rpl suite in order to monitor regression.
mysql-test/extra/rpl_tests/rpl_row_basic.test:
a regression test for the bug#38230.
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
results changed.
In certain situations, a scan of the table will return the error
code HA_ERR_RECORD_DELETED, and this error code is not
correctly caught in the Rows_log_event::find_row() function, which
causes an error to be returned for this case.
This patch fixes the problem by adding code to either ignore the
record and continuing with the next one, the the event of a table
scan, or change the error code to HA_ERR_KEY_NOT_FOUND, in the event
that a key lookup is attempted.
The code to get read the value of a system variable was extracting its value
on PREPARE stage and was substituting the value (as a constant) into the parse tree.
Note that this must be a reversible transformation, i.e. it must be reversed before
each re-execution.
Unfortunately this cannot be reliably done using the current code, because there are
other non-reversible source tree transformations that can interfere with this
reversible transformation.
Fixed by not resolving the value at PREPARE, but at EXECUTE (as the rest of the
functions operate). Added a cache of the value (so that it's constant throughout
the execution of the query). Note that the cache also caches NULL values.
Updated an obsolete related test suite (variables-big) and the code to test the
result type of system variables (as per bug 74).
mysql-test/extra/rpl_tests/rpl_insert_id.test:
Bug #32124: removed ambiguous testcase
mysql-test/r/innodb_data_home_dir_basic.result:
Bug #32124: fixed wrong test case
mysql-test/r/innodb_flush_method_basic.result:
Bug #32124: fixed wrong test case
mysql-test/r/ps_11bugs.result:
Bug #32124: test case
mysql-test/r/ssl_capath_basic.result:
Bug #32124: fixed wrong test case
mysql-test/r/ssl_cipher_basic.result:
Bug #32124: fixed wrong test case
mysql-test/r/variables.result:
Bug #32124: system vars are shown as such in EXPLAIN EXTENDED, not as constants.
mysql-test/suite/rpl/r/rpl_insert_id.result:
Bug #32124: removed ambiguous testcase
mysql-test/t/ps_11bugs.test:
Bug #32124: test case
sql/item.cc:
Bug #32124: placed the code to convert string to longlong or double
to a function (so that it can be reused)
sql/item.h:
Bug #32124: placed the code to convert string to longlong or double
to a function (so that it can be reused)
sql/item_func.cc:
Bug #32124: moved the evaluation of system variables at runtime (val_xxx).
sql/item_func.h:
Bug #32124: moved the evaluation of system variables at runtime (val_xxx).
sql/set_var.cc:
Bug #32124: removed the code that calculated the system variable's value
at PREPARE
sql/set_var.h:
Bug #32124: removed the code that calculated the system variable's value
at PREPARE
tests/mysql_client_test.c:
Bug #32124 : removed the reading of the system variable, because its max
length is depended on the system charset and client charset and can't be
easily calculated.
The failure was caused by executing a CREATE-SELECT statement that creates a
table in another database than the current one. In row-based logging, the
CREATE statement was written to the binary log without the database, hence
creating the table in the wrong database, causing the following inserts to
fail since the table didn't exist in the given database.
Fixed the bug by adding a parameter to store_create_info() that will make
the function print the database name before the table name and used that
in the calls that write the CREATE statement to the binary log. The database
name is only printed if it is different than the currently selected database.
The output of SHOW CREATE TABLE has not changed and is still printed without
the database name.
mysql-test/suite/rpl/t/rpl_row_create_table.test:
Added test to check that CREATE-SELECT into another database than the
current one replicates.
sql/sql_insert.cc:
Adding parameter to calls to store_create_info().
sql/sql_show.cc:
Adding parameter to calls to store_create_info().
Extending store_create_info() with parameter 'show_database' that will cause
the database to be written before the table name.
sql/sql_show.h:
Adding parameter to call to store_create_info() to tell if the database should be shown or not.
sql/sql_table.cc:
Adding parameter to calls to store_create_info().
ha_statistic_increment for rpl_temporary
Problem: in some cases master send a special event to reconnecting
slave to keep slave's temporary tables (see #17284) and they still
have references to the "old" SQL slave thread and use them to access
thread's data.
Fix: set temporary tables thread references to the actual SQL slave
thread in such cases.
mysql-test/suite/rpl/t/disabled.def:
Fix for bug#38269: pushbuild gives valgrind error in
ha_statistic_increment for rpl_temporary
- rpl_temporary test enabled.
sql/log_event.cc:
Fix for bug#38269: pushbuild gives valgrind error in
ha_statistic_increment for rpl_temporary
- if we keep slave's temporary tables after reconnect,
set their thread pointers (->in_use) to the current SQL thread.
Adds --general-log-file, --slow-query-log-file command-
line options to match system variables of the same names.
Deprecates --log, --log-slow-queries command-line option
and log, log_slow_queries system-variables for v7.0; they
are superseded by general_log/general_log_file and
slow_query_log/slow_query_log_file, respectively.
mysql-test/r/log_basic.result:
Change deprecated system variable "log" to
general log.
mysql-test/r/log_bin_trust_routine_creators_basic.result:
Change deprecation warning so it's more obvious we're referring
to a variable.
mysql-test/r/log_state.result:
Show that all log-related server variables that
should throw deprecation warnings do, and the
others don't.
mysql-test/r/warnings.result:
Change deprecation warning so it's more obvious we're referring
to a variable.
mysql-test/suite/rpl/r/rpl_sp.result:
Change deprecation warning so it's more obvious we're referring
to a variable.
mysql-test/t/log_basic.test:
Change deprecated system variable "log" to
general log.
mysql-test/t/log_state.test:
Show that all log-related server variables that
should throw deprecation warnings do, and the
others don't.
sql/mysqld.cc:
Add command-line options --general-log-file and
--slow-query-log-file to match server options of
the same name.
Deprecated --log and --log-slow-queries command-line
options; they are superseded by --general-log/
--general-log-file and --slow-query-log/--slow-query-log-file,
respectively
sql/set_var.cc:
Deprecate system-variables log in favour of general_log,
log_slow_queries in favour of slow_query_log for 7.0,
both for value- and DEFAULT-setting.
The Blackhole engine did not support row-based replication
since the delete_row(), update_row(), and the index and range
searching functions were not implemented.
This patch adds row-based replication support for the
Blackhole engine by implementing the two functions mentioned
above, and making the engine pretend that it has found the
correct row to delete or update when executed from the slave
SQL thread by implementing index and range searching functions.
It is necessary to only pretend this for the SQL thread, since
a SELECT executed on the Blackhole engine will otherwise never
return EOF, causing a livelock.
mysql-test/extra/binlog_tests/blackhole.test:
Blackhole now handles row-based replication.
mysql-test/extra/rpl_tests/rpl_blackhole.test:
Test helper file for testing that blackhole actually
writes something to the binary log on the slave.
mysql-test/suite/binlog/t/binlog_multi_engine.test:
Replication now handles row-based replcation.
mysql-test/suite/rpl/t/rpl_blackhole.test:
Test that Blackhole works with primary key, index, or none.
sql/log_event.cc:
Correcting code to only touch filler bits and leave
all other bits alone. It is necessary since there is
no guarantee that the engine will be able to fill in
the bits correctly (e.g., the blackhole engine).
storage/blackhole/ha_blackhole.cc:
Adding definitions for update_row() and delete_row() to return OK
when executed from the slave SQL thread with thd->query == NULL
(indicating that row-based replication events are being processed).
Changing rnd_next(), index_read(), index_read_idx(), and
index_read_last() to return OK when executed from the slave SQL
thread (faking that the row has been found so that processing
proceeds to update/delete the row).
storage/blackhole/ha_blackhole.h:
Enabling row capabilities for engine.
Defining write_row(), update_row(), and delete_row().
Making write_row() private (as it should be).
Re-enabling failing test case because server logs were lost in pushbuild, so we need to run it again.
mysql-test/suite/rpl/t/disabled.def:
Re-enabling failing test case because server logs were lost in pushbuild, so we need to run it again.
The assertion indicates that some data was left in the transaction
cache when the server was shut down, which means that a previous
statement did not commit or rollback correctly.
What happened was that a bug in the rollback of a transactional
table caused the transaction cache to be emptied, but not reset.
The error can be triggered by having a failing UPDATE or INSERT,
on a transactional table, causing an implicit rollback.
Fixed by always flushing the pending event to reset the state
properly.
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Testing that a failed update (that writes some rows to the
transaction cache) does not cause the transaction cache to
hold on to the data or forget to reset the transaction cache.
sql/log.cc:
Added call to remove pending event when the transaction cache
is emptied instead of written to binary log. The call will also
clear the outstanding table map count so that the cache is not
left it in a state of "empty but not reset".
Added function MYSQL_BIN_LOG::remove_pending_rows_event().
sql/log.h:
Added function MYSQL_BIN_LOG::remove_pending_rows_event().
sql/sql_class.cc:
Adding function THD::binlog_remove_pending_rows_event().
sql/sql_class.h:
Adding function THD::binlog_remove_pending_rows_event().
The replication filtering rules were inappropiately applied when
executing BINLOG pseudo-query. The rules are supposed to be active
only at times when the slave's sql thread executes an event.
Fixed with correcting a condition to call replication rules only if
the slave sql thread executes the event.
mysql-test/suite/rpl/r/rpl_binlog_query_filter_rules.result:
new result file
mysql-test/suite/rpl/t/rpl_binlog_query_filter_rules-master.opt:
a filtering option that would refuse to replicate a row event of the main test on
slave
mysql-test/suite/rpl/t/rpl_binlog_query_filter_rules.test:
a regression test for the bug
sql/log_event.cc:
avoiding to call the filtering rules if the execution thread is not a slave.
mysql-test/include/wait_for_slave_sql_error_and_skip.inc:
include/start_slave.inc not exist yet, changed to start slave and source include/wait_for_slave_to_start.inc
mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result:
update result
INSTALL PLUGIN and UNINSTALL PLUGIN worked with statement-based and
mixed-mode replication only, but not with row-based replication.
There is no statement-based replication of these statements.
But there was row-based replication of the inserts and deletes
to and from the mysql.plugin table.
The fix is to suppress binlogging during insert and delete to
and from the mysql.plugin table.
mysql-test/suite/rpl/r/rpl_plugin_load.result:
new result file
mysql-test/suite/rpl/t/rpl_plugin_load-master.opt:
new opt file
mysql-test/suite/rpl/t/rpl_plugin_load-slave.opt:
new opt file
mysql-test/suite/rpl/t/rpl_plugin_load.test:
new test
sql/sql_plugin.cc:
Suppress binlogging during insert and delete to/from the
mysql.plugin table.
partition is corrupt
The main problem was that ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR
PARTITION took another code path (over mysql_alter_table instead of
mysql_admin_table) which differs in two ways:
1) alter table opens the tables in a different way than admin tables do
resulting in returning with error before it tried the command
2) alter table does not start to send any diagnostic rows to the client
which the lower admin functions continue to use -> resulting in
assertion crash
The fix:
Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION to use
the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE t.
Adding check in mysql_admin_table to setup the partition list for
which partitions that should be used.
Partitioned tables will still not work with
REPAIR TABLE/PARTITION USE_FRM, since that requires moving partitions
to tables, REPAIR TABLE t USE_FRM, and check that the data still
fulfills the partitioning function and then move the table back to
being a partition.
NOTE: I have removed the following functions from the handler
interface:
analyze_partitions, check_partitions, optimize_partitions,
repair_partitions
Since they are not longer needed.
THIS ALTERS THE STORAGE ENGINE API
mysql-test/r/handler_innodb.result:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Added a note result row.
mysql-test/r/innodb.result:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Added a note result row.
mysql-test/r/innodb_mysql.result:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Added a note result row.
mysql-test/r/partition.result:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
tables.
mysql-test/r/trigger-trans.result:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Added a note result row.
mysql-test/suite/ndb/r/ndb_partition_key.result:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
tables.
mysql-test/suite/ndb/t/ndb_partition_key.test:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
tables.
mysql-test/suite/parts/inc/partition_alter4.inc:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
tables.
mysql-test/suite/parts/r/partition_alter4_innodb.result:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
tables.
mysql-test/suite/parts/r/partition_alter4_myisam.result:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
tables.
mysql-test/suite/rpl/r/rpl_failed_optimize.result:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Added a note result row.
mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Added a note result row.
mysql-test/t/partition.test:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
tables.
sql/ha_partition.cc:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Added a function for returning admin commands result rows
Updated handle_opt_partitions to handle admin commands result rows,
and some error filtering (as mysql_admin_table do).
Removed the functions analyze/check/optimize/repair_partitions
since they have no longer any use.
sql/ha_partition.h:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Removed analyze/check/optimize/repair_partitions since they
are no longer are needed.
sql/handler.cc:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Removed analyze/check/optimize/repair_partitions since they
are no longer are needed.
sql/handler.h:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Removed analyze/check/optimize/repair_partitions since they
are no longer are needed.
sql/mysql_priv.h:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Added set_part_state for reuse of code in mysql_admin_table.
(Originally fond in sql/sql_partition.cc:prep_alter_part_table)
sql/protocol.cc:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Added one assert and a debug print.
sql/sql_partition.cc:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Refactored code for setting up partition state, set_part_state,
now used in both prep_alter_part_table and
sql_table.cc:mysql_admin_table.
Removed code for handling ANALYZE/CHECK/OPTIMIZE/REPAIR partitions,
since it is now handled by mysql_admin_table.
sql/sql_table.cc:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Added functionality in mysql_admin_table to work with partitioned
tables.
Fixed a possible assertion bug for HA_ADMIN_TRY_ALTER
(If analyze would output a row, it fails since the row was already
started).
sql/sql_yacc.yy:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
to use the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE
instead of taking the ALTER TABLE path.
Added reset of alter_info for ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE
since it is now used by partitioned tables.
storage/myisam/mi_check.c:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
Changed warning message from "Found X parts Should be: Y parts"
to "Found X key parts. Should be Y", since it could be confusing
with partitioned tables.
Post-push fix: updated some result files that were affected
by the previous fix to this bug.
mysql-test/suite/binlog/r/binlog_killed_simulate.result:
Updated result file.
mysql-test/suite/binlog/r/binlog_row_binlog.result:
Updated result file.
mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
Updated result file.
mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result:
Updated result file.
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
Updated result file.
mysql-test/suite/rpl/r/rpl_stm_log.result:
Updated result file.
BUG#37884: rpl_row_basic_2myisam and rpl_row_basic_3innodb fail sporadically in pushbuild
These have been fixed in 5.1-rpl. Re-applying fix for BUG#37884
in 5.1-bugteam, and disabling rpl_flushlog_loop for BUG#37733 in
5.1-bugteam.
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Missing sync_slave_with_master added.
mysql-test/suite/rpl/t/disabled.def:
Disabling rpl_flushlog_loop until the fixed version gets
merged from 5.1-rpl
Problem: the test waits for a 'DROP TEMPORARY TABLE' event to
appear in the master's binlog, then checks on the slave whether
the number of temporary tables has decreased. The slave does
not sync, causing a race.
Fix: check for the 'DROP TEMPORARY TABLE' event on slave
instead of on master.
mysql-test/suite/rpl/t/rpl_trunc_temp.test:
- Fixed BUG#37493 by waiting for the event on the slave
instead of on the master.
- Added comments.
This is not a fix to the bug. It only adds debug info, so
that we can analyze the bug better next time it happens.
Please revert the patch after the bug is fixed.
mysql-test/suite/rpl/t/rpl_incident.test:
Added debug info. This will only be printed if the
test fails.
the reason for the failure is that io thread passes through a sequence of state
changes before it eventually got stuck at the expect running state as NO.
It's unreasonble to wait for the running status while the whole idea of the test is
to get to the IO thread error.
Fixed with changing the waiting condition.
mysql-test/suite/rpl/r/rpl_server_id1.result:
results changed
mysql-test/suite/rpl/t/disabled.def:
re-enabling rpl_server_id1
mysql-test/suite/rpl/t/rpl_server_id1.test:
deploying the exact waiting condition i.e to wait for the slave io error.
Problem: master binlog has 'create table t1'. Master binlog
was removed before slave could replicate it. In test's cleanup
code, master did 'drop table t1', which caused slave sql
thread to stop with an error since slave sql thread did not
know about t1.
Fix: t1 is just an auxiliary construction, only needed on
master. Hence, we turn off binlogging before t1 is created,
drop t1 as soon as we don't need it anymore, and then turn
on binlogging again.
mysql-test/include/show_binlog_events.inc:
Filter out directories and block_len from
LOAD DATA INFILE events.
mysql-test/suite/rpl/r/rpl_loaddata_map.result:
updated result file
mysql-test/suite/rpl/t/rpl_loaddata_map.test:
Turn off binlogging while t1 is used, drop t1 as soon
as we don't need it anymore, and turn on binlogging again.
Also added some comments and replaced 'show binlog events'
by 'source include/show_binlog_events.inc'.
Many dump threads can exist due to a way the new version of mtr governs suites.
For this immediate problem the test is refined not to use I_S but rather to reconnect
explicitly with preserving logics of a an old target bug fixes verification.
mysql-test/suite/rpl/r/rpl_temporary.result:
results changed
mysql-test/suite/rpl/t/rpl_temporary.test:
refining the bug#17284 test to avoid counting dump threads in favor to reconnect
explicitly with preserving the orig logics.