code: func exprHasSetVar(expr expression.Expression) bool {
  	if fun, ok := expr.(*expression.ScalarFunction); ok {
  		canPrune := true
  		if fun.FuncName.L == ast.SetVar {
  			return false
  		}
  		for _, arg := range fun.GetArgs() {
  			canPrune = canPrune && exprHasSetVar(arg)
  			if !canPrune {
  				return false
  			}
  		}
  	}
  	return true
  }
docs: // exprHasSetVar checks if the expression has set-var function. If do, we should not prune it.