summaryrefslogtreecommitdiff
path: root/sql/sql_select.h
diff options
context:
space:
mode:
authorOleg Smirnov <olernov@gmail.com>2022-08-01 21:54:32 +0700
committerOleg Smirnov <olernov@gmail.com>2022-08-01 21:54:38 +0700
commit210c9ab4480e13c18e6cb452dda5b8d07cc297a7 (patch)
treee34aaedee309a60f44d69f56d1e0ad232e6d2f7c /sql/sql_select.h
parentebbd5ef6e2902a51a46e47dbb8a8667593cb25e7 (diff)
downloadmariadb-git-bb-10.4-MDEV-27624.tar.gz
MDEV-27624 Wrong result for left join, 'not exists' and join buffersbb-10.4-MDEV-27624
Cause: When linked join buffers are employed to process nested outer joins there is a problem with applying the 'not exists' optimization: the match flag used for outer joins is not propagated among linked join buffers. This leads to incorrect results when the 'not exists' optimization is applied to a nested outer join. Solution: Disable applying the 'not exists' optimization for linked join buffers
Diffstat (limited to 'sql/sql_select.h')
-rw-r--r--sql/sql_select.h6
1 files changed, 0 insertions, 6 deletions
diff --git a/sql/sql_select.h b/sql/sql_select.h
index 9a6237f00a6..4afb845afe4 100644
--- a/sql/sql_select.h
+++ b/sql/sql_select.h
@@ -572,12 +572,6 @@ typedef struct st_join_table {
{
return is_first_inner_for_outer_join() || first_sj_inner_tab == this ;
}
- bool check_only_first_match()
- {
- return is_inner_table_of_semi_join_with_first_match() ||
- (is_inner_table_of_outer_join() &&
- table->reginfo.not_exists_optimize);
- }
bool is_last_inner_table()
{
return (first_inner && first_inner->last_inner == this) ||