- 03 Feb, 2012 1 commit
-
-
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
-
- 23 Jan, 2012 3 commits
-
-
Sergey Petrunya authored
Handler_mrr_extra_key_sorts.
-
unknown authored
-
Sergei Golubchik authored
-
- 22 Jan, 2012 2 commits
-
-
Igor Babaev authored
of mysql-5.6 code line. The bugs could not be reproduced in the latest release of mariadb-5.3 as they were fixed either when the code of subquery optimization was back-ported from mysql-6.0 or later when some other bugs were fixed.
-
Igor Babaev authored
of mysql-5.6 code line. The bugs could not be reproduced in the latest release of mariadb-5.3 as they were fixed either when the code of subquery optimization was back-ported from mysql-6.0 or later when some other bugs were fixed.
-
- 21 Jan, 2012 1 commit
-
-
Igor Babaev authored
The function subselect_uniquesubquery_engine::copy_ref_key has to take into account that when EXPLAIN is processed the array of store_key object created for any TABLE_REF may contain elements for constant items. These items should be ignored by thefunction.
-
- 19 Jan, 2012 3 commits
-
-
Sergey Petrunya authored
- equality substitution code was geared towards processing WHERE/ON clauses. that is, it assumed that it was doing substitions on the code that = wasn't attached to any particular join_tab yet = was going to be fed to make_join_select() which would take the condition apart and attach various parts of it to tables inside/outside semi-joins. - However, somebody added equality substition for ref access. That is, if we have a ref access on TBL.key=expr, they would do equality substition in 'expr'. This possibility wasn't accounted for. - Fixed equality substition code by adding a mode that does equality substition under assumption that the processed expression will be attached to a certain particular table TBL.
-
Sergey Petrunya authored
- setup_semijoin_dups_elimination() would incorrectly set join_tab->do_firstmatch when the join order had outer tables interleaved with inner.
-
Vladislav Vaintroub authored
-
- 18 Jan, 2012 6 commits
-
-
Igor Babaev authored
-
Igor Babaev authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Igor Babaev authored
If the expression for a derived table of a query contained a LIMIT clause the estimate of the number of rows in this derived table returned by the EXPLAIN command could be badly off since the optimizer ignored the limit number from the LIMIT clause when getting the estimate. The call of the method SELECT_LEX_UNIT->set_limit added in the code of mysql_derived_optimize() will be needed also in maria-5.5 where parameters in the LIMIT clause are supported.
-
unknown authored
handler counter Handler_read_rnd_deleted.
-
- 17 Jan, 2012 1 commit
-
-
unknown authored
Removed unused code merged from 5.2. In 5.3 we fix this problem by checking if we put max/min group function without GROUP BY artificially in case of MODE_ONLY_FULL_GROUP_BY sql mode.
-
- 13 Jan, 2012 1 commit
-
-
Michael Widenius authored
-
- 12 Jan, 2012 4 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
1. on windows: don't hang when there's no console, that is, _getch() returns -1. 2. on windows: _getch() returns an int, not char. to distinguish between (char)255 and (int)-1 3. everywhere. isspace(pos[-1]) == ' ' never worked, isspace() returns a boolean, not a char. the never-worked loop was removed to preserve the existing behavior.
-
- 11 Jan, 2012 1 commit
-
-
unknown authored
-