An error occurred fetching the project authors.
- 17 Sep, 2011 1 commit
-
-
Sergey Petrunya authored
BUG##849717: Crash in Item_func::fix_fields on second execution of a prepared statement with semijoin - If convert_join_subqueries_to_semijoins() decides to wrap Item_in_subselect in Item_in_optimizer, it should do so in prep_on_expr/prep_where, too, as long as they are present. There seems to be two possibilities of how we arrive in this function: - prep_on_expr/prep_where==NULL, and will be set later by simplify_joins() - prep_on_expr/prep_where!=NULL, and it is a copy_and_or_structure()-made copy of on_expr/where. the latter can happen for some (but not all!) nested joins. This bug was that we didn't handle this case.
-
- 08 Sep, 2011 1 commit
-
-
Sergey Petrunya authored
- Let join buffering code correctly take into account rowids needed by DuplicateElimination when it is calculating minimum record sizes. - In JOIN_CACHE::write_record_data, added asserts that prevent us from writing beyond the end of the buffer.
-
- 05 Sep, 2011 2 commits
-
-
Sergey Petrunya authored
- Don't use join buffering for tables that are within ranges that are covered by LooseScan strategy.
-
Sergey Petrunya authored
- get_bound_sj_equalities() would produce incorrect bitmap when non-first equality was bound, which resulted in invalid LooseScan plans.
-
- 29 Aug, 2011 1 commit
-
-
Sergey Petrunya authored
- The problem was that the code that made the check whether the subquery is an AND-part of the WHERE clause didn't work correctly for nested subqueries. In particular, grand-child subquery in HAVING was treated as if it was in the WHERE, which eventually caused an assert when replace_where_subcondition looked for the subquery predicate in the WHERE and couldn't find it there. - The fix: Removed implementation of "thd_marker approach". thd->thd_marker was used to determine the location of subquery predicate: setup_conds() would set accordingly it when making the {where|on_expr}->fix_fields(...) call so that AND-parts of the WHERE/ON clauses can determine they are the AND-parts. Item_cond_or::fix_fields(), Item_func::fix_fields(), Item_subselect::fix_fields (this one was missed), and all other items-that-contain-items had to reset thd->thd_marker before calling fix_fields() for their children items, so that the children can see they are not AND-parts of WHERE/ON. - The "thd_marker approach" required that a lot of code in different locations maintains correct value of thd->thd_marker, so it was replaced with: - The new approach with mark_as_condition_AND_part does not keep context in thd->thd_marker. Instead, setup_conds() now calls {where|on_expr}->mark_as_condition_AND_part() and implementations of that function make sure that: - parts of AND-expressions get the mark_as_condition_AND_part() call - Item_in_subselect objects record that they are AND-parts of WHERE/ON
-
- 16 Aug, 2011 1 commit
-
-
Sergey Petrunya authored
- Make simplify_joins() set maybe_null=FALSE for tables that were on the inner sides of inner joins and then were moved to the inner sides of semi-joins.
-
- 09 Aug, 2011 1 commit
-
-
Igor Babaev authored
Do not optimize derived table for the second time ever.
-
- 21 Jul, 2011 1 commit
-
-
Sergey Petrunya authored
- Correct handling of outer joins + DuplicateWeedout (docs pending)
-
- 19 Jul, 2011 2 commits
-
-
Sergey Petrunya authored
- Add testcase.
-
Sergey Petrunya authored
-
- 15 Jul, 2011 2 commits
-
-
unknown authored
mysql-test/r/subselect_scache.result: Test with subquery cache on. mysql-test/t/subselect_scache.test: Test with subquery cache on.
-
Igor Babaev authored
Made it 'off' by default.
-
- 14 Jul, 2011 2 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
(This is not a real fix for this bug, even though it makes it to no longer repeat) - Semi-join subquery predicates, i.e. ... WHERE outer_expr IN (SELECT ...) may have null-rejecting properties, may allow to convert outer joins into inner. - When convert_subq_to_sj() injected IN-equality into parent's WHERE/ON clause, it didn't call $new_cond->top_level_item(), which would cause null-rejecting properties to be lost. - Fixed, now the mentioned outer-to-inner conversion will really take place.
-
- 13 Jul, 2011 2 commits
-
-
Igor Babaev authored
class for Item_func_xor. Added the implementation of the subst_argument_checker virtual method that the objects of this class used to use before the patch. Reverted the previous result changes in sunselect_sj and subselect_sj_jcl6.
-
Sergey Petrunya authored
-
- 08 Jul, 2011 1 commit
-
-
Sergey Petrunya authored
- Set the default - Adjust the testcases so that 'new' tests are run with optimizations turned on. - Pull out relevant tests from "irrelevant" tests and run them with optimizations on. - Run range.test and innodb.test with both mrr=on and mrr=off
-
- 06 Jul, 2011 1 commit
-
-
Sergey Petrunya authored
- SELECT_LEX::merge_subquery should not set "(*in_subq)->emb_on_expr_nest= derived" for subqueries that are in the ON expressions of semi-joins.
-
- 05 Jul, 2011 1 commit
-
-
Sergey Petrunya authored
BUG#803365: Crash in pull_out_semijoin_tables with outer join + semijoin + derived tables in maria-5.3 with WL#106 - Don't perform table pullout out of semi-join nests that have nested outer joins.
-
- 04 Jul, 2011 1 commit
-
-
Sergey Petrunya authored
semijoin=on,firstmatch=on,loosescan=on to semijoin=off,firstmatch=off,loosescan=off Adjust the testcases: - Modify subselect*.test and join_cache.test so that all tests use the same execution paths as before (i.e. optimizations that are being tested are enabled) - Let all other test files run with the new default settings (i.e. with new optimizations disabled) - Copy subquery testcases from these files into t/subselect_extra.test which will run them with new optimizations enabled.
-
- 30 Jun, 2011 1 commit
-
-
Sergey Petrunya authored
- JOIN::prepare would have set JOIN::table_count to incorrect value (bad merge of MWL 106) - optimize_keyuse() would use table-bit as table number (the change in optimize_keyuse is also the reason for query plan changes. Not expected to have much effect because only handles cases of no index statistics) - st_select_lex::register_dependency_item() ignored the fact that some of the selects on the dependency paths could have been merged to their parents (because they were mergeable VIEWs) - Undo the incorrect fix in Item_subselect::recalc_used_tables(): do not call fix_after_pullout() for Item_subselect::Ref_to_outside members.
-
- 29 Jun, 2011 1 commit
-
-
Sergey Petrunya authored
- The crash was because a NOT NULL table column inside the subquery was considered NULLable because the code thought it was on the inner side of an outer join nest. - Fixed by making correct distinction between tables inside outer join nests and inside semi-join nests.
-
- 28 Jun, 2011 2 commits
-
-
Sergey Petrunya authored
- Update test results - Fix a problem with PS: = convert_subq_to_sj() should not save where to prep_where or on_expr to prep_on_expr. = After an unmerged subquery predicate has been pulled, it should call fix_after_pullout() for outer_refs.
-
Sergey Petrunya authored
BUG#751484: Valgrind warning / sporadic crash in evaluate_join_record sql_select.cc:14099 with semijoin - Added testcase. The bug is most likely fixed by MWL#90 code.
-
- 27 Jun, 2011 1 commit
-
-
Sergey Petrunya authored
-
- 22 Jun, 2011 3 commits
-
-
Sergey Petrunya authored
- evaluate_null_complemented_join_record() should perform FirstMatch checks.
-
Sergey Petrunya authored
- Do make the DuplicateWeedout check for outer joins.
-
Sergey Petrunya authored
- Testcase.
-
- 21 Jun, 2011 1 commit
-
-
Sergey Petrunya authored
- Make make_outerjoin_info() correctly process semi-join nests - Make make_join_select() attach conditions to the right places.
-
- 15 Jun, 2011 2 commits
-
-
Sergey Petrunya authored
-In do_sj_dups_weedout(), set nulls_ptr to point to NULL bytes (and not to length bytes) of the DuplicateWeedout column.
-
Sergey Petrunya authored
- Add testcase
-
- 06 Jun, 2011 1 commit
-
-
Igor Babaev authored
The code that added semi-join transformations missed checking the state of the fixed flag for the items built with the and_items function before calls of the fix_fields method. This could lead to an abort failure when the first argument of and_items() happened to be NULL.
-
- 02 Jun, 2011 1 commit
-
-
Sergey Petrunya authored
- Don't attempt to construct FirstMatch access method if we've just figured three lines above that it can't be used (because join prefix doesn't have the needed tables), and so have set pos->first_firstmatch_table= MAX_TABLES Attempts to analyze join->positions[MAX_TABLES] caused valgrind warnings
-
- 26 May, 2011 1 commit
-
-
Sergey Petrunya authored
-
- 20 May, 2011 1 commit
-
-
Igor Babaev authored
After the fix of LP bug 784723 the test case returns the right results.
-
- 19 May, 2011 1 commit
-
-
Sergey Petrunya authored
- in advance_sj_state(), remember join->cur_dups_producing_tables in pos->prefix_dups_producing_tables *before* we modify it, so that restore_prev_sj_state() restores cur_dups_producing_tables in all cases. - Updated test results in subselect_sj2[_jcl6].result (the original EXPLAIN was invalid there)
-
- 02 Apr, 2011 1 commit
-
-
Sergey Petrunya authored
- "Using MRR" is no longer shown with range access. - Instead, both range and BKA accesses will show one of the following: = "Rowid-ordered scan" = "Key-ordered scan" = "Key-ordered Rowid-ordered scan" depending on whether DS-MRR implementation will do scan keys in order, rowids in order, or both. - The patch also introduces a way for other storage engines/MRR implementations to pass information to EXPLAIN output about the properties of employed MRR scans.
-
- 18 Feb, 2011 1 commit
-
-
Sergey Petrunya authored
produced by the optimizer, which was an error, which was detected and fixed)
-
- 16 Feb, 2011 1 commit
-
-
Sergey Petrunya authored
-
- 03 Feb, 2011 1 commit
-
-
unknown authored
Adjusted test cases in accordance with the implementation.
-