summaryrefslogtreecommitdiff
path: root/mysql-test/t/range_vs_index_merge.test
Commit message (Collapse)AuthorAgeFilesLines
* Updated mtr files to support different compiled in optionsMonty2019-09-011-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows one to run the test suite even if any of the following options are changed: - character-set-server - collation-server - join-cache-level - log-basename - max-allowed-packet - optimizer-switch - query-cache-size and query-cache-type - skip-name-resolve - table-definition-cache - table-open-cache - Some innodb options etc Changes: - Don't print out the value of system variables as one can't depend on them to being constants. - Don't set global variables to 'default' as the default may not be the same as the test was started with if there was an additional option file. Instead save original value and reset it at end of test. - Test that depends on the latin1 character set should include default_charset.inc or set the character set to latin1 - Test that depends on the original optimizer switch, should include default_optimizer_switch.inc - Test that depends on the value of a specific system variable should set it in the test (like optimizer_use_condition_selectivity) - Split subselect3.test into subselect3.test and subselect3.inc to make it easier to set and reset system variables. - Added .opt files for test that required specfic options that could be changed by external configuration files. - Fixed result files in rockdsb & tokudb that had not been updated for a while.
* Fixed the bug mdev-11574.Igor Babaev2017-10-061-0/+53
| | | | | Do not build an index merge of two indexes when one index is an infix of the other index.
* Merge branch '5.5' into 10.0Vicențiu Ciorbaru2017-03-031-3/+38
|\
| * Fixed bug mdev-8603.Igor Babaev2017-01-181-3/+38
| | | | | | | | | | | | | | | | | | | | | | | | When building different range and index-merge trees the range optimizer could build an index-merge tree with an index scan containing less ranges then needed. This index-merge could be chosen as the best. Following this index-merge the executioner missed some rows in the result set. The invalid index scan was built due to an inconsistency in the code back-ported from mysql into 5.3 that fixed mysql bug #11765831: the code added to key_or() could change shared keys of the second ored tree. Partially the problem was fixed in the patch for mariadb bug #823301, but it turned out that only partially.
* | MDEV-5244: Make extended_keys=ON by default in 10.0Sergey Petrunya2014-02-251-0/+3
|/ | | | | | | | | - Change the default flag value to ON. - Update the testcases to be run extended_keys=ON: = trivial test result updates = If extended_keys setting makes a difference for a testcase, run the testcase with extended_keys=off. There were only a few such cases - Update to vcol_select_innodb looks like a worse plan but it will be gone in 10.0.
* small cleanupsSergei Golubchik2013-01-151-0/+0
|
* Fixed bug mdev-585 (LP bug #637962)Igor Babaev2012-11-011-0/+58
| | | | | | | | | | If, when executing a query with ORDER BY col LIMIT n, the optimizer chose an index-merge scan to access the table containing col while there existed an index defined over col then optimizer did not consider the possibility of using an alternative range scan by this index to avoid filesort. This could cause a performance degradation if the optimizer flag index_merge was set up to 'on'.
* Fixed LP bug #954262.Igor Babaev2012-03-201-0/+56
| | | | | This bug in the constructor SEL_IMERGE::SEL_IMERGE could cause huge excessive memory requests.
* Fixed LP bug #891953.Igor Babaev2011-11-181-0/+15
| | | | | | | | | | | Due to this bug the function SEL_IMERGE::or_sel_tree_with_checks() could build an inconsistent merge tree if one of the SEL_TREEs in the resulting index merge happened to contain a full key range. This could trigger an assertion failure.
* Fixed LP bug #800184.Igor Babaev2011-11-181-2/+19
| | | | | | | The function key_and() erroneously called SEL_ARG::increment_use_count() when SEL_ARG::incr_refs() should had been called. This could lead to wrong values of use_count for some SEL_ARG trees.
* Fixed LP bug #823301.Igor Babaev2011-11-121-0/+29
| | | | | | | | | | 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.
* Fixed LP bug #752353.Igor Babaev2011-04-201-0/+19
| | | | | | In some cases the field max_part_no of the SEL_ARG structure was not initialized. That triggered a Valgrind complain.
* Merge.Igor Babaev2010-12-101-0/+5
|\
| * MergeIgor Babaev2010-12-091-27/+36
| |\
| | * Corrected the bug number in a test case.Igor Babaev2010-12-071-1/+1
| | |
| | * Fixed LP bug #684117.Igor Babaev2010-12-041-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | A crash may happenin the cases when the range optimizer tried to OR two index merge such that the second one contained less range trees than the first one. The bug was introduced by the patch of MWL#24: "index_merge: fair choice between index_merge union and range access".
| | * Adjusted results in suite/innodb_plugin/r/innodb_mysql.result.Igor Babaev2010-12-041-0/+1
| | | | | | | | | | | | Made range_vs_index_merge.test platform independent
| | * MWL #21: "index_merge: non-ROR intersection".Igor Babaev2010-12-011-27/+36
| | | | | | | | | | | | The second (final) patch.
* | | Addemdum for bug #685952.Igor Babaev2010-12-091-25/+29
|/ / | | | | | | | | | | | | | | | | Also: Changed the value of TIME_FOR_COMPARE_ROWID to make it the same as for MWL 21. Changed some queries in range_vs_index_merge.test to make them generate the same plans as earlier.
* | Fixed LP bug #685952.Igor Babaev2010-12-071-0/+68
| | | | | | | | | | | | | | | | | | When ORing two AND-OR formulas the range optimizer could miss a conjunct in one of AND-OR formulas in the result. If the index merge union plan to access a table is formed by this formula that, in general, is not inferred from the original where/on condition,the query could return an incorrect result set.
* | Fixed LP bug #684117.Igor Babaev2010-12-051-0/+17
|/ | | | | | | | | | | A crash may happenin the cases when the range optimizer tried to OR two index merge such that the second one contained less range trees than the first one. The bug was introduced by the patch of MWL#24: "index_merge: fair choice between index_merge union and range access".
* Fixed bug #637978.Igor Babaev2010-09-151-1/+69
| | | | | Fixed a bug in the new code for WL#24 that caused generation of an invalid index-merge access plan.
* Replaced a lame implementation of the function sel_trees_must_be_oredIgor Babaev2009-10-291-0/+45
| | | | | | | | | | | | | that blocked building index merge plans for the queries with where conditions of the form (key1|2_p1=c AND range(key1_p2)) OR (key1|2_p1=c AND range(key2_p2)). The problem was discovered by Sergey Petrunia when he reviewed the patch for WL#24. Added new test cases. One of them failed to produce an index merge plan before the patch was applied.
* Changed test cases to make results for innodb platform independent.Igor Babaev2009-10-171-18/+20
|
* The main patch for WL#24: Igor Babaev2009-10-111-0/+805
"index_merge: fair choice between index_merge union and range access" mysql-test/include/world.inc: A new include file to upload the world database. mysql-test/include/world_schema.inc: A new include file to create tables of the world database. mysql-test/r/index_merge_myisam.result: The results for test cases testing the optimizations added in WL#24 for MyISAM. mysql-test/r/range_vs_index_merge.result: The results for test cases testing the optimizations added in WL#24 for InnoDB. mysql-test/t/range_vs_index_merge.test: Test cases to test the optimizations added in WL#24 for MyISAM. mysql-test/t/range_vs_index_merge_innodb.test: Test cases to test the optimizations added in WL#24 for InnoDB. sql/sql_list.h: Fixed a bug that did not allow adding a non-empty list to an empty list.