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/main/negation_elimination.result | |
| 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/main/negation_elimination.result')
0 files changed, 0 insertions, 0 deletions
