- 15 Dec, 2011 5 commits
-
-
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.
-
Sergey Petrunya authored
-
Sergey Petrunya authored
-
Sergey Petrunya authored
-
- 14 Dec, 2011 5 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
-
Michael Widenius authored
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- Let JTBM optimization code handle the case where the subquery is degenerate and doesn't have a join query plan. Regular materialization would fall back to IN->EXISTS for such cases. Semi-Join materialization does not have such option, instead we introduce and use "constant JTBM join tabs".
-
- 13 Dec, 2011 9 commits
-
-
Igor Babaev authored
-
Igor Babaev authored
A memory overwrite in the function test_if_skip_sort_order() could cause a crash for some queries with subqueries.
-
Sergey Petrunya authored
- Do a "more thorough" cleanup of SJ-Materialization join tab in JOIN_TAB::cleanup. The bug was due to the fact that JOIN_TAB::cleanup() may be called multiple times for the same tab if the join has grouping.
-
unknown authored
-
Michael Widenius authored
Updated version number in configure
-
Michael Widenius authored
sql/set_var.cc: Moved query_cache_strip_comments from EMBEDDED_LIBRARY to HAVE_QUERY_CACHE
-
Michael Widenius authored
mysql-test/suite/maria/r/maria-recovery3.result: Added test case for recovery bug mysql-test/suite/maria/t/maria-recovery3.test: Added test case for recovery bug storage/maria/ha_maria.cc: Don't print query twice to log storage/maria/ma_delete.c: More DBUG_PRINT storage/maria/ma_key_recover.c: Added new asserts to detect errors earlier storage/maria/ma_recovery.c: Update all states when moving a non-transactional file to transactional. This fixes lp:887051
-
Michael Widenius authored
-
Michael Widenius authored
- Changed storage to be 2 bytes instead of sizeof(size_t) (simple optimization) - Fixed bug when using query_cache_strip_comments and query that started with '(' - Fixed DBUG_PRINT() that used wrong (not initialized) variables. mysql-test/mysql-test-run.pl: Added some space to make output more readable. mysql-test/r/query_cache.result: Updated test results mysql-test/t/query_cache.test: Added test with query_cache_strip_comments sql/mysql_priv.h: Added QUERY_CACHE_DB_LENGTH_SIZE sql/sql_cache.cc: Fixed bug when using query_cache_strip_comments and query that started with '(' Store db length in 2 characters instead of size_t. Get db length from correct position (earlier we had an error when query started with ' ') Fixed DBUG_PRINT() that used wrong (not initialized) variables.
-
- 12 Dec, 2011 5 commits
-
-
Sergei Golubchik authored
-
unknown authored
-
Sergei Golubchik authored
-
unknown authored
The range optimizer incorrectly chose a loose scan for group by when there is a correlated WHERE condition. This range access method cannot be executed for correlated conditions also with the "range checked for each record" because generally the range access method can change for each outer record. Loose scan destructively changes the query plan and removes the GROUP operation, which will result in wrong query plans if another range access is chosen dynamically.
-
Igor Babaev authored
The cause of the reported assertion failure was a division of a double value by 0.
-
- 11 Dec, 2011 7 commits
-
-
Igor Babaev authored
-
unknown authored
Removed previous patch of this problem.
-
Igor Babaev authored
If the duplicate elimination strategy is used for a semi-join and potentially one of the block-based join algorithms can be employed to join the inner tables of the semi-join then sorting of the head (first non-constant) table for a query with ORDER BY / GROUP BY cannot be used.
-
Igor Babaev authored
-
Michael Widenius authored
-
Michael Widenius authored
- Instead of supressing all errors, only suppress safe ones like: ER_DUP_KEY, ER_BAD_NULL_ERROR, ER_SUBQUERY_NO_1_ROW, ER_ROW_IS_REFERENCED_2
-
Michael Widenius authored
no_error handling for select (used by INSERT ... SELECT) still needs to be fixed, but I will do that in a separate commit
-
- 09 Dec, 2011 1 commit
-
-
Igor Babaev authored
The function setup_sj_materialization_part1() forgot to set the value of TABLE::map for any materialized IN subquery. This could lead to wrong results for queries with subqueries that were converted to queries with semijoins.
-
- 08 Dec, 2011 3 commits
-
-
Alexey Botchkov authored
Coinciding nodes can appear as a result of DOUBLE inaccuracy. We should test that before we start the loop. Also the spatial relations can be calculated faster if we check MBR relations first. And we do have the shape's MBR-s now. per-file comments: sql/gcalc_slicescan.cc set_extent() method added. bug #901655 ST_BUFFER asserts with a coplicated shape. sql/gcalc_slicescan.h set_extent() method declared. bug #901655 ST_BUFFER asserts with a coplicated shape. sql/gcalc_tools.cc bug #901655 ST_BUFFER asserts with a coplicated shape. checks for equal nodes added. sql/item_geofunc.cc bug #901655 ST_BUFFER asserts with a coplicated shape. MBR for the shapes calculated, and MBR checks added before we start the heavy calculations. sql/spatial.h bug #901655 ST_BUFFER asserts with a coplicated shape. MBR::buffer() method implemented.
-
unknown authored
Analysis: The class member QUICK_GROUP_MIN_MAX_SELECT::seen_first_key was not reset between subquery re-executions. Thus each subsequent execution continued from the group that was reached by the previous subquery execution. As a result loose scan reached end of file much earlier, and returned empty result where it shouldn't. Solution: Reset seen_first_key before each re-execution of the loose scan.
-
Sergey Petrunya authored
- if we're considering FirstMatch access with one inner table, and @@optimizer_switch has semijoin_with_cache flag, calculate costs as if we used join cache (because we will be able to do so)
-
- 07 Dec, 2011 4 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- opt_sum_query() should not assume that join tables from sj-materialization have known numbers of rows.
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- Part2: safety and code cleanup
-
- 06 Dec, 2011 1 commit
-
-
Igor Babaev authored
The execution plan cannot use sorting on the first table from the sequence of the joined tables if it plans to employ the block-based hash join algorithm.
-