mariadb/storage/example
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 MDEV-399 Combinations defined in the base suite cannot be skipped by overlay 2012-08-01 19:57:36 +02:00
CMakeLists.txt Update FSF Address 2019-05-11 21:29:06 +03:00
ha_example.cc Added page_range to records_in_range() to improve range statistics 2020-03-27 03:54:45 +02:00
ha_example.h Added page_range to records_in_range() to improve range statistics 2020-03-27 03:54:45 +02:00