mariadb/storage/myisammrg
Monty f36ca142f7 Added page_range to records_in_range() to improve range statistics
Prototype change:
-  virtual ha_rows records_in_range(uint inx, key_range *min_key,
-                                   key_range *max_key)
+  virtual ha_rows records_in_range(uint inx, const key_range *min_key,
+                                   const key_range *max_key,
+                                   page_range *res)

The handler can ignore the page_range parameter. In the case the handler
updates the parameter, the optimizer can deduce the following:
- If previous range's last key is on the same block as next range's first
  key
- If the current key range is in one block
- We can also assume that the first and last block read are cached!
  This can be used for a better calculation of IO seeks when we
  estimate the cost of a range index scan.

The parameter is fully implemented for MyISAM, Aria and InnoDB.
A separate patch will update handler::multi_range_read_info_const() to
take the benefits of this change and also remove the double
records_in_range() calls that are not anymore needed.
2020-03-27 03:54:45 +02:00
..
mysql-test/storage_engine MDEV-19236 Improve error message for ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE 2019-04-12 12:28:09 +03:00
CMakeLists.txt Update FSF Address 2019-05-11 21:29:06 +03:00
ha_myisammrg.cc Added page_range to records_in_range() to improve range statistics 2020-03-27 03:54:45 +02:00
ha_myisammrg.h Added page_range to records_in_range() to improve range statistics 2020-03-27 03:54:45 +02:00
myrg_close.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_create.c Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
myrg_def.h perfschema memory related instrumentation changes 2020-03-10 19:24:22 +01:00
myrg_delete.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_extra.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_info.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_locking.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_open.c Merge 10.4 into 10.5 2020-03-17 07:58:41 +02:00
myrg_panic.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_queue.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_range.c Added page_range to records_in_range() to improve range statistics 2020-03-27 03:54:45 +02:00
myrg_records.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_rfirst.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_rkey.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_rlast.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_rnext.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_rnext_same.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_rprev.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_rrnd.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_rsame.c Update FSF Address 2019-05-11 21:29:06 +03:00
myrg_static.c perfschema memory related instrumentation changes 2020-03-10 19:24:22 +01:00
myrg_update.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
myrg_write.c MDEV-19955 make argument of handler::ha_write_row() const 2019-07-05 13:14:19 +03:00