diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2019-04-27 20:41:31 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2019-04-27 20:41:31 +0300 |
commit | 4d59f45260547b3230f177498b6fa07a12647fdc (patch) | |
tree | c39c6757a7a7ddbc4849769b288c0131da74803d /sql/item_subselect.cc | |
parent | acf6f92aa936fbfe7524617ae57d011ab8f1f96d (diff) | |
parent | 00377147e3029b982cbc29d3f4477362c6e6fdb4 (diff) | |
download | mariadb-git-4d59f45260547b3230f177498b6fa07a12647fdc.tar.gz |
Merge 10.2 into 10.3
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r-- | sql/item_subselect.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index cd411c5d4c1..99bba5a98d5 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -5844,12 +5844,16 @@ Ordered_key::cmp_keys_by_row_data_and_rownum(Ordered_key *key, } -void Ordered_key::sort_keys() +bool Ordered_key::sort_keys() { + if (tbl->file->ha_rnd_init_with_error(0)) + return TRUE; my_qsort2(key_buff, (size_t) key_buff_elements, sizeof(rownum_t), (qsort2_cmp) &cmp_keys_by_row_data_and_rownum, (void*) this); /* Invalidate the current row position. */ cur_key_idx= HA_POS_ERROR; + tbl->file->ha_rnd_end(); + return FALSE; } @@ -6297,7 +6301,8 @@ subselect_rowid_merge_engine::init(MY_BITMAP *non_null_key_parts, /* Sort the keys in each of the indexes. */ for (uint i= 0; i < merge_keys_count; i++) - merge_keys[i]->sort_keys(); + if (merge_keys[i]->sort_keys()) + return TRUE; if (init_queue(&pq, merge_keys_count, 0, FALSE, subselect_rowid_merge_engine::cmp_keys_by_cur_rownum, NULL, |