          return compiler.has_results()
  
      def explain(self, using, format=None, **options):
          q = self.clone()
          q.explain_query = True
          q.explain_format = format
          q.explain_options = options
          compiler = q.get_compiler(using=using)
          return '\n'.join(compiler.explain_query())
  
      def combine(self, rhs, connector):
          """
 
</s> remove         output_formatter = json.dumps if self.query.explain_format == 'json' else str
 </s> add         output_formatter = json.dumps if self.query.explain_info.format == 'json' else str </s> remove         self.explain_query = False
        self.explain_format = None
        self.explain_options = {}
 </s> add         self.explain_info = None </s> remove                     self.query.explain_format,
                    **self.query.explain_options
 </s> add                     self.query.explain_info.format,
                    **self.query.explain_info.options </s> remove             if self.query.explain_query:
 </s> add             if self.query.explain_info:
        q.explain_info = ExplainInfo(format, options)
          return compiler.has_results()
  
      def explain(self, using, format=None, **options):
          q = self.clone()
        q.explain_info = ExplainInfo(format, options)
        q.explain_info = ExplainInfo(format, options)
        q.explain_info = ExplainInfo(format, options)
          compiler = q.get_compiler(using=using)
          return '\n'.join(compiler.explain_query())
  
      def combine(self, rhs, connector):
          """
keep keep keep keep replace replace replace keep keep keep keep keep
 Refs #27624 -- Changed Query.explain_info to namedtuple. 
django/db/models/sql/query.py