- 11 Sep, 2014 1 commit
-
-
Michael Widenius authored
The problem was that my_hash_sort didn't properly delete end-space characters properly, so strings that should compare identically was seen as different strings. (Space was handled correctly, but not NBSP) This caused duplicate key errors when a heap table was converted to Aria as part of overflow in group by. Fixed by removing all characters that compares as end space when creating a hash. Other things: - Fixed that --sorted_results also works for errors in mysqltest. - Speed up hash by not comparing strings that has different hash. - Speed up many my_hash_sort functions by using registers to calculate hash instead of pointers. This was previously done for some functions, but not for all. - Made a macro of the hash function, to simplify code and to be able to experiment with new hash functions. client/mysqltest.cc: Fixed that --sorted_results also works for error messages. mysql-test/r/ctype_partitions.result: New test to ensure that partitions on hash works mysql-test/suite/multi_source/gtid.result: Updated result mysql-test/suite/multi_source/gtid.test: Test that --sorted_result works for error messages mysql-test/suite/multi_source/gtid_ignore_duplicates.result: Updated result mysql-test/suite/multi_source/gtid_ignore_duplicates.test: Updated result mysql-test/suite/multi_source/load_data.result: Updated result mysql-test/suite/multi_source/load_data.test: Updated result mysql-test/t/ctype_partitions.test: New test to ensure that partitions on hash works storage/heap/hp_write.c: Speed up hash by not comparing strings that has different hash. storage/maria/ma_check.c: Extra debug strings/ctype-bin.c: Use macro for hash function strings/ctype-latin1.c: Use macro for hash function Use registers to calculate hash (speedup) strings/ctype-mb.c: Use macro for hash function Use registers to calculate hash (speedup) strings/ctype-simple.c: Use macro for hash function Use same variable names as in other my_hash_sort functions. Update my_hash_sort_simple() to properly remove end space (patch by Bar) strings/ctype-uca.c: Ignore duplicated space inside strings and end space in my_hash_sort_uca(). This fixed MDEV-6255 Use macro for hash function Use registers to calculate hash (speedup) strings/ctype-ucs2.c: Use macro for hash function Use registers to calculate hash (speedup) strings/ctype-utf8.c: Use macro for hash function Use registers to calculate hash (speedup) strings/strings_def.h: Made a macro of the hash function, to simplify code and to be able to experiment with new hash functions.
-
- 09 Sep, 2014 1 commit
-
-
Michael Widenius authored
Moved freeing of mutex earlier, as we don't need to have log_space_cond locked for doing rotate_relay_log() sql/slave.cc: Moved freeing of mutex earlier, as we don't need to have log_space_cond locked for doing rotate_relay_log()
-
- 08 Sep, 2014 1 commit
-
-
Michael Widenius authored
MDEV-6560 Assertion `! is_set() ' failed in Diagnostics_area::set_ok_status on killing CREATE OR REPLACE MDEV-6525 Assertion `table->pos_in_locked _tables == __null || table->pos_in_locked_tables->table = table' failed in mark_used_tables_as_free_for_reuse, locking problems and binlogging problems on CREATE OR REPLACE under lock. mysql-test/r/create_or_replace.result: Added test for MDEV-6560 mysql-test/t/create_or_replace.test: Added test for MDEV-6560 mysql-test/valgrind.supp: Added suppression for OpenSuse 12.3 sql/sql_base.cc: More DBUG sql/sql_class.cc: Changed that thd_sqlcom_can_generate_row_events() does not report that CREATE OR REPLACE is generating row events. This is safe as this function is only used by InnoDB/XtraDB to check if a query is generating row events as part of another transaction. As CREATE is always run as it's own transaction, this isn't a problem. This fixed MDEV-6525. sql/sql_table.cc: Remember if reopen_tables() generates an error (which can only happen in case of KILL). This fixed MDEV-6560
-
- 07 Sep, 2014 4 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
MDEV-6580 Assertion `thd' failed in my_malloc_size_cb_func upon writing status report into error log thd is NULL in the signal handler, display_table_locks() should expect that
-
Sergei Golubchik authored
merge the fix
-
- 06 Sep, 2014 2 commits
-
-
Sergei Golubchik authored
MDEV-6610 Assertion `thd->is_error() || thd->killed' failed in mysql_execute_command on executing an SP with repeated CREATE TABLE .. SELECT the bug was introduced by CREATE OR REPLACE implementation. CREATE IF NOT EXISTS ... SELECT was returning an error status to the caller, while sending an ok packet to the user. SP code was not prepared for that and trusted that error status means an error.
-
Sergei Golubchik authored
master_info_index becomes zero during shutdown. check that it's valid (under a mutex) before dereferencing.
-
- 04 Sep, 2014 4 commits
-
-
Alexander Barkov authored
The Item_string constructors called set_name() on the source string, which was wrong because in case of UCS2/UTF16/UTF32 the source value might be a not well formed string (e.g. have incomplete leftmost character). Now set_name() is called on str_value after its copied (with optionally left zero padding) from the source string. - MDEV-6694 Illegal mix of collation with a PS parameter Item_param::convert_str_value() did not set repertoire. Introducing a new structure MY_STRING_METADATA to collect character length and repertoire of a string in a single loop, to avoid two separate loops. Adding a new class Item_basic_value::Metadata as a convenience wrapper around MY_STRING_METADATA, to reuse the code between Item_string and Item_param.
-
Alexander Barkov authored
and moving set_value() from Item_string to Item_string_for_in_vector, as set_value() updates the members incompletely (e.g. does not update max_length), so it was dangerous to have set_value() available in Item_string.
-
Alexander Barkov authored
-
Alexander Barkov authored
MDEV-6044 MySQL BUG#12735829 - SPACE() FUNCTION WARNING REFERS TO REPEAT() IN ER_WARN_ALLOWED_PACKET_OVERFLOWED Merged from 5.6
-
- 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
-
- 11 Aug, 2014 2 commits
-
-
James Le Cuirot authored
-
Alexander Barkov authored
Adding collation usage statistics into the feedback plugin I_S table.
-
- 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.
-
- 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
-