mirror of
https://github.com/MariaDB/server.git
synced 2026-02-09 20:28:41 +01:00
columns Issue: - Purge thread attempts to purge a secondary index record that is not delete-marked. Root Cause: - When a secondary index includes a virtual column whose v_pos is greater than the number of fields in the clustered index record, the virtual column is incorrectly skipped while reading from the undo record. - This leads the purge logic to incorrectly assume it is safe to purge the secondary index record. - The code also confuses the nth virtual column with the nth stored column when writing ordering columns at the end of the undo record. Fix: - In trx_undo_update_rec_get_update(): Skip a virtual column only when v_pos == FIL_NULL, not when v_pos is greater than the number of fields. - In trx_undo_page_report_modify(): Ensure ordering columns are written based on the correct stored-column positions, without confusing them with virtual-column positions. |
||
|---|---|---|
| .. | ||
| trx0i_s.cc | ||
| trx0purge.cc | ||
| trx0rec.cc | ||
| trx0roll.cc | ||
| trx0rseg.cc | ||
| trx0sys.cc | ||
| trx0trx.cc | ||
| trx0undo.cc | ||