code: func (b *builtinRandWithSeedSig) evalReal(row chunk.Row) (float64, bool, error) {
  	seed, isNull, err := b.args[0].EvalInt(b.ctx, row)
  	if err != nil {
  		return 0, true, err
  	}
  	// b.args[0] is promised to be a non-constant(such as a column name) in
  	// builtinRandWithSeedSig, the seed is initialized with the value for each
  	// invocation of RAND().
  	var randGen *rand.Rand
  	if isNull {
  		randGen = rand.New(rand.NewSource(time.Now().UnixNano()))
  	} else {
  		randGen = rand.New(rand.NewSource(seed))
  	}
  	return randGen.Float64(), false, nil
  }
docs: // evalReal evals RAND(N).
  // See https://dev.mysql.com/doc/refman/5.7/en/mathematical-functions.html#function_rand