Skip to content

Commit

Permalink
cherry pick #38038 to release-6.3
Browse files Browse the repository at this point in the history
Signed-off-by: ti-srebot <ti-srebot@pingcap.com>
  • Loading branch information
tiancaiamao authored and ti-srebot committed Sep 21, 2022
1 parent 6a906f7 commit 8506e69
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 20 deletions.
6 changes: 3 additions & 3 deletions ddl/delete_range.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ type delRangeManager interface {
addDelRangeJob(ctx context.Context, job *model.Job) error
// removeFromGCDeleteRange removes the deleting table job from gc_delete_range table by jobID and tableID.
// It's use for recover the table that was mistakenly deleted.
removeFromGCDeleteRange(ctx context.Context, jobID int64, tableID []int64) error
removeFromGCDeleteRange(ctx context.Context, jobID int64) error
start()
clear()
}
Expand Down Expand Up @@ -125,13 +125,13 @@ func insertJobIntoDeleteRangeTableMultiSchema(ctx context.Context, sctx sessionc
}

// removeFromGCDeleteRange implements delRangeManager interface.
func (dr *delRange) removeFromGCDeleteRange(ctx context.Context, jobID int64, tableIDs []int64) error {
func (dr *delRange) removeFromGCDeleteRange(ctx context.Context, jobID int64) error {
sctx, err := dr.sessPool.get()
if err != nil {
return errors.Trace(err)
}
defer dr.sessPool.put(sctx)
err = util.RemoveMultiFromGCDeleteRange(ctx, sctx, jobID, tableIDs)
err = util.RemoveMultiFromGCDeleteRange(ctx, sctx, jobID)
return errors.Trace(err)
}

Expand Down
2 changes: 1 addition & 1 deletion ddl/mock.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ func (*mockDelRange) addDelRangeJob(_ context.Context, _ *model.Job) error {
}

// removeFromGCDeleteRange implements delRangeManager interface.
func (*mockDelRange) removeFromGCDeleteRange(_ context.Context, _ int64, _ []int64) error {
func (*mockDelRange) removeFromGCDeleteRange(_ context.Context, _ int64) error {
return nil
}

Expand Down
2 changes: 1 addition & 1 deletion ddl/table.go
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,7 @@ func (w *worker) onRecoverTable(d *ddlCtx, t *meta.Meta, job *model.Job) (ver in
return ver, errors.Wrapf(err, "failed to get old label rules from PD")
}

err = w.delRangeManager.removeFromGCDeleteRange(w.ctx, dropJobID, tids)
err = w.delRangeManager.removeFromGCDeleteRange(w.ctx, dropJobID)
if err != nil {
return ver, errors.Trace(err)
}
Expand Down
18 changes: 3 additions & 15 deletions ddl/util/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ const (
loadDeleteRangeSQL = `SELECT HIGH_PRIORITY job_id, element_id, start_key, end_key FROM mysql.%n WHERE ts < %?`
recordDoneDeletedRangeSQL = `INSERT IGNORE INTO mysql.gc_delete_range_done SELECT * FROM mysql.gc_delete_range WHERE job_id = %? AND element_id = %?`
completeDeleteRangeSQL = `DELETE FROM mysql.gc_delete_range WHERE job_id = %? AND element_id = %?`
completeDeleteMultiRangesSQL = `DELETE FROM mysql.gc_delete_range WHERE job_id = %? AND element_id in (` // + idList + ")"
completeDeleteMultiRangesSQL = `DELETE FROM mysql.gc_delete_range WHERE job_id = %?`
updateDeleteRangeSQL = `UPDATE mysql.gc_delete_range SET start_key = %? WHERE job_id = %? AND element_id = %? AND start_key = %?`
deleteDoneRecordSQL = `DELETE FROM mysql.gc_delete_range_done WHERE job_id = %? AND element_id = %?`
loadGlobalVars = `SELECT HIGH_PRIORITY variable_name, variable_value from mysql.global_variables where variable_name in (` // + nameList + ")"
Expand Down Expand Up @@ -151,20 +151,8 @@ func RemoveFromGCDeleteRange(sctx sessionctx.Context, jobID, elementID int64) er
}

// RemoveMultiFromGCDeleteRange is exported for ddl pkg to use.
func RemoveMultiFromGCDeleteRange(ctx context.Context, sctx sessionctx.Context, jobID int64, elementIDs []int64) error {
var buf strings.Builder
buf.WriteString(completeDeleteMultiRangesSQL)
paramIDs := make([]interface{}, 0, 1+len(elementIDs))
paramIDs = append(paramIDs, jobID)
for i, elementID := range elementIDs {
if i > 0 {
buf.WriteString(", ")
}
buf.WriteString("%?")
paramIDs = append(paramIDs, elementID)
}
buf.WriteString(")")
_, err := sctx.(sqlexec.SQLExecutor).ExecuteInternal(ctx, buf.String(), paramIDs...)
func RemoveMultiFromGCDeleteRange(ctx context.Context, sctx sessionctx.Context, jobID int64) error {
_, err := sctx.(sqlexec.SQLExecutor).ExecuteInternal(ctx, completeDeleteMultiRangesSQL, jobID)
return errors.Trace(err)
}

Expand Down

0 comments on commit 8506e69

Please sign in to comment.