code: def result(self, timeout=None, retry=DEFAULT_RETRY):
          
          super(QueryJob, self).result(timeout=timeout)
          # Return an iterator instead of returning the job.
          if not self._query_results:
              self._query_results = self._client._get_query_results(
                  self.job_id, retry, project=self.project, location=self.location
              )
  
          # If the query job is complete but there are no query results, this was
          # special job, such as a DDL query. Return an empty result set to
          # indicate success and avoid calling tabledata.list on a table which
          # can't be read (such as a view table).
          if self._query_results.total_rows is None:
              return _EmptyRowIterator()
  
          schema = self._query_results.schema
          dest_table_ref = self.destination
          dest_table = Table(dest_table_ref, schema=schema)
          dest_table._properties["numRows"] = self._query_results.total_rows
          return self._client.list_rows(dest_table, retry=retry)
docs: Start the job and wait for it to complete and get the result.
  
          :type timeout: float
          :param timeout:
              How long (in seconds) to wait for job to complete before raising
              a :class:`concurrent.futures.TimeoutError`.
  
          :type retry: :class:`google.api_core.retry.Retry`
          :param retry: (Optional) How to retry the call that retrieves rows.
  
          :rtype: :class:`~google.cloud.bigquery.table.RowIterator`
          :returns:
              Iterator of row data :class:`~google.cloud.bigquery.table.Row`-s.
              During each page, the iterator will have the ``total_rows``
              attribute set, which counts the total number of rows **in the
              result set** (this is distinct from the total number of rows in
              the current page: ``iterator.page.num_items``).
  
          :raises:
              :class:`~google.cloud.exceptions.GoogleCloudError` if the job
              failed or :class:`concurrent.futures.TimeoutError` if the job did
              not complete in the given timeout.