code: func (w *worker) updateDDLJob(t *meta.Meta, job *model.Job, meetErr bool) error {
  	updateRawArgs := true
  	// If there is an error when running job and the RawArgs hasn't been decoded by DecodeArgs,
  	// so we shouldn't replace RawArgs with the marshaling Args.
  	if meetErr && (job.RawArgs != nil && job.Args == nil) {
  		logutil.Logger(w.logCtx).Info("[ddl] meet error before update DDL job, shouldn't update raw args", zap.String("job", job.String()))
  		updateRawArgs = false
  	}
  	return errors.Trace(t.UpdateDDLJob(0, job, updateRawArgs))
  }
docs: // updateDDLJob updates the DDL job information.
  // Every time we enter another state except final state, we must call this function.