The original code was mostly rule based and preferred clustered or
covering indexed independent of cost.
There where a few test changes:
- Some test changed from using filesort to index or table scan. This
happened when most of the rows had to be sorted and the ORDER BY could
use covering or a clustered index (innodb_mysql, create_spatial_index).
- Some test changed range to filesort. This where mainly because the range
was scanning most of the rows or using index scan + row lookup and
filesort with table scan is cheaper. (order_by).
- Change in join_cache was because sorting 2 rows is faster than retrieving
10 rows.
- In selectivity_innodb.test one test changed to use a cheaper index.
Imported the following tests from Oracle MySQL:
* mysql-test/t/locking_clause.test
* mysql-test/suite/innodb/t/skip_locked_nowait.test
* mysql-test/t/locking_part.test
Ported to MariaDB by Daniel Black, changes include:
* Removed 'FOR SHARE OF /FOR UPDATE OF' tests that are part of
MDEV-17514 (not yet implemented)
* mysql-test/t/locking_clause.test removes broken the limit test (outstanding MDEV-25244) bug.
* mysql-test/suite/innodb/t/skip_locked_nowait.test - removed high
priority transactions
* mysql-test/t/locking_part.test imported to mysql-test/suite/innodb/t/partition_locking.test
changed ER_LOCK_NOWAIT -> ER_LOCK_WAIT_TIMEOUT consistent with already
implemented WAIT/NOWAIT feature. Changed "FOR SHARE SKIP LOCKED" ->
"LOCK IN SHARE MODE SKIP LOCKED".