code: func isNullRejected(ctx sessionctx.Context, schema *expression.Schema, expr expression.Expression) bool {
  	expr = expression.PushDownNot(nil, expr, false)
  	sc := ctx.GetSessionVars().StmtCtx
  	sc.InNullRejectCheck = true
  	result := expression.EvaluateExprWithNull(ctx, schema, expr)
  	sc.InNullRejectCheck = false
  	x, ok := result.(*expression.Constant)
  	if !ok {
  		return false
  	}
  	if x.Value.IsNull() {
  		return true
  	} else if isTrue, err := x.Value.ToBool(sc); err == nil && isTrue == 0 {
  		return true
  	}
  	return false
  }
docs: // isNullRejected check whether a condition is null-rejected
  // A condition would be null-rejected in one of following cases:
  // If it is a predicate containing a reference to an inner table that evaluates to UNKNOWN or FALSE when one of its arguments is NULL.
  // If it is a conjunction containing a null-rejected condition as a conjunct.
  // If it is a disjunction of null-rejected conditions.