diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2021-12-15 15:12:06 +0300 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2021-12-15 22:43:24 +0300 |
commit | 136bcfdf7504092e7e49eba95e8be010da44c594 (patch) | |
tree | f09a88d3a9e53ab039a840a14cbee0ed57c9e944 /sql/sql_select.cc | |
parent | f1ca949f2bcb3a0bd32fbb2c0eed7ba7dd1e099f (diff) | |
download | mariadb-git-bb-10.2-mdev2720.tar.gz |
MDEV-27270: Wrong query plan with Range Checked for Each Record and ORDER BY ... LIMITbb-10.2-mdev2720
Followup to fix for MDEV-25858: When test_if_skip_sort_order() decides
to use an index to satisfy ORDER BY ... LIMIT clause, it should
disable "Range Checked for Each Record" optimization.
Do this in all cases.
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r-- | sql/sql_select.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 47422116e38..3079145c1b9 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -21986,7 +21986,15 @@ check_reverse_order: } } else if (select && select->quick) + { + /* Cancel "Range checked for each record" */ + if (tab->use_quick == 2) + { + tab->use_quick= 1; + tab->read_first_record= join_init_read_record; + } select->quick->need_sorted_output(); + } tab->read_record.unlock_row= (tab->type == JT_EQ_REF) ? join_read_key_unlock_row : rr_unlock_row; |