code: def _evaluate_sql_query_subprocess(self, predicted_query: str, sql_query_labels: List[str]) -> int:
          
  
          postprocessed_predicted_query = self.postprocess_query_sqlite(predicted_query)
  
          try:
              self._cursor.execute(postprocessed_predicted_query)
              predicted_rows = self._cursor.fetchall()
          except sqlite3.Error as error:
              logger.warning(f'Error executing predicted: {error}')
              exit(0)
  
          # If predicted table matches any of the reference tables then it is counted as correct.
          target_rows = None
          for sql_query_label in sql_query_labels:
              postprocessed_sql_query_label = self.postprocess_query_sqlite(sql_query_label)
              try:
                  self._cursor.execute(postprocessed_sql_query_label)
                  target_rows = self._cursor.fetchall()
              except sqlite3.Error as error:
                  logger.warning(f'Error executing predicted: {error}')
              if predicted_rows == target_rows:
                  exit(1)
          exit(0)
docs: We evaluate here whether the predicted query and the query label evaluate to the
          exact same table. This method is only called by the subprocess, so we just exit with
          1 if it is correct and 0 otherwise.