- 10 Feb, 2012 1 commit
-
-
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.
-
- 11 Jan, 2012 1 commit
-
-
unknown authored
-
- 10 Jan, 2012 2 commits
-
-
unknown authored
Fix for LP BUG#908269 Wrong result with subquery in select list, EXISTS, constant MyISAM/Aria table. Problem: When building the condition for JOIN::outer_ref_cond the optimizer forgot to take into account that this condition could depend on constant tables as well.
-
Sergey Petrunya authored
-
- 09 Jan, 2012 1 commit
-
-
Michael Widenius authored
mysql-test/r/information_schema_all_engines.result: Update result mysql-test/t/information_schema_all_engines.test: Added --sorted-results as tables in information_schema are not sorted.
-
- 08 Jan, 2012 2 commits
-
-
Vladislav Vaintroub authored
Split IO threads into ones that handle only read completion and ones that handle only write completion, as it was originally done, but got lost with "completion port" patch. The reason we need to have dedicated read and dedicated write threads is that read completion routine can block waiting for write io to complete, and in rare cases where all io threads are handling async reads, it can deadlock.
-
Sergey Petrunya authored
- Create/use do_copy_nullable_row_to_notnull() function for ref access, which is used when copying from not-NULL field in table that can be NULL-complemented to not-NULL field.
-
- 03 Jan, 2012 1 commit
-
-
Igor Babaev authored
The patch for bug 685411 erroneously removed a call of engine->set_thd() from Item_subselect::fix_fields().
-
- 30 Dec, 2011 3 commits
-
-
Sergey Petrunya authored
-
unknown authored
-
Sergey Petrunya authored
-
- 29 Dec, 2011 1 commit
-
-
Sergey Petrunya authored
from a heap temptable, which uses pointers to records (that is, byte* pointers) as rowids. This meant that for rows with the same sort key value, the order was determined by memory layout.
-
- 28 Dec, 2011 1 commit
-
-
Sergey Petrunya authored
-
- 27 Dec, 2011 1 commit
-
-
Sergey Petrunya authored
-
- 26 Dec, 2011 1 commit
-
-
Igor Babaev authored
-
- 24 Dec, 2011 1 commit
-
-
Igor Babaev authored
fixed several defects in the greedy optimization: 1) The greedy optimizer calculated the 'compare-cost' (CPU-cost) for iterating over the partial plan result at each level in the query plan as 'record_count / (double) TIME_FOR_COMPARE' This cost was only used locally for 'best' calculation at each level, and *not* accumulated into the total cost for the query plan. This fix added the 'CPU-cost' of processing 'current_record_count' records at each level to 'current_read_time' *before* it is used as 'accumulated cost' argument to recursive best_extension_by_limited_search() calls. This ensured that the cost of a huge join-fanout early in the QEP was correctly reflected in the cost of the final QEP. To get identical cost for a 'best' optimized query and a straight_join with the same join order, the same change was also applied to optimize_straight_join() and get_partial_join_cost() 2) Furthermore to get equal cost for 'best' optimized query and a straight_join the new code substrcated the same '0.001' in optimize_straight_join() as it had been already done in best_extension_by_limited_search() 3) When best_extension_by_limited_search() aggregated the 'best' plan a plan was 'best' by the check : 'if ((search_depth == 1) || (current_read_time < join->best_read))' The term '(search_depth == 1' incorrectly caused a new best plan to be collected whenever the specified 'search_depth' was reached - even if this partial query plan was more expensive than what we had already found.
-
- 20 Dec, 2011 2 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
-
- 19 Dec, 2011 7 commits
-
-
unknown authored
The patch differs from the original MySQL patch as follows: - All test case differences have been reviewed one by one, and care has been taken to restore the original plan so that each test case executes the code path it was designed for. - A bug was found and fixed in MariaDB 5.3 in Item_allany_subselect::cleanup(). - ORDER BY is not removed because we are unsure of all effects, and it would prevent enabling ORDER BY ... LIMIT subqueries. - ref_pointer_array.m_size is not adjusted because we don't do array bounds checking, and because it looks risky. Original comment by Jorgen Loland: ------------------------------------------------------------- WL#5953 - Optimize away useless subquery clauses For IN/ALL/ANY/SOME/EXISTS subqueries, the following clauses are meaningless: * ORDER BY (since we don't support LIMIT in these subqueries) * DISTINCT * GROUP BY if there is no HAVING clause and no aggregate functions This WL detects and optimizes away these useless parts of the query during JOIN::prepare()
-
Sergey Petrunya authored
- The problem was that const-table-reading code would try to evaluate MATCH() before init_ftfuncs() was called. - Fixed by making MATCH function "expensive" so that nobody tries to evaluate it at optimization phase.
-
Sergey Petrunya authored
- Take into account that subquery's optimization can fail because of @@max_join_size error.
-
Sergey Petrunya authored
- Correct handling for SJ-Materialization + outer joins (details in the comments in the code)
-
Sergey Petrunya authored
-
unknown authored
-
Igor Babaev authored
Do not perform index condition pushdown for conditions containing subqueries and stored functions.
-
- 18 Dec, 2011 1 commit
-
-
Sergey Petrunya authored
-
- 16 Dec, 2011 3 commits
-
-
Igor Babaev authored
-
Sergey Petrunya authored
-
Alexey Botchkov authored
Failures on SUN Solaris. Buggy compiler there required some extra initialization for variables. Then the 02 optimization leads to bugs when values set through the pointer are not always taken into account. Finally, the (long long) / (long) crashes there, the explicit typeconverstion added. Failing innodb_plunin.innodb_gis.test fixed. per-file comments: mysql-test/suite/innodb_plugin/t/innodb_gis.test GIS issues fixed. sql/gcalc_slicescan.cc GIS issues fixed. sql/gcalc_tools.cc GIS issues fixed.
-
- 15 Dec, 2011 9 commits
-
-
Igor Babaev authored
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- Correctly handle plan refinement stage for LooseScan plans: run create_ref_for_key() if LooseScan plan includes a ref access, and if we don't have any fixed key components, switch to a full index scan.
-
Igor Babaev authored
-
Igor Babaev authored
-
Sergey Petrunya authored
-
Sergey Petrunya authored
-
Sergey Petrunya authored
-
Igor Babaev authored
set to 'on' by default.
-
- 14 Dec, 2011 2 commits
-
-
Sergey Petrunya authored
QPLAN_TMP_DISK, like Aria version does (otherwise slow query log would show Tmp_table_on_disk=No when it should have said Yes)
-
Michael Widenius authored
-