-
Marko Mäkelä authored
When an online ALTER TABLE rebuilds the table, we would get false duplicate key errors on row_log_table_apply() if the initial table scan performed READ UNCOMMITTED. If we perform REPEATABLE READ, the log will never be older than what we copied from the table, and the false duplicates will be gone. prepare_inplace_alter_table_dict(): Assign a consistent read view for online table-copying ALTER TABLE. BTR_CREATE_SAME_PK_FLAG: Remove. row_ins_duplicate_online_is_newer(): Remove. It is simpler to construct old record versions in the table scan phase than in the log application phase. row_ins_duplicate_online(): Simplify. row_ins_duplicate_error_in_clust_online(): Wrapper for row_ins_duplicate_online(). Check also cursor->up_match for a duplicate. row_merge_read_clustered_index(): When rebuilding the table online, perform a REPEATABLE READ instead of READ UNCOMMITTED. row_purge_upd_exist_or_extern_func(): Refuse the operation if an off-page column would be freed. row_purge_record_func(): Only refuse the operation if an off-page column would be freed. Do process other undo log records for tables that are being altered online. row_vers_build_for_consistent_read(): Correct comments and remove redundant code. trx_undo_get_undo_rec_low(): Correct a comment. rb:1438 approved by Jimmy Yang
Marko Mäkelä authoredWhen an online ALTER TABLE rebuilds the table, we would get false duplicate key errors on row_log_table_apply() if the initial table scan performed READ UNCOMMITTED. If we perform REPEATABLE READ, the log will never be older than what we copied from the table, and the false duplicates will be gone. prepare_inplace_alter_table_dict(): Assign a consistent read view for online table-copying ALTER TABLE. BTR_CREATE_SAME_PK_FLAG: Remove. row_ins_duplicate_online_is_newer(): Remove. It is simpler to construct old record versions in the table scan phase than in the log application phase. row_ins_duplicate_online(): Simplify. row_ins_duplicate_error_in_clust_online(): Wrapper for row_ins_duplicate_online(). Check also cursor->up_match for a duplicate. row_merge_read_clustered_index(): When rebuilding the table online, perform a REPEATABLE READ instead of READ UNCOMMITTED. row_purge_upd_exist_or_extern_func(): Refuse the operation if an off-page column would be freed. row_purge_record_func(): Only refuse the operation if an off-page column would be freed. Do process other undo log records for tables that are being altered online. row_vers_build_for_consistent_read(): Correct comments and remove redundant code. trx_undo_get_undo_rec_low(): Correct a comment. rb:1438 approved by Jimmy Yang
Loading