diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2020-04-30 01:25:11 +0300 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2020-04-30 01:25:11 +0300 |
commit | 793b100cc01228f01ead841d6c45f9e2b07786f9 (patch) | |
tree | 4b5d43df2d3ca1b0e8ae701e81410267cfbadb11 /mysql-test/lib/mtr_cases.pm | |
parent | 7f03a93348ebc1b13b444f98533bdf79840d80b8 (diff) | |
download | mariadb-git-bb-10.4-mdev22377.tar.gz |
MDEV-22377: Subquery in an [UPDATE] query uses full scan instead of rangebb-10.4-mdev22377
When doing IN->EXISTS rewrite, Item_in_subselect::inject_in_to_exists_cond
injects equalities into subquery's WHERE condition.
The problem is that build_equal_items() has already been called for the
subquery's WHERE, and tampering with the WHERE condition can prevent
equality propagation from working.
If the subquery's WHERE is an Item_cond_and with multiple equalities:
- Item_equal objects form a suffix sub-list of the list in WHERE's
Item_cond_and::list. The suffix is stored in
JOIN::cond_equal->current_level.
- Item_cond_and::m_cond_equal must also be preserved.
This patch makes inject_in_to_exists_cond() not to break these properties
Diffstat (limited to 'mysql-test/lib/mtr_cases.pm')
0 files changed, 0 insertions, 0 deletions