mirror of
https://github.com/MariaDB/server.git
synced 2026-04-23 00:35:32 +02:00
Fixed LP bug #885168.
The call of the virtual function cancel_pushed_idx_cond in the code of the function test_if_skip_sort_order was misplaced when backporting the fix for bug 58816.
This commit is contained in:
parent
c1ebb566b3
commit
928e94fb98
7 changed files with 133 additions and 6 deletions
|
|
@ -1666,7 +1666,7 @@ public:
|
|||
handler(handlerton *ht_arg, TABLE_SHARE *share_arg)
|
||||
:table_share(share_arg), table(0),
|
||||
estimation_rows_to_insert(0), ht(ht_arg),
|
||||
ref(0), in_range_check_pushed_down(FALSE),
|
||||
ref(0), end_range(NULL), in_range_check_pushed_down(FALSE),
|
||||
key_used_on_scan(MAX_KEY), active_index(MAX_KEY),
|
||||
ref_length(sizeof(my_off_t)),
|
||||
ft_handler(0), inited(NONE),
|
||||
|
|
|
|||
|
|
@ -17932,8 +17932,10 @@ check_reverse_order:
|
|||
condition are not relevant anymore
|
||||
*/
|
||||
if (tab->select && tab->select->pre_idx_push_select_cond)
|
||||
{
|
||||
tab->set_cond(tab->select->pre_idx_push_select_cond);
|
||||
|
||||
tab->table->file->cancel_pushed_idx_cond();
|
||||
}
|
||||
/*
|
||||
TODO: update the number of records in join->best_positions[tablenr]
|
||||
*/
|
||||
|
|
@ -17994,6 +17996,9 @@ skipped_filesort:
|
|||
}
|
||||
if (orig_cond_saved && !changed_key)
|
||||
tab->set_cond(orig_cond);
|
||||
if (!no_changes && changed_key && table->file->pushed_idx_cond)
|
||||
table->file->cancel_pushed_idx_cond();
|
||||
|
||||
DBUG_RETURN(1);
|
||||
|
||||
use_filesort:
|
||||
|
|
@ -18004,10 +18009,7 @@ use_filesort:
|
|||
select->quick= save_quick;
|
||||
}
|
||||
if (orig_cond_saved)
|
||||
{
|
||||
tab->table->file->cancel_pushed_idx_cond();
|
||||
tab->set_cond(orig_cond);
|
||||
}
|
||||
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue