maria:bb-10.8-mdev26996-no-sel-arg-ascending

Last commit made on 2021-12-20
Get this branch:
git clone -b bb-10.8-mdev26996-no-sel-arg-ascending https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.8-mdev26996-no-sel-arg-ascending
Repository:
lp:maria

Recent commits

59af76e... by Sergey Petrunia

Reverse-ordered indexes: remove SEL_ARG::is_ascending

Get the information from the array of KEY_PART structures that describes
the [pseudo-]index that is being analyzed.

de44263... by Sergey Petrunia

MDEV-26996: Support descending indexes in the range optimizer

- Code cleanup
- Disable "Using index for GROUP BY" over indexes with DESC keyparts

c95270d... by Sergey Petrunia

Descending indexes code exposed a gap in fix for MDEV-25858.

Extend the fix for MDEV-25858 to handle non-reverse-ordered ORDER BY:

If test_if_skip_sort_order() decides to use an index to produce rows
in the required ordering, it should disable "Range Checked for Each Record".

The fix needs to be backported to earlier versions.

d3ca85d... by Sergey Petrunia

MDEV-26996: Support descending indexes in the range optimizer

Make the Range Optimizer support descending index key parts.

We follow the approach taken in MySQL-8.

See HowRangeOptimizerHandlesDescKeyparts for the description.

b5ec3e3... by Sergei Golubchik

MDEV-26938 Support descending indexes internally in InnoDB (server part)

* preserve DESC index property in the parser
* store it in the frm (only for HA_KEY_ALG_BTREE)
* read it from the frm
* show it in SHOW CREATE
* skip DESC indexes in opt_range.cc and opt_sum.cc
* ORDER BY test

52a9d82... by Marko Mäkelä

MDEV-26938 Support descending indexes internally in InnoDB

This is loosely based on the InnoDB changes in
mysql/mysql-server@97fd8b1b6993340b361fa7f85da86a308f0b5e0c
that I had developed in 2015 or 2016.

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().

FIXME: innodb_fts.create fails to return errors because
the HA_REVERSE_SORT flag is not being written to the .frm file
and will be lost in some CREATE TABLE and ALTER TABLE operations.

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.

ccdf571... by Marko Mäkelä

Merge 10.7 into 10.8

979b23d... by Marko Mäkelä

Add forgotten changes to the parent commit

978116d... by Marko Mäkelä

Merge 10.7 into 10.8

28b27b9... by Marko Mäkelä

Cleanup: Remove some ib::logger in recovery messages