code: func (b *builtinValuesDurationSig) evalDuration(_ chunk.Row) (types.Duration, bool, error) {
  	if !b.ctx.GetSessionVars().StmtCtx.InInsertStmt {
  		return types.Duration{}, true, nil
  	}
  	row := b.ctx.GetSessionVars().CurrInsertValues
  	if row.IsEmpty() {
  		return types.Duration{}, true, errors.New("Session current insert values is nil")
  	}
  	if b.offset < row.Len() {
  		if row.IsNull(b.offset) {
  			return types.Duration{}, true, nil
  		}
  		duration := row.GetDuration(b.offset, b.getRetTp().Decimal)
  		return duration, false, nil
  	}
  	return types.Duration{}, true, errors.Errorf("Session current insert values len %d and column's offset %v don't match", row.Len(), b.offset)
  }
docs: // evalDuration evals a builtinValuesDurationSig.
  // See https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_values