- 25 Oct, 2018 1 commit
-
-
Marko Mäkelä authored
In RENAME TABLE, when an error occurs while renaming FOREIGN KEY constraint, that error would be overwritten when renaming the InnoDB internal tables related to FULLTEXT INDEX. row_rename_table_for_mysql(): Do not attempt to rename the internal tables if an error already occurred. This problem was originally reported as Oracle Bug#27545888.
-
- 19 Oct, 2018 2 commits
-
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
in thr_lock / has_old_lock upon FLUSH TABLES Explicit partition access of partitioned MEMORY table under LOCK TABLES may cause subsequent statements to crash the server, deadlock, trigger valgrind warnings or ASAN errors. Freed memory was being used due to incorrect cleanup. At least MyISAM and InnoDB don't seem to be affected, since their THR_LOCK structures don't survive FLUSH TABLES. MEMORY keeps table shared data (including THR_LOCK) even if there're no open instances. There's partition_info::lock_partitions bitmap, which holds bits of partitions allowed to be accessed after pruning. This bitmap is updated for each individual statement. This bitmap was abused in ha_partition::store_lock() such that when we need to unlock a table, locked by LOCK TABLES, only locks for partitions that were accessed by previous statement were released. Eventually FLUSH TABLES frees THR_LOCK_DATA objects, which are still linked into THR_LOCK lists. When such THR_LOCK gets reused we end up with freed memory access. Fixed by using ha_partition::m_locked_partitions bitmap similarly to ha_partition::external_lock().
-
- 17 Oct, 2018 1 commit
-
-
Alexander Barkov authored
MDEV-17257 Server crashes in Item::field_type_for_temporal_comparison or in get_datetime_value on SELECT with YEAR field and IN
-
- 16 Oct, 2018 3 commits
-
-
Eugene Kosov authored
my_reverse_bits(): add a cast to fix a bit shift
-
Sergey Vojtovich authored
Locked_tables_list::unlock_locked_tables Similarly to regular DROP TABLE, don't leave locked tables mode if CREATE OR REPLACE dropped temporary table but failed to cerate new one. The problem is that there's no track of which temporary table was "locked" by LOCK TABLES.
-
Thirunarayanan Balathandayuthapani authored
- Backported the MYSQL_SYSVAR_SIZE_T to 10.0 - The parameter innodb_ft_result_cache_limit was only 32 bits wide also on 64-bit systems. Make it size_t, so that it will be 64 bits on 64-bit systems. - Added a test case that show how innodb_ft_result_cache_limit variables behaves in 32bit and 64 bit system.
-
- 15 Oct, 2018 4 commits
-
-
Varun Gupta authored
This assert is hit when we do filesort using the priority queue and try to insert elements in the queue. The compare function used for the priority queue should handle the case for zerolength sortkey.
-
Alexander Barkov authored
Synchronizing sources in: - my_wildcmp_uca_impl() handling utf8_unicode_ci - my_wildcmp_unicode_impl() handling utf8_general_ci The latter has already had a fix for a similar MySQL bug in utf8_general_ci: Bug#11754 SET NAMES utf8 followed by SELECT "A\\" LIKE "A\\" returns 0 So fix is now propagated to utf8_unicode_ci.
-
Alexander Barkov authored
These bugs: MDEV-13119 Wrong results with CAST(AS CHAR) and subquery MDEV-13120 Wrong results with MAKE_SET() and subquery were previously fixed by: MDEV-13790 UNHEX() of a somewhat complicated CONCAT() returns NULL Adding tests only
-
Alexander Barkov authored
Changing the pause from 5 to 10 seconds.
-
- 13 Oct, 2018 1 commit
-
-
Elena Stepanova authored
Tests fail due to MDEV-17145
-
- 12 Oct, 2018 3 commits
-
-
Marko Mäkelä authored
-
Vladislav Vaintroub authored
-
Daniel Black authored
-
- 09 Oct, 2018 1 commit
-
-
Vladislav Vaintroub authored
forceful connection close. Fix is to ensure that when close_connection() is called from shutdown thread, current_thd is set. This that allocation callback for THD specific memory won't assert(in debug version), or crash (in 10.1 and later) close_connection() allocates THD specific memory e.g when it writes the final error packet, and compression is ON for the connection.
-
- 07 Oct, 2018 1 commit
-
-
Igor Babaev authored
derived table / view by equality Now rows of a materialized derived table are always put into a temporary table before join operation. If BNLH is used to join this table with the result of a partial join then both operands of the join are actually put into main memory. In most cases this is not efficient. We could avoid this by sending the rows of the derived table directly to the join operation. However this kind of data flow is not supported yet. Fixed by not allowing usage of hash join algorithm to join a materialized derived table if it's joined by an equality predicate of the form f=e where f is a field of the derived table.
-
- 01 Oct, 2018 1 commit
-
-
Marko Mäkelä authored
-
- 22 Sep, 2018 2 commits
-
-
Sergei Golubchik authored
to guarantee that it's destroyed when plugin deinit is called, not after
-
Sergei Golubchik authored
-
- 21 Sep, 2018 8 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
Unary minus operation for the smallest possible signed long long value (LONLONG_MIN) is undefined in C++. Because of this, func_time.test failed on ppc64 buildbot machines. Fixing the code to avod using undefined operations. This is fix is similar to "MDEV-7973 bigint fail with gcc 5.0"
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Eugene Kosov authored
alloc_root(): unpoison only requested amount of bytes instead of a possible bigger aligned-sized buffer.
-
Alexander Barkov authored
For the original test in 10.0 it was not really important if find_user_wild() or find_user_exact() is used in sp_grant_privileges(). sp-security.test passed with either of them. Fixing the test so it reliably fails with find_user_wild() and pass with find_user_exact().
-
Alexander Barkov authored
-
- 20 Sep, 2018 3 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 18 Sep, 2018 1 commit
-
-
Sergey Vojtovich authored
table->pos_in_locked_tables->table == table' failed in mark_used_tables_as_free_for_reuse Assertion failure can be triggered by some DDL executed under LOCK TABLES that holds lock for DDL target table multiple times (either explicitly or implcitly). When closing all table instances for given table (e.g. when preparing for table removal during CREATE OR REPLACE), only one instance was removed from m_locked_tables list. Later we attempt to re-insert one of the instances in mysql_create_table()/ add_back_last_deleted_lock(), which wasn't actually removed. This leads to m_locks_tables corruption, specifically loss of all following elements. Then UNLOCK TABLE won't reset some table instances properly (specifically pos_in_locked_tables), since they're not present in m_locked_tables. Eventually such table instance gets released to table cache and then re-used by subsequent statement, which triggers this assertion failure.
-
- 10 Sep, 2018 2 commits
-
-
Eugene Kosov authored
multi_delete sets TABLE::no_cache=1 and should set it to 0 when DELETE is done.
-
Ian Gilfillan authored
-
- 06 Sep, 2018 2 commits
-
-
Sergei Golubchik authored
don't create static objects that destroy mutexes from destructors, and don't destroy mutexes from .so destructor (on-unload) function. if it happens after exit(), P_S will be long gone by that time this fixes tokudb tests crashing on quantal-amd64
-
Oleksandr Byelkin authored
-
- 05 Sep, 2018 2 commits
-
-
Sergei Golubchik authored
MDEV-16465 Invalid (old?) table or database name or hang in ha_innobase::delete_table and log semaphore wait upon concurrent DDL with foreign keys lowercase db and table names before prelocking. Post-fix for 9180e866 This fixes failures on main.lowercase_table4 on Windows
-
Sergey Vojtovich authored
for blob column Moved delete_stat_values_for_table_share() call to proper place.
-
- 04 Sep, 2018 2 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
MDEV-16465 Invalid (old?) table or database name or hang in ha_innobase::delete_table and log semaphore wait upon concurrent DDL with foreign keys Disable "Invalid (old?) table or database name" warning when converting table names in InnoDB's get_foreign_key_info(). Because a name can be a temporary table name during the ALTER TABLE, and some other thread can do SHOW CREATE TABLE for the other table in the FK relationships _anytime_.
-