- 03 Sep, 2014 2 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 02 Sep, 2014 6 commits
-
-
Kristian Nielsen authored
MDEV-6462: Slave replicating using GTID doesn't recover correctly when master crashes in the middle of transaction If the slave gets a reconnect in the middle of a GTID event group, normally it will re-fetch that event group, skipping the first part that was already queued for the SQL thread. However, if the master crashed while writing the event group, the group is incomplete. This patch detects this case and makes sure that the transaction is rolled back and nothing is skipped from any following event groups. Similarly, a network proxy might cause the reconnect to end up on a different master server. Detect this by noticing a different server_id, and similarly in this case roll back the partially received group.
-
Alexander Barkov authored
-
Alexander Barkov authored
MDEV-6683 A parameter and a string literal with the same values are not recognized as equal by the optimizer
-
Alexander Barkov authored
Item_string::eq() and Item_param::eq() in string context behaved differently. Introducing a new class Item_basic_value to share the eq() code between literals (Item_int, Item_double, Item_string, Item_null) and Item_param.
-
Jan Lindström authored
if it's run on a real disk Made test smaller.
-
Alexander Barkov authored
-
- 01 Sep, 2014 1 commit
-
-
Alexander Barkov authored
MDEV-6666 Malformed result for CONCAT(utf8_column, binary_string) Item_static_string_func::safe_charset_converter() and Item_hex_string::safe_charset_converter() did not handle character sets with mbminlen>1 properly, as well as did not handle conversion from binary to multi-byte well. Introducing Item::const_charset_converter(), to reuse it in a number of Item_*::safe_charset_converter().
-
- 25 Aug, 2014 1 commit
-
-
Jan Lindström authored
Analysis: When database is migrated from 5.5 or earlier and database needs crash recovery, there is possibility that SYS_DATAFILES system table does not exists, but crash recovery in function dict_check_tablespaces_and_store_max_id() assumes that SYS_DATAFILES exists. Fix: If SYS_DATAFILES does not exists, create it before we end up to function dict_check_tablespaces_and_store_max_id() on crash recovery.
-
- 21 Aug, 2014 1 commit
-
-
Sergei Golubchik authored
-
- 10 Aug, 2014 1 commit
-
-
Sergei Golubchik authored
mysql-test/mysql-test-run.pl: fix the message
-
- 20 Aug, 2014 2 commits
-
-
Kristian Nielsen authored
-
Kristian Nielsen authored
After-review fixes. Mainly catching if the wait in wait_for_workers_idle() is aborted due to kill. In this case, we should return an error and not proceed to execute the format description event, as other threads might still be running for a bit until the error is caught in all threads.
-
- 19 Aug, 2014 1 commit
-
-
Kristian Nielsen authored
Follow-up patch, fixing a possible deadlock issue. If the master crashes in the middle of an event group, there can be an active transaction in a worker thread when we encounter the following master restart format description event. In this case, we need to notify that worker thread to abort and roll back the partial event group. Otherwise a deadlock occurs: the worker thread waits for the commit that never arrives, and the SQL driver thread waits for the worker thread to complete its event group, which it never does.
-
- 02 Jul, 2014 1 commit
-
-
Kristian Nielsen authored
When a master server starts up, it logs a special format_description event at the start of a new binlog to mark that is has restarted. This is used by a slave to drop all temporary tables - this is needed in case the master crashed and did not have a chance to send explicit DROP TEMPORARY TABLE statements to the slave. In parallel replication, we need to be careful when dropping the temporary tables - we need to be sure that no prior events are still executing that might be using the temporary tables to be dropped, _and_ that no following events have started executing that might have created new temporary tables that should not be dropped. This was not handled correctly, which could cause errors about access to not existing temporary tables or even crashes. This patch implements that such format_description events cause serialisation of event execution; all prior events are executed to completion first, then the format_description event is executed, dropping temporary tables, then following events are queued for execution. Master restarts should be sufficiently infrequent that the resulting loss of parallelism should be of minimal impact.
-
- 19 Aug, 2014 2 commits
-
-
Michael Widenius authored
Fixed 2 failing tests by replacing result files
-
Michael Widenius authored
Part of this work is based on Stewart Smitch's memory barrier and lower priori patches for power8. - Added memory syncronization for innodb & xtradb for power8. - Added HAVE_WINDOWS_MM_FENCE to CMakeList.txt - Added os_isync to fix a syncronization problem on power - Added log_get_lsn_nowait which is now used srv_error_monitor_thread to ensur if log mutex is locked. All changes done both for InnoDB and Xtradb
-
- 15 Aug, 2014 1 commit
-
-
Kristian Nielsen authored
The problem occured when using parallel replication, and an error occured that caused the SQL thread to stop when the IO thread had already reached a following binlog file from the master (or otherwise performed a relay log rotation). In this case, the Rotate Event at the end of the relay log file could still be executed, even though an earlier event in that relay log file had gotten an error. This would cause the position to be incorrectly updated, so that upon restart of the SQL thread, the event that had failed would be silently skipped and ignored, causing replication corruption. Fixed by checking before executing Rotate Event, whether an earlier event has failed. If so, the Rotate Event is not executed, just dequeued, same as for other normal events following a failing event.
-
- 14 Aug, 2014 2 commits
-
-
Michael Widenius authored
If one uses 3 --verbose options to mysql_upgrade or mysqlcheck one will now get on stdout all ALTER, RENAME and CHECK commands that mysqlcheck executes. If one uses 4 --verbose to mysql_upgrade it will also write out all mysqlcheck commands invoked. mysql-test/r/mysql_upgrade.result: Updated results from changing phases mysql-test/r/mysql_upgrade_no_innodb.result: dated results from changing phases mysql-test/r/mysql_upgrade_ssl.result: dated results from changing phases
-
Michael Widenius authored
Fixed compiler warning storage/connect/tabdos.cpp: Fixed compiler warning support-files/build-tags: Added Innobase .ic and errmsg-utf8.txt to tagged files Speed up script
-
- 13 Aug, 2014 4 commits
-
-
Kristian Nielsen authored
Change a couple of permissions that cause lintian warnings in .deb packaging and don't really hurt to fix.
-
Kristian Nielsen authored
The bug was that in some cases, if a replicated transaction was rolled back due to deadlock, during the subsequent retry of that transaction, the gtid_slave_pos would _not_ be updated with the new GTID, leaving the GTID position of the slave incorrect. Fix this by ensuring during the retry that we clear the flag that marks that the GTID has already been recorded in gtid_slave_pos, so that the update of gtid_slave_pos will be done again during the retry. In the original bug, the symptom was an assertion due to OPTION_GTID_BEGIN not being cleared during the retry of the transaction. The reason was some code in handling of a COMMIT query event, which would not clear the flag when not recording a GTID in gtid_slave_pos. This commit also fixes that code to always clear the OPTION_GTID_BEGIN flag for clarity, though it is actually not possible for OPTION_GTID_BEGIN to become set unless a GTID is pending for update (after fixing the bug described above).
-
Jan Lindström authored
sporadically Fix: Modify test to be smaller so that testcase timeout does not trigger. We already have a test for --big-test setup (innodb.innodb_simulate_comp_failures).
-
Jan Lindström authored
sporadically Fix: Modify test to be smaller so that testcase timeout does not trigger. We already have a test for --big-test setup (innodb.innodb_simulate_comp_failures).
-
- 12 Aug, 2014 4 commits
-
-
Elena Stepanova authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
Followup. Don't compile threadpool_unix.cc when thread pool is disabled
-
Alexander Barkov authored
-
- 11 Aug, 2014 1 commit
-
-
Alexander Barkov authored
Adding collation usage statistics into the feedback plugin I_S table.
-
- 08 Aug, 2014 3 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
config.h.cmake: define NOMINMAX, otherwise Windows system headers define min() and max() macros sql/slave.cc: mi->report() has one more argument in MariaDB storage/xtradb/buf/buf0flu.cc: xtradb fixes for windows, again
-
- 07 Aug, 2014 7 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
When a view is merged, mark its select_lex as already optimized, otherwise its where clause (which doesn't have to be a valid Item after merging) might be accessed later. But don't do that for inserts (where a view cannot be simply merged, if one later needs to insert into it).
-
Olivier Bertrand authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Olivier Bertrand authored
have been created by the last addition of new CONNECT features. The version previous to this one is a preliminary test version and should not be distributed. - Handle indexed UPDATE/DELETE. Previously this was just tested and an error message send when it could not be done. Now CONNECT can do it in all the cases. It is done by a MRR like tchnique by making a list of all update or delete to do, sort them, then execute them. modified: storage/connect/array.cpp storage/connect/array.h storage/connect/filamap.cpp storage/connect/filamap.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/filamtxt.h storage/connect/filamvct.cpp storage/connect/filamvct.h storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h - Differenciate Cardinality that returns a true or estimated table size and GetMaxSize that return a value equal or greater than the table row number. This fixes the errors of non matching opt files. modified: storage/connect/connect.cc storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabpivot.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.cpp storage/connect/tabutil.h storage/connect/tabwmi.h storage/connect/xtable.h - Fix some errors and issues when making index and opt files. Erase opt and index files for void tables. Fix wrong calculation of Block and Last in MakeBlockValues. Invalidate indexes before making opt file. Fully handle blocked variable tables. Make opt file for blocked variable tables even when they have no optimised colums. modified: storage/connect/tabdos.cpp storage/connect/xindex.h - Fix some errors making index Return an error when the allocation is too small (should not really occur now that GetMaxSize is sure) Don't use XXROW index for DBF tables because of soft deleted lines. modified: storage/connect/xindex.cpp - Typo modified: storage/connect/macutil.cpp storage/connect/tabdos.h storage/connect/tabsys.cpp storage/connect/tabsys.h
-
Nirbhay Choubey authored
-