summaryrefslogtreecommitdiff
path: root/mysql-test/main/join.test
Commit message (Collapse)AuthorAgeFilesLines
* Merge 10.3 into 10.4Marko Mäkelä2021-11-291-0/+6
|\
| * Merge 10.2 into 10.3Marko Mäkelä2021-11-291-0/+6
| |
* | Merge 10.3 into 10.4Marko Mäkelä2020-05-051-1/+1
|\ \ | |/
| * MDEV-21480: Unique key using ref access though eq_ref access can be usedVarun Gupta2020-05-011-1/+1
| | | | | | | | | | | | For a unique key if all the keyparts are NOT NULL or the predicates involving the keyparts is NULL rejecting, then we can use EQ_REF access instead of ref access with the unique key
* | Merge branch '10.3' into 10.4Oleksandr Byelkin2020-01-251-0/+65
|\ \ | |/
| * MDEV-21383: Possible range plan is not used under certain conditionsbb-10.3-mdev21383Sergei Petrunia2020-01-241-0/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Variant 2 of the fix: collect the attached conditions] Problem: make_join_select() has a section of code which starts with "We plan to scan all rows. Check again if we should use an index." the code in that section will [unnecessarily] re-run the range optimizer using this condition: condition_attached_to_current_table AND current_table's_ON_expr Note that the original invocation of range optimizer in make_join_statistics was done using the whole select's WHERE condition. Taking the whole select's WHERE condition and using multiple-equalities allowed the range optimizer to infer more range restrictions. The fix: - Do range optimization using a condition that is an AND of this table's condition and all of the previous tables' conditions. - Also, fix the range optimizer to prefer SEL_ARGs with type=KEY_RANGE over SEL_ARGS with type=MAYBE_KEY, regardless of the key part. Computing key_and( SEL_ARG(type=MAYBE_KEY key_part=1), SEL_ARG(type=KEY_RANGE, key_part=2) ) will now produce the SEL_ARG with type=KEY_RANGE.
* | Merge branch '10.3' into 10.4Sergei Golubchik2019-09-061-0/+1
|\ \ | |/
| * Merge branch '10.2' into 10.3Monty2019-09-031-0/+1
| |
| * Merge 10.2 into 10.3Marko Mäkelä2019-08-211-0/+59
| |
* | MDEV-20265 Unknown column in field listIgor Babaev2019-08-301-0/+59
| | | | | | | | | | | | | | | | | | This patch corrects the fix of the patch for mdev-19421 that resolved the problem of parsing some embedded join expressions such as t1 join t2 left join t3 on t2.a=t3.a on t1.a=t2.a. Yet the patch contained a bug that prevented proper context analysis of the queries where such expressions were used together with comma separated table references in from clauses.
* | Merge branch '10.3' into 10.4Oleksandr Byelkin2019-07-281-0/+404
|\ \ | |/
| * Merge branch '10.2' into 10.3Oleksandr Byelkin2019-07-261-0/+404
| |
* | Merge 10.3 into 10.4Marko Mäkelä2019-06-121-0/+30
|\ \ | |/
| * MDEV-19600: The optimizer should be able to produce rows=1 estimate for ↵bb-10.3-mdev19600Sergei Petrunia2019-06-051-0/+30
| | | | | | | | | | | | | | unique index with NULLable columns Modify best_access_path() to produce rows=1 estimate for null-rejecting lookups on unique NULL keys.
* | Merge branch '10.4' into bb-10.4-mdev16188Igor Babaev2019-02-031-1/+1
|\ \
| * | MDEV-17658 change the structure of mysql.user tableSergei Golubchik2018-12-121-1/+1
| |/ | | | | | | | | | | Implement User_table_json. Fix scripts to use mysql.global_priv. Fix tests.
* | MDEV-16188 Use in-memory PK filters built from range index scansIgor Babaev2019-02-031-0/+1
|/ | | | | | | | | | | | | | | | | | | | | | This patch contains a full implementation of the optimization that allows to use in-memory rowid / primary filters built for range   conditions over indexes. In many cases usage of such filters reduce   the number of disk seeks spent for fetching table rows. In this implementation the choice of what possible filter to be applied   (if any) is made purely on cost-based considerations. This implementation re-achitectured the partial implementation of the feature pushed by Galina Shalygina in the commit 8d5a11122c32f4d9eb87536886c6e893377bdd07. Besides this patch contains a better implementation of the generic   handler function handler::multi_range_read_info_const() that takes into account gaps between ranges when calculating the cost of range index scans. It also contains some corrections of the implementation of the handler function records_in_range() for MyISAM. This patch supports the feature for InnoDB and MyISAM.
* Merge branch '10.2' into 10.3Sergei Golubchik2018-09-281-1/+2
|
* Merge 10.2 into 10.3Marko Mäkelä2018-08-031-0/+53
|
* Create 'main' test directory and move 't' and 'r' thereMichael Widenius2018-03-291-0/+1202