This patch improves the selection of index to use to apply row-based
DELETE and UPDATE events on tables with no primary key (original code
picks the first index unconditionally).
If ANALYZE TABLE is done, the index cardinalities will be compared and
the best index will be used.
Fixes some problems in the original patch:
- Without ANALYZE TABLE, rec_per_key statistics is not available; in this
case the original patch could choose a really bad index, even ignoring
a primary key.
- The original patch did not consider multi-column keys correctly, and
could thus pick a less desirable single-column key over a good
multi-column index.
Also fixes Bug#58997, and adds test cases.