summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-12547: InnoDB FULLTEXT index has too strict ↵bb-10.0-MDEV-12547Thirunarayanan Balathandayuthapani2018-10-1618-167/+181
| | | | | | | innodb_ft_result_cache_limit max limit - Removed f_n_char from fts_string_t. Instead of that, InnoDB calculate the number of chars when it is needed.
* MDEV-12547: InnoDB FULLTEXT index has too strict ↵Thirunarayanan Balathandayuthapani2018-10-156-0/+48
| | | | | | | innodb_ft_result_cache_limit max limit - Added a test case that show how innodb_ft_result_cache_limit variables behaves in 32bit and 64 bit system.
* MDEV-12547: InnoDB FULLTEXT index has too strict ↵Thirunarayanan Balathandayuthapani2018-10-1510-20/+20
| | | | | | | | innodb_ft_result_cache_limit max limit 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.
* MDEV-12547: InnoDB FULLTEXT index has too strict ↵Thirunarayanan Balathandayuthapani2018-10-151-0/+12
| | | | | | innodb_ft_result_cache_limit max limit - Backported the MYSQL_SYSVAR_SIZE_T to 10.0
* Disabled storage engine tests using LOCK with MERGE engineElena Stepanova2018-10-131-0/+2
| | | | Tests fail due to MDEV-17145
* Fix typo in 5936d43afb6ad5a75d9eed17eb39e8c00a08a684Marko Mäkelä2018-10-121-1/+1
|
* fix test suite after MDEV-15438Vladislav Vaintroub2018-10-122-0/+2
|
* threadpool_size can contribute to the wanted_filesDaniel Black2018-10-121-0/+4
|
* MDEV-17413 Crash in my_malloc_size_cb_func() during shutdown withVladislav Vaintroub2018-10-091-0/+7
| | | | | | | | | | | 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.
* MDEV-17382 Hash join algorithm should not be used to join materializedIgor Babaev2018-10-074-2/+81
| | | | | | | | | | | | | | | | 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.
* Correct a typo in a commentMarko Mäkelä2018-10-011-1/+1
|
* tokudb: create and destroy TOKUDB_SHARE::_open_tables_mutex dynamicallySergei Golubchik2018-09-222-6/+8
| | | | to guarantee that it's destroyed when plugin deinit is called, not after
* sanitize tokudb locking macrosSergei Golubchik2018-09-221-8/+8
|
* Merge remote-tracking branch 'origin/5.5' into bb-10.0-barbb-10.0-barAlexander Barkov2018-09-212-2/+6
|\
| * Fixing the comment not to mention the removed class Item_copy_int.Alexander Barkov2018-09-211-1/+1
| |
| * A cleanup for MDEV-17249 MAKETIME(-1e50,0,0) returns a wrong resultAlexander Barkov2018-09-211-1/+5
| | | | | | | | | | | | | | | | | | | | 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"
* | Merge 5.5 into 10.0Marko Mäkelä2018-09-211-1/+2
|\ \ | |/
| * Pull request #868: MDEV-17248 Improve ASAN memory pool instrumentationMarko Mäkelä2018-09-212-3/+4
| |\
| | * MDEV-17248 Improve ASAN memory pool instrumentationEugene Kosov2018-09-212-3/+4
| | | | | | | | | | | | | | | alloc_root(): unpoison only requested amount of bytes instead of a possible bigger aligned-sized buffer.
* | | After-merge cleanup: adjust the test to work in 10.0Alexander Barkov2018-09-212-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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().
* | | Merge remote-tracking branch 'origin/5.5' into 10.0Alexander Barkov2018-09-2123-305/+479
|\ \ \ | |/ /
| * | MDEV-17250 Remove unused Item_copy_xxxAlexander Barkov2018-09-202-265/+0
| | |
| * | MDEV-17244 MAKETIME(900,0,0.111) returns a wrong resultAlexander Barkov2018-09-203-3/+145
| | |
| * | MDEV-17249 MAKETIME(-1e50,0,0) returns a wrong resultAlexander Barkov2018-09-2013-32/+219
| |/
| * MDEV-16741 Assertion `m_extra_cache' failed in ha_partition::late_extra_cacheEugene Kosov2018-09-104-1/+21
| | | | | | | | multi_delete sets TABLE::no_cache=1 and should set it to 0 when DELETE is done.
| * Bug#27230925: HANDLE_FATAL_SIGNAL (SIG=11) IN SHOW_ROUTINE_GRANTSSergei Golubchik2018-09-042-0/+42
| | | | | | | | test case
| * Bug#27407480: AUTOMATIC_SP_PRIVILEGES REQUIRES NEED THE INSERT PRIVILEGES ↵Sergei Golubchik2018-09-043-2/+40
| | | | | | | | | | | | FOR MYSQL.USER TABLE A test case and a followup fix
* | MDEV-14410 - Assertion `table->pos_in_locked_tables == __null ||Sergey Vojtovich2018-09-184-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Update contributorsIan Gilfillan2018-09-103-3/+9
| |
* | TokuDB: Don't free P_S instrumented mutexes after exit()Sergei Golubchik2018-09-062-6/+10
| | | | | | | | | | | | | | | | | | 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
* | Merge branch 'merge-tokudb-5.6' into 10.0Oleksandr Byelkin2018-09-06192-194538/+3936
|\ \
| * | 5.6.41-84.1Oleksandr Byelkin2018-09-03187-194538/+4359
| | |
* | | MDEV-16465 Invalid (old?) table or database name or hang in ↵Sergei Golubchik2018-09-062-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ha_innobase::delete_table and log semaphore wait upon concurrent DDL with foreign keys lowercase db and table names before prelocking. Post-fix for 9180e8666b8 This fixes failures on main.lowercase_table4 on Windows
* | | MDEV-16757 Memory leak after adding manually min/max statistical dataSergey Vojtovich2018-09-052-2/+1
| | | | | | | | | | | | | | | | | | for blob column Moved delete_stat_values_for_table_share() call to proper place.
* | | cleanup: remove extra/rpl_tests/rpl_foreign_key.testSergei Golubchik2018-09-043-68/+62
| | |
* | | MDEV-16465 Invalid (old?) table or database name or hang in ↵Sergei Golubchik2018-09-042-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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_.
* | | MDEV-16465 Invalid (old?) table or database name or hang in ↵Sergei Golubchik2018-09-046-9/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ha_innobase::delete_table and log semaphore wait upon concurrent DDL with foreign keys ALTER TABLE locks the table with TL_READ_NO_INSERT, to prevent the source table modifications while it's being copied. But there's an indirect way of modifying a table, via cascade FK actions. After previous commits, an attempt to modify an FK parent table will cause FK children to be prelocked, so the table-being-altered cannot be modified by a cascade FK action, because ALTER holds a lock and prelocking will wait. But if a new FK is being added by this very ALTER, then the target table is not locked yet (it's a temporary table). So, we have to lock FK parents explicitly.
* | | create a reusable function that tells what FK actions can writeSergei Golubchik2018-09-043-3/+9
| | | | | | | | | | | | Backport of 794f71cbc41
* | | MDEV-12669 Circular foreign keys cause a loop and OOM upon LOCK TABLESergei Golubchik2018-09-043-2/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | table_already_fk_prelocked() was looking for a table in the wrong list (not the complete list of prelocked tables, but only in its tail, starting from the current table - which is always empty for the last added table), so for circular FKs it kept adding same tables to the list indefinitely. Backport of d6d7e169fbf
* | | compilation failureSergei Golubchik2018-09-042-12/+12
| | |
* | | extend prelocking to FK-accessed tablesSergei Golubchik2018-09-046-4/+157
| | | | | | | | | | | | Backport of f1362910980
* | | cleanup: sp_head::add_used_tables_to_table_list()Sergei Golubchik2018-09-042-27/+28
| | | | | | | | | | | | | | | | | | | | | Use TABLE::init_one_table(), don't duplicate it. Put additional initializations into TABLE::init_one_table_for_prelocking() Backport of f1362910980
* | | cleanup: FOREIGN_KEY_INFOSergei Golubchik2018-09-0411-92/+75
| | | | | | | | | | | | | | | | | | | | | instead of returning strings for CASCADE/RESTRICT from every storage engine, use enum values Backport of a3614d33e8a
* | | Merge branch '5.5' into 10.0bb-10.0-merge-sanjaOleksandr Byelkin2018-09-0311-16/+99
|\ \ \ | | |/ | |/|
| * | MDEV-16682 Assertion `(buff[7] & 7) == HEAD_PAGE' failedMonty2018-09-031-5/+13
| | | | | | | | | | | | Missed one file in last push...
| * | MDEV-16957: Server crashes in Field_iterator_natural_join::next upon 2nd ↵Oleksandr Byelkin2018-08-316-4/+67
| | | | | | | | | | | | | | | | | | | | | | | | execution of SP The problem was that join_columns creation was not finished due to error of notfound column in USING, but next execution tried to use join_columns lists. Solution is cleanup the lists on error. It can eat memory in statement MEM_ROOT but it is an error and error will be fixed or statement/procedure removed/altered.
| * | MDEV-16682 Assertion `(buff[7] & 7) == HEAD_PAGE' failedMonty2018-08-302-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Problem was that SQL level tried to read a record with rnd_pos() that was already deleted by the same statement. In the case where the page for the record had been deleted, this caused an assert. Fixed by extending the assert to also handle empty pages and return HA_ERR_RECORD_DELETED for reads to deleted pages.
| * | Merge pull request #846 from shinnok/bb-5.5-mtr-shmRasmus Johansson2018-08-241-1/+1
| |\ \ | | | | | | | | MDEV-17022: check if mtr --mem location is writeable
| | * | MDEV-17022: check if mtr --mem location is writeableTeodor Mircea Ionita2018-08-201-1/+1
| | | |
| * | | item_cmp_type: simplier for a faster codepathDaniel Black2018-08-221-6/+4
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The common case for this function is that both types are the same. The Item_result defination from include/mysql.h.pp is the following enum enum Item_result { STRING_RESULT=0, REAL_RESULT, INT_RESULT, ROW_RESULT, DECIMAL_RESULT, TIME_RESULT }; The compilers aren't quite smart enough to optimize to this shortcut so this makes it quicker. Before the change: 0000000000012730 <item_cmp_type(Item_result, Item_result)>: 12730: 89 f0 mov %esi,%eax 12732: 09 f8 or %edi,%eax 12734: 74 4c je 12782 <item_cmp_type(Item_result, Item_result)+0x52> 12736: 83 ff 02 cmp $0x2,%edi 12739: 75 0a jne 12745 <item_cmp_type(Item_result, Item_result)+0x15> 1273b: b8 02 00 00 00 mov $0x2,%eax 12740: 83 fe 02 cmp $0x2,%esi 12743: 74 3c je 12781 <item_cmp_type(Item_result, Item_result)+0x51> 12745: 83 ff 03 cmp $0x3,%edi 12748: b8 03 00 00 00 mov $0x3,%eax 1274d: 74 32 je 12781 <item_cmp_type(Item_result, Item_result)+0x51> 1274f: 83 fe 03 cmp $0x3,%esi 12752: 74 2d je 12781 <item_cmp_type(Item_result, Item_result)+0x51> 12754: 83 ff 05 cmp $0x5,%edi 12757: b8 05 00 00 00 mov $0x5,%eax 1275c: 74 23 je 12781 <item_cmp_type(Item_result, Item_result)+0x51> 1275e: 83 fe 05 cmp $0x5,%esi 12761: 74 1e je 12781 <item_cmp_type(Item_result, Item_result)+0x51> 12763: 83 ff 04 cmp $0x4,%edi 12766: 74 05 je 1276d <item_cmp_type(Item_result, Item_result)+0x3d> 12768: 83 ff 02 cmp $0x2,%edi 1276b: 75 0f jne 1277c <item_cmp_type(Item_result, Item_result)+0x4c> 1276d: b8 04 00 00 00 mov $0x4,%eax 12772: 83 fe 02 cmp $0x2,%esi 12775: 74 0a je 12781 <item_cmp_type(Item_result, Item_result)+0x51> 12777: 83 fe 04 cmp $0x4,%esi 1277a: 74 05 je 12781 <item_cmp_type(Item_result, Item_result)+0x51> 1277c: b8 01 00 00 00 mov $0x1,%eax 12781: c3 retq 12782: 31 c0 xor %eax,%eax 12784: c3 retq After, noting the short cut and the beginning of the function: 0000000000012730 <item_cmp_type(Item_result, Item_result)>: 12730: 39 f7 cmp %esi,%edi 12732: 75 03 jne 12737 <item_cmp_type(Item_result, Item_result)+0x7> 12734: 89 f8 mov %edi,%eax 12736: c3 retq 12737: 83 ff 03 cmp $0x3,%edi 1273a: b8 03 00 00 00 mov $0x3,%eax 1273f: 74 32 je 12773 <item_cmp_type(Item_result, Item_result)+0x43> 12741: 83 fe 03 cmp $0x3,%esi 12744: 74 2d je 12773 <item_cmp_type(Item_result, Item_result)+0x43> 12746: 83 ff 05 cmp $0x5,%edi 12749: b8 05 00 00 00 mov $0x5,%eax 1274e: 74 23 je 12773 <item_cmp_type(Item_result, Item_result)+0x43> 12750: 83 fe 05 cmp $0x5,%esi 12753: 74 1e je 12773 <item_cmp_type(Item_result, Item_result)+0x43> 12755: 83 ff 04 cmp $0x4,%edi 12758: 74 05 je 1275f <item_cmp_type(Item_result, Item_result)+0x2f> 1275a: 83 ff 02 cmp $0x2,%edi 1275d: 75 0f jne 1276e <item_cmp_type(Item_result, Item_result)+0x3e> 1275f: b8 04 00 00 00 mov $0x4,%eax 12764: 83 fe 02 cmp $0x2,%esi 12767: 74 0a je 12773 <item_cmp_type(Item_result, Item_result)+0x43> 12769: 83 fe 04 cmp $0x4,%esi 1276c: 74 05 je 12773 <item_cmp_type(Item_result, Item_result)+0x43> 1276e: b8 01 00 00 00 mov $0x1,%eax 12773: c3 retq Signed-off-by: Daniel Black <daniel@linux.vnet.ibm.com>