-
Allen lai authored
CLUST REC NOT FOUND FOR SEC IDX REC rb://1230 Approved by Marko This is basically address an issue that rows are skipped for primary index, but built into secondary index during online table rebuild. As bug described, row_merge_skip_rec() is called for primary index, but secondary index is still built. So the simple fix is to remove such row_merge_skip_rec() check when we insert row to index, so that they can be dropped altogether by online log application. However, the row_merge_skip_rec() is added mainly to address the BLOB issue, since BLOB can be dropped for rollback operation. To deal with it,we will need to log enough prefix so that any prefix index on blob data can be built even if the BLOB is dropped. In this implementation, we logged the row_ext_t for any such rows during its rollback drop, of course, only for dynamic and compressed table. And we will reconstruct a valid row_ext_t when we actually delete the entry in primary index as well as in secondary index.
Allen lai authoredCLUST REC NOT FOUND FOR SEC IDX REC rb://1230 Approved by Marko This is basically address an issue that rows are skipped for primary index, but built into secondary index during online table rebuild. As bug described, row_merge_skip_rec() is called for primary index, but secondary index is still built. So the simple fix is to remove such row_merge_skip_rec() check when we insert row to index, so that they can be dropped altogether by online log application. However, the row_merge_skip_rec() is added mainly to address the BLOB issue, since BLOB can be dropped for rollback operation. To deal with it,we will need to log enough prefix so that any prefix index on blob data can be built even if the BLOB is dropped. In this implementation, we logged the row_ext_t for any such rows during its rollback drop, of course, only for dynamic and compressed table. And we will reconstruct a valid row_ext_t when we actually delete the entry in primary index as well as in secondary index.
Loading