docs: def intersection_supplied(self, results_filenames, labels, output_fh):
          """Returns `output_fh` populated with CSV results giving the n-grams
          that are common to witnesses in every set of works in
          `results_sets`, using the labels in `labels`.
  
          :param results_filenames: list of results to be diffed
          :type results_filenames: `list` of `str`
          :param labels: labels to be applied to the results_sets
          :type labels: `list`
          :param output_fh: object to output results to
          :type output_fh: file-like object
          :rtype: file-like object
  
          """
          self._add_temporary_results_sets(results_filenames, labels)
          query = constants.SELECT_INTERSECT_SUPPLIED_SQL
          parameters = [len(labels)]
          self._logger.info('Running supplied intersect query')
          self._logger.debug('Query: {}\nNumber of labels: {}'.format(
              query, parameters[0]))
          self._log_query_plan(query, parameters)
          cursor = self._conn.execute(query, parameters)
          return self._csv(cursor, constants.QUERY_FIELDNAMES, output_fh)