Marko Mäkelä
358921ce32
MDEV-26938 Support descending indexes internally in InnoDB
...
This is loosely based on the InnoDB changes in
mysql/mysql-server@97fd8b1b69
that I had developed in 2015 or 2016.
For each B-tree key field, we will allow a flag ASC/DESC to be associated.
When PRIMARY KEY fields are internally appended to secondary indexes,
the ASC/DESC attribute will be inherited, so that covering index scans
will work as expected.
Note: Until the subsequent commit, the DESC attribute will be ignored
(no HA_REVERSE_SORT flag will be written to .frm files).
dict_field_t::descending: A new flag to denote descending order.
cmp_data(), cmp_dfield_dfield(): Add a new parameter descending.
cmp_dtuple_rec(), cmp_dtuple_rec_with_match(): Add a parameter "index".
dtuple_coll_eq(): Replaces dtuple_coll_cmp().
cmp_dfield_dfield_eq_prefix(): Replaces cmp_dfield_dfield_like_prefix().
dict_index_t::is_btree(): Check whether the index is a regular
B-tree index (not SPATIAL, FULLTEXT, or the ibuf.index,
or a corrupted index.
btr_cur_search_to_nth_level_func(): Only attempt to use
the adaptive hash index if index->is_btree().
This function may also be invoked on ibuf.index, and
cmp_dtuple_rec_with_match_bytes() will no longer work on ibuf.index
because it assumes that the index and record fields exactly match.
The ibuf.index is a special variadic index tree.
Thanks to Thirunarayanan Balathandayuthapani for fixing some bugs:
MDEV-27439, MDEV-27374/MDEV-27445.
2022-01-26 18:43:05 +01:00
..
2019-02-16 12:06:52 +02:00
2019-02-05 01:34:17 +01:00
2020-05-05 20:33:10 +03:00
2020-11-11 11:15:11 +02:00
2020-05-04 09:35:38 +05:30
2021-11-12 17:46:35 +05:30
2021-05-19 22:54:13 +02:00
2021-10-29 16:25:15 +03:00
2021-05-21 18:03:39 +03:00
2018-10-25 13:04:41 +03:00
2019-01-08 20:41:39 +05:30
2020-11-11 11:15:11 +02:00
2021-12-10 12:26:26 +02:00
2019-07-10 12:43:51 +05:30
2021-02-23 13:06:22 +01:00
2021-01-19 16:18:37 +05:30
2021-01-19 16:18:37 +05:30
2022-01-21 16:03:47 +02:00
2021-11-12 17:46:35 +05:30
2018-11-07 20:21:12 +02:00
2021-09-11 17:55:27 +03:00
2021-11-12 17:46:35 +05:30
2021-04-29 18:31:59 +03:00
2021-07-31 23:19:51 +02:00
2021-02-23 09:25:57 +01:00
2020-05-15 15:10:58 +03:00
2019-08-12 18:50:54 +03:00
2020-12-09 09:22:13 +02:00
2022-01-26 18:43:05 +01:00
2022-01-26 18:43:05 +01:00
2021-05-19 22:54:13 +02:00
2019-07-02 21:44:58 +03:00
2020-01-15 18:06:24 +01:00
2020-03-19 13:01:20 +02:00
2021-11-19 17:46:16 +02:00
2021-09-10 19:15:41 +03:00
2021-10-27 15:55:14 +02:00
2021-10-27 15:55:14 +02:00
2021-10-27 15:55:14 +02:00
2021-10-27 15:55:14 +02:00
2019-05-29 08:14:49 +03:00
2021-10-27 15:55:14 +02:00
2019-07-22 14:55:46 +03:00
2021-04-19 14:04:02 +10:00
2021-06-17 19:30:24 +02:00
2021-11-16 16:30:45 +02:00
2021-02-17 12:34:24 +02:00
2021-02-17 12:44:08 +02:00
2021-07-31 22:59:58 +02:00
2021-10-27 10:06:02 +03:00
2021-10-21 16:06:34 +03:00
2019-05-06 11:32:17 +00:00
2021-09-24 18:44:16 +05:30
2021-12-21 17:33:26 +02:00
2021-01-19 06:43:56 +03:00
2021-01-28 07:51:43 +02:00
2022-01-05 12:14:01 +02:00
2020-11-11 11:15:11 +02:00
2020-10-29 09:15:35 +02:00
2020-10-29 09:15:35 +02:00
2020-05-09 20:36:58 +02:00
2020-11-03 12:41:41 +02:00
2022-01-14 18:19:04 +02:00
2020-09-03 15:53:38 +03:00
2021-08-19 11:52:35 +03:00
2020-11-18 10:27:18 +02:00
2021-07-22 15:22:47 +10:00
2021-05-19 22:54:13 +02:00
2021-07-22 15:22:47 +10:00
2021-05-19 22:54:13 +02:00
2021-07-22 15:22:47 +10:00
2021-07-22 15:22:47 +10:00
2021-03-29 15:16:23 +03:00
2021-03-29 15:16:23 +03:00
2021-01-25 18:41:27 +02:00
2021-01-25 18:41:27 +02:00
2020-10-15 17:04:56 +03:00
2020-10-27 09:52:42 +02:00
2021-08-17 16:09:55 +03:00
2021-11-09 18:08:12 +05:30
2021-08-19 13:02:05 +03:00
2020-11-11 11:15:11 +02:00
2021-05-27 16:46:21 +02:00
2020-12-15 17:56:17 +02:00
2020-12-15 17:56:17 +02:00
2019-01-23 12:39:03 +01:00
2019-07-02 15:24:23 +03:00
2021-04-07 16:42:09 +05:30
2020-03-19 11:17:20 +02:00
2020-03-19 13:01:20 +02:00
2020-03-19 11:17:20 +02:00
2022-01-24 11:14:26 +11:00
2022-01-24 17:28:06 +11:00
2022-01-24 17:28:06 +11:00
2021-06-17 19:30:24 +02:00
2021-03-22 18:10:39 +11:00
2020-02-13 13:42:01 +02:00
2020-02-13 13:42:01 +02:00
2020-02-13 13:42:01 +02:00
2021-10-26 17:07:46 +02:00
2021-06-17 19:30:24 +02:00
2020-12-15 17:56:18 +02:00
2019-05-23 10:25:12 +03:00
2021-07-06 15:29:00 +10:00
2020-01-15 18:06:24 +01:00
2021-08-31 13:55:02 +03:00
2020-08-21 14:48:53 +03:00
2019-08-23 08:06:17 +03:00
2021-08-31 13:55:02 +03:00
2020-01-15 18:06:24 +01:00
2020-08-04 12:51:59 +03:00
2020-04-19 17:33:51 +03:00
2021-07-22 15:22:47 +10:00
2020-06-05 12:35:46 +03:00
2020-01-17 14:27:28 +02:00
2020-10-21 03:09:29 +03:00
2019-04-02 11:03:28 +03:00
2019-09-01 19:17:35 +03:00
2020-01-15 18:06:24 +01:00
2020-02-13 13:42:01 +02:00
2020-02-13 13:42:01 +02:00
2021-05-19 06:48:36 +02:00
2021-11-09 08:50:33 +02:00
2020-02-13 13:42:01 +02:00
2020-02-18 10:54:28 +02:00
2020-03-17 16:28:16 +02:00
2021-09-30 10:38:44 +03:00
2021-06-14 17:03:19 +03:00
2020-07-30 09:24:36 +03:00
2020-06-14 19:39:42 +03:00
2020-02-13 13:42:01 +02:00
2020-06-05 12:35:46 +03:00
2020-08-04 12:51:59 +03:00
2020-02-13 13:42:01 +02:00
2019-05-23 10:25:12 +03:00
2020-11-11 11:15:11 +02:00
2019-11-20 19:48:03 +07:00
2020-11-11 11:15:11 +02:00
2019-11-20 19:48:03 +07:00
2020-12-19 11:44:42 +01:00
2019-08-19 11:54:26 +03:00
2020-04-04 00:52:54 +03:00
2020-06-12 09:17:51 +05:30
2020-10-26 17:09:01 +02:00
2020-12-15 17:56:17 +02:00
2020-12-15 17:56:17 +02:00
2021-06-14 12:38:56 +03:00
2021-08-31 13:54:44 +03:00
2021-05-21 18:03:39 +03:00
2019-04-25 16:05:20 +03:00
2019-10-24 21:20:53 +03:00
2021-06-09 17:06:07 +03:00
2020-12-11 17:33:44 +03:00
2020-04-01 11:19:12 +03:00
2020-04-28 16:09:07 +03:00
2021-03-16 15:20:26 +02:00
2020-01-17 14:27:28 +02:00
2020-04-14 18:43:03 +03:00
2020-11-11 11:15:11 +02:00
2021-08-31 13:55:02 +03:00
2019-11-20 19:48:03 +07:00
2021-08-31 13:55:02 +03:00
2019-11-20 19:48:03 +07:00
2020-08-13 07:38:35 +03:00
2021-10-26 09:54:37 +03:00
2019-10-30 16:47:43 +01:00
2019-05-29 08:28:15 +03:00
2021-11-16 16:30:45 +02:00
2021-08-23 09:13:55 +03:00
2021-10-26 17:07:46 +02:00
2019-05-23 10:25:12 +03:00
2019-10-30 21:33:01 +01:00
2020-02-07 16:01:31 +05:30
2019-09-26 13:03:40 +03:00
2020-10-15 17:04:56 +03:00
2020-08-21 19:18:34 +03:00
2021-08-31 13:55:02 +03:00
2019-11-20 13:18:31 +03:00
2021-06-09 20:19:21 +05:30
2019-09-01 19:17:35 +03:00
2019-09-01 19:17:35 +03:00
2021-08-31 13:55:02 +03:00
2021-11-16 16:30:45 +02:00
2021-10-26 17:07:46 +02:00
2022-01-21 16:03:47 +02:00
2021-11-16 16:30:45 +02:00
2021-08-31 13:55:02 +03:00
2022-01-26 18:43:05 +01:00
2021-08-31 13:55:02 +03:00
2021-01-27 16:54:38 +02:00
2020-02-13 13:42:01 +02:00
2019-12-02 14:35:10 +02:00
2020-11-11 11:15:11 +02:00
2020-11-11 11:15:11 +02:00
2021-08-02 10:11:41 +02:00
2020-11-11 11:15:11 +02:00
2020-11-11 11:15:11 +02:00
2020-12-21 10:48:51 +02:00
2020-11-11 11:15:11 +02:00
2019-08-29 08:23:19 +03:00
2020-01-15 18:06:24 +01:00
2019-02-19 16:12:00 +02:00
2020-01-15 18:06:24 +01:00
2021-08-31 13:55:02 +03:00
2019-05-23 10:25:12 +03:00
2020-11-11 11:15:11 +02:00
2019-08-29 18:27:01 +03:00
2022-01-21 16:03:47 +02:00
2021-11-25 18:51:12 +02:00
2020-10-26 17:09:01 +02:00
2021-02-15 10:19:57 +02:00
2021-01-05 19:19:27 +10:00
2019-09-10 16:14:50 +03:00
2019-07-22 17:33:08 +03:00
2022-01-21 16:03:47 +02:00
2021-08-31 13:55:02 +03:00
2021-10-26 17:07:46 +02:00
2019-07-18 17:01:59 +03:00
2021-08-31 13:55:02 +03:00
2022-01-12 17:37:06 +05:30
2020-11-11 11:15:11 +02:00
2021-09-10 17:16:18 +03:00
2021-07-26 14:51:19 +03:00
2021-08-31 13:55:02 +03:00
2021-11-17 14:49:12 +02:00
2019-02-13 17:39:05 +02:00
2020-07-20 14:15:56 +03:00
2022-01-21 16:03:47 +02:00
2021-06-22 17:52:54 +03:00
2020-05-26 20:27:13 +05:30
2020-11-11 11:15:11 +02:00
2020-10-29 13:38:38 +02:00
2021-08-31 13:55:02 +03:00
2021-05-03 14:34:48 +03:00
2019-03-20 19:18:21 +01:00
2019-01-09 19:50:48 +02:00
2019-05-29 22:17:00 +03:00
2019-05-29 08:14:49 +03:00
2020-12-03 15:28:53 +02:00
2021-07-01 10:04:47 +03:00
2022-01-18 15:18:42 +03:00
2022-01-21 16:03:47 +02:00
2019-04-01 19:47:24 +03:00
2022-01-21 16:03:47 +02:00
2022-01-21 16:03:47 +02:00
2022-01-21 16:03:47 +02:00
2022-01-21 16:03:47 +02:00
2019-07-05 17:02:21 +03:00
2020-03-27 03:58:32 +02:00
2021-10-11 12:26:43 +03:00
2021-10-11 12:26:43 +03:00
2019-05-29 08:28:15 +03:00
2022-01-21 16:03:47 +02:00
2021-08-31 13:55:02 +03:00
2021-04-24 09:26:49 +03:00
2020-07-31 11:54:35 +03:00
2021-02-18 18:20:50 +02:00
2021-11-01 13:35:47 +02:00
2019-04-29 15:11:06 +03:00
2021-04-08 16:51:37 +10:00
2021-08-31 13:55:02 +03:00
2020-10-15 17:04:56 +03:00
2018-12-09 20:49:06 +02:00
2019-06-24 17:07:20 +03:00
2022-01-04 09:26:38 +02:00
2021-06-24 15:00:34 +03:00
2020-11-11 11:15:11 +02:00
2019-09-06 17:16:40 +03:00
2020-11-11 11:15:11 +02:00
2022-01-21 16:03:47 +02:00
2021-05-21 18:03:40 +03:00
2021-05-21 18:03:40 +03:00
2020-01-07 11:02:12 +02:00
2021-04-08 16:51:37 +10:00
2021-05-24 11:38:13 +05:30
2019-10-30 23:14:44 +01:00
2020-10-27 19:09:20 +03:00
2019-07-16 18:39:21 +03:00
2020-10-26 17:09:01 +02:00
2019-02-19 18:50:19 +02:00
2020-11-11 11:15:11 +02:00
2021-06-09 17:06:07 +03:00
2020-06-08 12:55:04 +03:00
2020-11-11 11:15:11 +02:00
2020-11-11 11:15:11 +02:00
2020-11-11 11:15:11 +02:00
2022-01-04 09:26:38 +02:00
2021-10-18 18:03:12 +03:00
2022-01-21 16:03:47 +02:00
2021-06-09 17:06:07 +03:00
2019-08-14 11:58:22 +03:00
2019-09-06 11:53:10 +02:00
2019-11-20 19:48:03 +07:00
2019-02-19 18:50:19 +02:00
2019-08-16 09:56:43 +03:00
2020-10-21 03:09:29 +03:00
2021-09-24 08:24:03 +03:00
2021-09-30 09:04:43 +03:00
2021-10-19 08:46:16 +03:00
2021-10-21 16:06:34 +03:00
2019-04-26 15:31:31 +03:00
2020-05-15 22:54:05 +03:00
2021-06-09 17:06:07 +03:00