- 14 Nov, 2011 1 commit
-
-
unknown authored
MariaDB 5.5 merges changes from MySQL 5.5 where all constant expressions are wrapped into an Item_cache. As a result, constant single-row subqueries were also wrapped in an Item_cache. When analyzing the where clause for constant expressions that can be evaluated during optimization, subqueries wrapped into an Item_cache did not appear as expensive, and were therefore evaluated during optimization. Such evaluation is against the current architecture of MariaDB 5.3 where subquries are executed during the execute phase. The patch adds the is_expensive() predicate to Item_cache. This makes Item_cache consistent with other wrapping Item classes that need to look at the properties of the wrapped object.
-
- 13 Nov, 2011 6 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
don't assume that the http reply packet will arrive in all in one piece
-
unknown authored
Fix for walk() method of subqueries: always call the method on the subquery.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
- 12 Nov, 2011 8 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
fix for mem_total on windows report the time of the data snapshot
-
Igor Babaev authored
-
Igor Babaev authored
A bug in the code of the function key_or could lead to a situation when performing of an OR operation for one index changes the result the operation for another index. This bug is fixed with this patch. Also corrected the specification and the code of the function or_sel_tree_with_checks.
-
unknown authored
-
unknown authored
In MariaDB, when running in ONLY_FULL_GROUP_BY mode, the server produced in incorrect error message that there is an aggregate function without GROUP BY, for artificially created MIN/MAX functions during subquery MIN/MAX optimization. The fix introduces a way to distinguish between artifially created MIN/MAX functions as a result of a rewrite, and normal ones present in the query. The test for ONLY_FULL_GROUP_BY violation now tests in addition if a MIN/MAX function was part of a MIN/MAX subquery rewrite. In order to be able to distinguish these MIN/MAX functions, the patch introduces an additional flag in Item_in_subselect::in_strategy - SUBS_STRATEGY_CHOSEN. This flag is set when the optimizer makes its final choice of a subuqery strategy. In order to make the choice consistent, access to Item_in_subselect::in_strategy is provided via new class methods. ****** Fix MySQL BUG#12329653 In MariaDB, when running in ONLY_FULL_GROUP_BY mode, the server produced in incorrect error message that there is an aggregate function without GROUP BY, for artificially created MIN/MAX functions during subquery MIN/MAX optimization. The fix introduces a way to distinguish between artifially created MIN/MAX functions as a result of a rewrite, and normal ones present in the query. The test for ONLY_FULL_GROUP_BY violation now tests in addition if a MIN/MAX function was part of a MIN/MAX subquery rewrite. In order to be able to distinguish these MIN/MAX functions, the patch introduces an additional flag in Item_in_subselect::in_strategy - SUBS_STRATEGY_CHOSEN. This flag is set when the optimizer makes its final choice of a subuqery strategy. In order to make the choice consistent, access to Item_in_subselect::in_strategy is provided via new class methods.
-
- 11 Nov, 2011 1 commit
-
-
Igor Babaev authored
The function add_ref_to_table_cond missed updating the value of join_tab->pre_idx_push_select_cond after having updated the value of join_tab->select->pre_idx_push_select_cond.
-
- 10 Nov, 2011 1 commit
-
-
Igor Babaev authored
-
- 08 Nov, 2011 2 commits
-
-
Sergei Golubchik authored
(thanks viva64.com)
-
Igor Babaev authored
-
- 07 Nov, 2011 2 commits
-
-
Sergey Petrunya authored
- Do not push index condition if we're using a triggered ref access.
-
Sergey Petrunya authored
update test results
-
- 06 Nov, 2011 2 commits
-
-
Igor Babaev authored
-
Igor Babaev authored
The bug happened because in some cases the function JOIN::exec did not save the value of TABLE::pre_idx_push_select_cond in TABLE::select->pre_idx_push_select_cond for the sort table. Noticed and fixed a bug in the function make_cond_remainder that builds the remainder condition after extraction of an index pushdown condition from the where condition. The code erroneously assumed that the function make_cond_for_table left the value of ICP_COND_USES_INDEX_ONLY in sub-condition markers. Adjusted many result files from the regression test suite after this fix .
-
- 04 Nov, 2011 4 commits
-
-
Igor Babaev authored
The call of the virtual function cancel_pushed_idx_cond in the code of the function test_if_skip_sort_order was misplaced when backporting the fix for bug 58816.
-
unknown authored
-
Michael Widenius authored
Better error message if --log-bin is used without --log-bin-index mysql-test/lib/v1/mysql-test-run.pl: Fixed that test doesn't abort if 'var' points to a deleted directory (common case when using --mem) sql/mysqld.cc: Better error message if --log-bin is used without --log-bin-index
-
Michael Widenius authored
storage/myisam/mi_dbug.c: Added mutex to protect open table list while traversing it
-
- 03 Nov, 2011 2 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
- 02 Nov, 2011 10 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- Remove the assert in replace_where_subcondition (the patch has explanation why)
-
Sergey Petrunya authored
- More test result updates (the errors are the same, the difference is that "at row X" became "at row Y" due to queries with semi-joins producing select results in different order)
-
Sergey Petrunya authored
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- More test result updates
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- semijoin=on - firstmatch=on - loosescan=on
-
Igor Babaev authored
-
unknown authored
-
- 01 Nov, 2011 1 commit
-
-
unknown authored
Analysis: Equality propagation propagated the constant '7' into args[0] of the Item_in_optimizer that stands for the "< ANY" predicate. At the same the min/max subquery rewrite swapped the order of the left and right operands of the "<" predicate, but used Item_in_subselect::left_expr. As a result, when the <ANY predicate is executed early in the execution phase as a contant condition, instead of a constant right (swapped) argument of the < predicate, there was a field (t3.a). This field had no data, since the whole predicate is considered constant, and it is evaluated before any tables are read. Having junk in the field row buffer produced wrong result Solution: Fix create_swap to pick the correct Item_in_optimizer left argument.
-