diff options
author | Igor Babaev <igor@askmonty.org> | 2011-05-27 15:20:19 -0700 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2011-05-27 15:20:19 -0700 |
commit | d86ad1861a57558e63dc68bf372eff6bdb22cb6d (patch) | |
tree | 38cf953c068132ff125bdab7e1e0c2b4a27f85c6 /sql | |
parent | deb3b9a17498d101468fc12a633245fc74730133 (diff) | |
download | mariadb-git-d86ad1861a57558e63dc68bf372eff6bdb22cb6d.tar.gz |
Backported the test case for bug 43617 fixed by the patch for bug 42580.
Backported the test case for bug 49906 fixed by the patch for LP bug 625841.
Slightly optimized the code of the fix for LP bug 625841.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/filesort.cc | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sql/filesort.cc b/sql/filesort.cc index 6e3bf27afcc..b9cda236b0c 100644 --- a/sql/filesort.cc +++ b/sql/filesort.cc @@ -547,12 +547,11 @@ static ha_rows find_all_keys(SORTPARAM *param, SQL_SELECT *select, /* Temporary set for register_used_fields and register_field_in_read_map */ sort_form->read_set= &sort_form->tmp_set; register_used_fields(param); - if (select && select->cond) - select->cond->walk(&Item::register_field_in_read_map, 1, - (uchar*) sort_form); - if (select && select->pre_idx_push_select_cond) - select->pre_idx_push_select_cond->walk(&Item::register_field_in_read_map, - 1, (uchar*) sort_form); + Item *sort_cond= !select ? + 0 : !select->pre_idx_push_select_cond ? + select->cond : select->pre_idx_push_select_cond; + if (sort_cond) + sort_cond->walk(&Item::register_field_in_read_map, 1, (uchar*) sort_form); sort_form->column_bitmaps_set(&sort_form->tmp_set, &sort_form->tmp_set, &sort_form->tmp_set); |