- 14 Feb, 2012 1 commit
-
-
Igor Babaev authored
If the flag 'optimize_join_buffer_size' is set to 'off' and the value of the system variable 'join_buffer_size' is greater than the value of the system variable 'join_buffer_space_limit' than no join cache can be employed to join tables of the executed query. A bug in the function JOIN_CACHE::alloc_buffer allowed to use join buffer even in this case while another bug in the function revise_cache_usage could cause a crash of the server in this case if the chosen execution plan for the query contained outer join or semi-join operation.
-
- 13 Feb, 2012 1 commit
-
-
unknown authored
locked until we have finished clean up. Previously, the code released the lock without marking that the thread was running. This allowed a new slave thread to start while the old one was still in the middle of cleaning up, causing assertions and probably general mayhem.
-
- 12 Feb, 2012 2 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
- 11 Feb, 2012 4 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
Protocol documentation (http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol) says that initial packet sent by client if client wants SSL, consists of client capability flags only (4 bytes or 2 bytes edependent on protocol versionl). Some clients happen to send more in the initial SSL packet (C client, Python connector), while others (Java, .NET) follow the docs and send only client capability flags. A change that broke Java client was a newly introduced check that frst client packet has 32 or more bytes. This is generally wrong, if client capability flags contains CLIENT_SSL. Also, fixed the code such that read max client packet size and charset in the first packet prior to SSL handshake. With SSL, clients do not have to send this info, they can only send client flags. This is now fixed such that max packet size and charset are not read prior to SSL handshake, in case of SSL they are read from the "complete" client authentication packet after SSL initialization.
-
- 10 Feb, 2012 5 commits
-
-
unknown authored
-
Michael Widenius authored
-
Michael Widenius authored
-
unknown authored
-
unknown authored
The code was accessing a pointer in a mem_root that might be freed by another concurrent thread. Fix by moving the access to be done while the LOCK_thd_data is held, preventing the memory from being freed too early.
-
- 09 Feb, 2012 1 commit
-
-
unknown authored
The bug itself is fixed by the patch for bug lp:908269.
-
- 03 Feb, 2012 9 commits
-
-
Igor Babaev authored
-
unknown authored
-
unknown authored
-
unknown authored
-
unknown authored
-
Igor Babaev authored
The comment for the fix commit says: Due to the changes required by ICP we first copy a row from the InnoDB format to the MySQL row buffer and then copy it to the pre-fetch queue. This was done for the non-ICP code path too. This change removes the double copy for the latter.
-
unknown authored
-
unknown authored
For single table update/insert added deep check of single tables (single_table_updatable()). For multi-table view insert added additional check of target table (check_view_single_update). Multi-update was correct. Test suite for all cases added.
-
Igor Babaev authored
a significant performance drop for high concurrency bechmarks (bug #11765850 - 58854). Here's the comment of the patch commit: The bug is that the InnoDB pre-fetch cache was not being used in row_search_for_mysql(). Secondly the changeset that planted the bug also introduced some inefficient code. It would read an extra row, convert it to MySQL row format (for ICP==off), copy the row to the pre-fetch cache row buffer, then check for cache overflow and dequeue the row that was pushed if there was a possibility of a cache overflow.
-
- 02 Feb, 2012 1 commit
-
-
Igor Babaev authored
-
- 01 Feb, 2012 2 commits
-
-
Igor Babaev authored
-
unknown authored
Problem was in try to check/use Item_direct_ref of derived view when we have to use real Item_field under it.
-
- 31 Jan, 2012 1 commit
-
-
Sergei Golubchik authored
-
- 30 Jan, 2012 2 commits
-
-
Sergey Petrunya authored
- If LooseScan is used with quick select, require that quick select produces data in key order (this disables use of MRR, which can return data in arbitrary order).
-
Sergey Petrunya authored
-
- 28 Jan, 2012 3 commits
-
-
Igor Babaev authored
Applied the fix for bug #12546542 from the mysql-5.6 code line: JOIN_CACHE::join_records forgot to reset JOIN_TAB::first_unmatched in some cases.
-
Igor Babaev authored
-
Igor Babaev authored
not be reproduced in the latest release of mariadb-5.3 as it was was fixed by Sergey Petrunia when working on the problems concerning outer joins within in subqueries converted to semi-joins.
-
- 27 Jan, 2012 2 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
BUG#922254: Assertion `0' failed at item_cmpfunc.cc:5899: Item* Item_equal::get_first(JOIN_TAB*, Item*) Fixed Item* Item_equal::get_first(JOIN_TAB *context, Item *field_item) to work correctly in the case where: - context!= NO_PARTICULAR_TAB, it points to a table within SJ-Materialization nest - field_item points to an item_equal that has a constant Item_field but does not have any fields from tables that are within semi-join nests.
-
- 26 Jan, 2012 2 commits
-
-
Sergey Petrunya authored
QUERY_CACHE_DB_LENGTH_SIZE 0, just like it is done with QUERY_CACHE_FLAGS_SIZE.
-
Sergey Petrunya authored
-
- 25 Jan, 2012 4 commits
-
-
Sergey Petrunya authored
- Disable use of join cache when we're using FirstMatch strategy, and the join order is such that subquery's inner tables are interleaved with outer. Join buffering code is incapable of handling such join orders. - The testcase requires use of @@debug_optimizer_prefer_join_prefix to hit the bug, but I'm pushing it anyway (including the mention of the variable in .test file), so that it can be found and enabled when/if we get something comparable in the main tree.
-
Sergey Petrunya authored
-
Sergey Petrunya authored
The problem was that LooseScan execution code assumed that tab->key holds the index used for looseScan. This is only true when range or full index scan are used. In case of ref access, the index is in tab->ref.key (and tab->index==0 which explains how LooseScan passed tests with ref access: they used one index) Fixed by setting/using loosescan_key, which always the correct index#.
-
Sergey Petrunya authored
-