code: func (b *builtinSleepSig) evalInt(row chunk.Row) (int64, bool, error) {
  	val, isNull, err := b.args[0].EvalReal(b.ctx, row)
  	if err != nil {
  		return 0, isNull, err
  	}
  	sessVars := b.ctx.GetSessionVars()
  	if isNull {
  		if sessVars.StrictSQLMode {
  			return 0, true, errIncorrectArgs.GenWithStackByArgs("sleep")
  		}
  		return 0, true, nil
  	}
  	// processing argument is negative
  	if val < 0 {
  		if sessVars.StrictSQLMode {
  			return 0, false, errIncorrectArgs.GenWithStackByArgs("sleep")
  		}
  		return 0, false, nil
  	}
  
  	if val > math.MaxFloat64/float64(time.Second.Nanoseconds()) {
  		return 0, false, errIncorrectArgs.GenWithStackByArgs("sleep")
  	}
  	dur := time.Duration(val * float64(time.Second.Nanoseconds()))
  	select {
  	case <-time.After(dur):
  		// TODO: Handle Ctrl-C is pressed in `mysql` client.
  		// return 1 when SLEEP() is KILLed
  	}
  	return 0, false, nil
  }
docs: // evalInt evals a builtinSleepSig.
  // See https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_sleep