summaryrefslogtreecommitdiff
path: root/mysql-test/r/index_merge_myisam.result
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-16695: Estimate for rows of derived tables is very high when we are ↵Varun Gupta2018-11-011-0/+50
| | | | | | | | | | using index_merge union For index merge union[or sort union], the estimates are not taken into account while calculating the selectivity of a condition. So instead of showing the estimates of the index merge union[or sort union], it shows estimates equal to all the records of the table. The fix for the issue is to include the selectivity of index merge union[or sort union] while calculating the selectivity of a condition.
* MDEV-11231 Server crashes in check_duplicate_key on CREATE TABLE ... SELECTSergei Golubchik2016-12-041-1/+1
| | | | | | | be consistent and don't include the table name into the error message, no other CREATE TABLE error does it. (the crash happened, because thd->lex->query_tables was NULL)
* MDEV-7142: main.index_merge_innodb fails sporadically in buildbotSergei Petrunia2016-09-051-0/+3
| | | | Attempt to stabilize the testcase.
* Fix spelling: occurred, execute, which etcOtto Kekäläinen2016-03-041-1/+1
|
* MDEV-6047: Make exists_to_in optimization ON by defaultunknown2014-06-091-3/+3
|
* 10.0-base mergeSergei Golubchik2014-02-261-0/+3
|\
| * Update test results after the previous pushSergey Petrunya2014-02-251-0/+3
| |
* | 10.0-base mergeSergei Golubchik2013-12-161-0/+60
|\ \ | |/
| * MDEV-5069: Server crashes in SEL_ARG::increment_use_count with ↵Sergey Petrunya2013-11-191-0/+60
| | | | | | | | | | | | index_merge+index_merge_sort_union, FORCE INDEX - Don't call incr_refs() is the merged SEL_ARG* is NULL.
* | Check for duplicate index (port from mysql)unknown2013-09-201-0/+2
|/ | | | (pre fts)
* MDEV-4556 Server crashes in SEL_ARG::rb_insert with ↵Sergey Petrunya2013-07-111-0/+26
| | | | | | | | | | index_merge+index_merge_sort_union, FORCE INDEX - merge_same_index_scans() may put the same SEL_ARG tree in multiple result plans. make it call incr_refs() on the SEL_ARG trees that it does key_or() on, because key_or(sel_arg_tree_1, sel_arg_tree_2) call may invalidate SEL_ARG trees pointed by sel_arg_tree_1 and sel_arg_tree_2.
* Fixed random test failureMichael Widenius2012-09-101-1/+1
| | | | | mysql-test/include/index_merge2.inc: InnoDB did report 9 or 7 rows in explain
* Patch for mdev-287: CHEAP SQ: A query with subquery in SELECT list, EXISTS, ↵unknown2012-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | inner joins takes hundreds times longer Analysis: The fix for lp:944706 introduces early subquery optimization. While a subquery is being optimized some of its predicates may be removed. In the test case, the EXISTS subquery is constant, and is evaluated to TRUE. As a result the whole OR is TRUE, and thus the correlated condition "b = alias1.b" is optimized away. The subquery becomes non-correlated. The subquery cache is designed to work only for correlated subqueries. If constant subquery optimization is disallowed, then the constant subquery is not evaluated, the subquery remains correlated, and its execution is cached. As a result execution is fast. However, when the constant subquery was optimized away, it was neither cached by the subquery cache, nor it was cached by the internal subquery caching. The latter was due to the fact that the subquery still appeared as correlated to the subselect_XYZ_engine::exec methods, and they re-executed the subquery on each call to Item_subselect::exec. Solution: The solution is to update the correlated status of the subquery after it has been optimized. This status consists of: - st_select_lex::is_correlated - Item_subselect::is_correlated - SELECT_LEX::uncacheable - SELECT_LEX_UNIT::uncacheable The status is updated by st_select_lex::update_correlated_cache(), and its caller st_select_lex::optimize_unflattened_subqueries. The solution relies on the fact that the optimizer already called st_select_lex::update_used_tables() for each subquery. This allows to efficiently update the correlated status of each subquery without walking the whole subquery tree. Notice that his patch is an improvement over MySQL 5.6 and older, where subqueries are not pre-optimized, and the above analysis is not possible.
* 5.3 mergeSergei Golubchik2012-01-131-0/+3
|\
| * Set new default values for the optimizer switch flags 'derived_merge'Igor Babaev2011-11-261-0/+3
| | | | | | | | and 'derived_with_keys'. Now they are set on by default.
* | 5.3->5.5 mergeSergei Golubchik2011-11-271-3/+3
|\ \ | |/
| * Made the optimizer switch for index condition pushdown set to 'on' by default. Igor Babaev2011-11-211-3/+3
| |
* | 5.3->5.5 mergeSergei Golubchik2011-11-221-0/+20
|\ \ | |/
| * BUG#834514: Assertion `!table || (!table->read_set || bitmap_is_set(...' ↵Sergey Petrunya2011-09-031-0/+20
| | | | | | | | | | | | | | | | with aggregates - Make find_all_keys() not to rely on table->tmp_set remaining constant during execution quick_index_merge_select->reset() may change it.
* | merge with 5.3Sergei Golubchik2011-10-191-32/+33
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | sql/sql_insert.cc: CREATE ... IF NOT EXISTS may do nothing, but it is still not a failure. don't forget to my_ok it. ****** CREATE ... IF NOT EXISTS may do nothing, but it is still not a failure. don't forget to my_ok it. sql/sql_table.cc: small cleanup ****** small cleanup
| * Made the optimizer switches 'derived_merge' and 'derived_with_keys'Igor Babaev2011-07-211-1/+2
| | | | | | | | | | off by default.
| * Set the default to be mrr=off,mrr_sort_keys=off:Sergey Petrunya2011-07-081-13/+13
| | | | | | | | | | | | | | - 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
| * Merged the code of MWL#106 into 5.3Igor Babaev2011-05-161-2/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolved all conflicts, bad merges and fixed a few minor bugs in the code. Commented out the queries from multi_update, view, subselect_sj, func_str, derived_view, view_grant that failed either with crashes in ps-protocol or with wrong results. The failures are clear indications of some bugs in the code and these bugs are to be fixed.
| | * Merge of the mwl106 tree into the latest 5.3 tree.Igor Babaev2010-09-231-2/+1
| | |\ | | | | | | | | | | | | Resolved conflicts. Adjusted some test results
| | | * MWL#106: Backport optimizations for derived tables and views.Igor Babaev2010-05-261-2/+1
| | | | | | | | | | | | | | | | | | | | The main consolidated patch.
| * | | MWL#89unknown2011-05-021-1/+1
| |\ \ \ | | | | | | | | | | | | | | | Merge with 5.3
| | * | | MWL#89unknown2011-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Adjusted test cases in accordance with the implementation.
| * | | | Make EXPLAIN better at displaying MRR/BKA:Sergey Petrunya2011-04-021-4/+4
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - "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.
| * | | MergeIgor Babaev2010-12-271-11/+12
| |\ \ \
| | * | | Post-review fixes.Igor Babaev2010-12-221-6/+6
| | | | |
| | * | | Merge.Igor Babaev2010-12-101-13/+14
| | |\ \ \
| | | * \ \ MergeIgor Babaev2010-12-091-15/+16
| | | |\ \ \
| | | | * | | MWL #21: "index_merge: non-ROR intersection".Igor Babaev2010-12-011-15/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The second (final) patch.
| | * | | | | Addemdum for bug #685952.Igor Babaev2010-12-091-2/+2
| | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | | | Made join order in two queries predetermined.Igor Babaev2010-12-051-2/+2
| | | | | |
| | * | | | Merge.Igor Babaev2010-12-051-3/+3
| | |\ \ \ \ | | | |/ / /
| | | * | | MergeIgor Babaev2010-08-311-3/+3
| | | |\ \ \
| | | | * | | The main patch for WL#24: Igor Babaev2009-10-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "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.
| * | | | | | Merge.Igor Babaev2010-12-101-4/+4
| |\ \ \ \ \ \
| | * | | | | | MWL#128: Added into EXPLAIN output info about types of the used join buffers andIgor Babaev2010-10-181-4/+4
| | | |_|_|/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | about the employed join algorithms. Refactored constructors of the JOIN_CACHE* classes.
| * | | | | | Merge with 5.1-release.Michael Widenius2010-12-061-0/+73
| |\ \ \ \ \ \ | | |/ / / / / | |/| / / / / | | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | - Fixed problem with oqgraph and 'make dist' Note that after this merge we have a problem show in join_outer where we examine too many rows in one specific case (related to BUG#57024). This will be fixed when mwl#128 is merged into 5.3.
| | * | | | Merge with MySQL 5.1.53Michael Widenius2010-11-251-0/+55
| | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Open issues: - A better fix for #57688; Igor is working on this - Test failure in index_merge_innodb.test ; Igor promised to look at this - Some Innodb tests fails (need to merge with latest xtradb) ; Kristian promised to look at this. - Failing tests: innodb_plugin.innodb_bug56143 innodb_plugin.innodb_bug56632 innodb_plugin.innodb_bug56680 innodb_plugin.innodb_bug57255 - Werror is disabled; Should be enabled after merge with xtradb.
| | | * | | | Bug#56423: Different count with SELECT and CREATE SELECT queriesMartin Hansson2010-10-071-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a regression from the fix for bug no 38999. A storage engine capable of reading only a subset of a table's columns updates corresponding bits in the read buffer to signal that it has read NULL values for the corresponding columns. It cannot, and should not, update any other bits. Bug no 38999 occurred because the implementation of UPDATE statements compare the NULL bits using memcmp, inadvertently comparing bits that were never requested from the storage engine. The regression was caused by the storage engine trying to alleviate the situation by writing to all NULL bits, even those that it had no knowledge of. This has devastating effects for the index merge algorithm, which relies on all NULL bits, except those explicitly requested, being left unchanged. The fix reverts the fix for bug no 38999 in both InnoDB and InnoDB plugin and changes the server's method of comparing records. For engines that always read entire rows, we proceed as usual. For engines capable of reading only select columns, the record buffers are now compared on a column by column basis. An assertion was also added so that non comparable buffers are never read. Some relevant copy-pasted code was also consolidated in a new function.
| | * | | | | Merge with MySQL 5.1.52Michael Widenius2010-11-231-0/+18
| | |\ \ \ \ \ | | | |/ / / / | | | | / / / | | | |/ / / | | |/| | |
* | | | | | post-merge fixes.Sergei Golubchik2011-07-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | most tests pass. 5.3 merge is next
* | | | | | 5.5-mergeSergei Golubchik2011-07-021-0/+55
|\ \ \ \ \ \
| * | | | | | Bug#56423: Different count with SELECT and CREATE SELECT queriesMartin Hansson2010-10-071-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the 5.5 version of the fix. The 5.1 version was too complicated to merge and was null merged. This is a regression from the fix for bug no 38999. A storage engine capable of reading only a subset of a table's columns updates corresponding bits in the read buffer to signal that it has read NULL values for the corresponding columns. It cannot, and should not, update any other bits. Bug no 38999 occurred because the implementation of UPDATE statements compare the NULL bits using memcmp, inadvertently comparing bits that were never requested from the storage engine. The regression was caused by the storage engine trying to alleviate the situation by writing to all NULL bits, even those that it had no knowledge of. This has devastating effects for the index merge algorithm, which relies on all NULL bits, except those explicitly requested, being left unchanged. The fix reverts the fix for bug no 38999 in both InnoDB and InnoDB plugin and changes the server's method of comparing records. For engines that always read entire rows, we proceed as usual. For engines capable of reading only select columns, the record buffers are now compared on a column by column basis. An assertion was also added so that non comparable buffers are never read. Some relevant copy-pasted code was also consolidated in a new function.
* | | | | | | merge.Sergei Golubchik2010-11-251-79/+17
|\ \ \ \ \ \ \ | |/ / / / / / |/| / / / / / | |/ / / / / | | | | | | | | | | | | checkpoint. does not compile.
| * | | | | Fix @@optimizer_switch supportSergey Petrunya2010-07-161-63/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Let "mysqld --help --verbose" list all optimizer options - Make it possible to add new @@optimizer_switch flags w/o causing .result changes all over the testsuite: = Remove "select @@optimizer_switch" from tests that do not need all switches = Move @@optimizer_switch-specific tests to t/optimizer_switch.test
| * | | | | Subquery cache (MWL#66) added.unknown2010-07-101-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libmysqld/Makefile.am: The new file added. mysql-test/r/index_merge_myisam.result: subquery_cache optimization option added. mysql-test/r/myisam_mrr.result: subquery_cache optimization option added. mysql-test/r/subquery_cache.result: The subquery cache tests added. mysql-test/r/subselect3.result: Subquery cache switched off to avoid changing read statistics. mysql-test/r/subselect3_jcl6.result: Subquery cache switched off to avoid changing read statistics. mysql-test/r/subselect_no_mat.result: subquery_cache optimization option added. mysql-test/r/subselect_no_opts.result: subquery_cache optimization option added. mysql-test/r/subselect_no_semijoin.result: subquery_cache optimization option added. mysql-test/r/subselect_sj.result: subquery_cache optimization option added. mysql-test/r/subselect_sj_jcl6.result: subquery_cache optimization option added. mysql-test/t/subquery_cache.test: The subquery cache tests added. mysql-test/t/subselect3.test: Subquery cache switched off to avoid changing read statistics. sql/CMakeLists.txt: The new file added. sql/Makefile.am: The new files added. sql/item.cc: Expression cache item (Item_cache_wrapper) added. Item_ref and Item_field fixed for correct usage of result field and fast resolwing in SP. sql/item.h: Expression cache item (Item_cache_wrapper) added. Item_ref and Item_field fixed for correct usage of result field and fast resolwing in SP. sql/item_cmpfunc.cc: Subquery cache added. sql/item_cmpfunc.h: Subquery cache added. sql/item_subselect.cc: Subquery cache added. sql/item_subselect.h: Subquery cache added. sql/item_sum.cc: Registration of subquery parameters added. sql/mysql_priv.h: subquery_cache optimization option added. sql/mysqld.cc: subquery_cache optimization option added. sql/opt_range.cc: Fix due to subquery cache. sql/opt_subselect.cc: Parameters of the function cahnged. sql/procedure.h: .h file guard added. sql/sql_base.cc: Registration of subquery parameters added. sql/sql_class.cc: Option to allow add indeces to temporary table. sql/sql_class.h: Item iterators added. Option to allow add indeces to temporary table. sql/sql_expression_cache.cc: Expression cache for caching subqueries added. sql/sql_expression_cache.h: Expression cache for caching subqueries added. sql/sql_lex.cc: Registration of subquery parameters added. sql/sql_lex.h: Registration of subqueries and subquery parameters added. sql/sql_select.cc: Subquery cache added. sql/sql_select.h: Subquery cache added. sql/sql_union.cc: A new parameter to the function added. sql/sql_update.cc: A new parameter to the function added. sql/table.cc: Procedures to manage temporarty tables index added. sql/table.h: Procedures to manage temporarty tables index added. storage/maria/ha_maria.cc: Fix of handler to allow destoy a table in case of error during the table creation. storage/maria/ha_maria.h: .h file guard added. storage/myisam/ha_myisam.cc: Fix of handler to allow destoy a table in case of error during the table creation.