mirror of
https://github.com/MariaDB/server.git
synced 2025-08-27 04:41:35 +02:00
![]() Wrong "fastpath" boundary conditions. The right boundary is open, the left boundary is closed. The condition range_value[loc_hist_id - 1] as left boundary must be checked with <= operator. The same with the right boundary range_value[loc_hist_id] as the correct way is to check it with > operator, the right boundary check was rewritten for clear understanding: ts < range_value[loc_hist_id] The below code confirms closed endpoint type for left boundary: if (range_value[loc_hist_id] <= ts) min_hist_id= loc_hist_id + 1; Also the endpoint type (closed for left, open for right) is confirmed by vers_set_hist_part() for DML: else if (vers_info->interval.is_set() && vers_info->hist_part->range_value <= thd->query_start()) and here (right boundary, rewritten for clarity): if (thd->query_start() < next->range_value) { error= false; break; } |
||
---|---|---|
.. | ||
r | ||
t | ||
common.inc | ||
common.opt | ||
common_finish.inc | ||
disabled.def | ||
engines.combinations | ||
engines.inc | ||
innodb.combinations | ||
innodb.inc | ||
key_type.combinations | ||
key_type.inc | ||
wait_system_clock.inc |