|
As noted in MDEV-31558, a covering secondary index read in InnoDB would look up the clustered index record twice and retrieve the matching version. In the test innodb.mvcc_secondary we have a table with 2 versions of 1 row, and the first SELECT statement would construct the old version of the clustered index not once, but twice.
MDEV-20301 replaced row_sel_get_clust_rec_for_mysql() with Row_sel_get_clust_rec_for_mysql::operator(), which adds some caching. It missed an opportunity to remove the call row_sel_sec_rec_is_for_clust_rec() and to perform those checks as part of the loop that invokes row_sel_build_prev_vers_for_mysql().
|