mariadb/storage/innobase
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
..
btr MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
buf MDEV-27314 InnoDB Buffer Pool Resize output cleanup 2022-01-24 11:14:26 +11:00
data MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
dict MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
eval MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
fil MDEV-27199: Remove FIL_PAGE_FILE_FLUSH_LSN 2022-01-21 16:16:32 +02:00
fsp MDEV-14425 Improve the redo log for concurrency 2022-01-21 16:03:47 +02:00
fts MDEV-27158: humanize the bytes in innodb info/error messages 2022-01-18 14:20:59 +02:00
fut MDEV-27058: Reduce the size of buf_block_t and buf_page_t 2021-11-18 17:47:19 +02:00
gis MDEV-27058: Reduce the size of buf_block_t and buf_page_t 2021-11-18 17:47:19 +02:00
ha MDEV-22871: Remove pointer indirection for InnoDB hash_table_t 2020-06-18 14:16:01 +03:00
handler MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
ibuf MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
include MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
lock MDEV-27025 insert-intention lock conflicts with waiting ORDINARY lock 2022-01-18 15:18:42 +03:00
log MDEV-27199: Remove FIL_PAGE_FILE_FLUSH_LSN 2022-01-21 16:16:32 +02:00
mem MDEV-27058: Reduce the size of buf_block_t and buf_page_t 2021-11-18 17:47:19 +02:00
mtr MDEV-14425 Improve the redo log for concurrency 2022-01-21 16:03:47 +02:00
mysql-test/storage_engine
os MDEV-14425 fix inadverent changes on Windows 2022-01-26 13:28:10 +01:00
page MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
pars MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
que MDEV-25919 preparation: Various cleanup 2021-08-31 13:54:20 +03:00
read Merge branch '10.3' into 10.4 2021-07-31 22:59:58 +02:00
rem MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
row MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
srv MDEV-27199: Remove FIL_PAGE_FILE_FLUSH_LSN 2022-01-21 16:16:32 +02:00
sync MDEV-26769 InnoDB does not support hardware lock elision 2021-10-22 12:38:45 +03:00
trx MDEV-14425 Improve the redo log for concurrency 2022-01-21 16:03:47 +02:00
unittest Merge 10.5 into 10.6 2021-10-21 16:06:34 +03:00
ut MDEV-27158: humanize the bytes in innodb info/error messages 2022-01-18 14:20:59 +02:00
.clang-format-old switch off storage/innobase/.clang-format: InnoDB uses a common formatting style for all new code 2021-03-17 11:01:15 +03:00
CMakeLists.txt MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
COPYING.Google
COPYING.Percona
innodb.cmake MDEV-12933 sort out the compression library chaos 2021-10-27 15:55:14 +02:00
plugin_exports