/// <summary>
        /// Returns an iterator over the query results.
        /// </summary>
        /// <returns>An iterator over the query results.</returns>
        public IEnumerator <BigQueryRow> GetEnumerator()
        {
            foreach (var row in ResponseRows)
            {
                yield return(row);
            }
            GetQueryResultsOptions clonedOptions = _options?.Clone() ?? new GetQueryResultsOptions();

            clonedOptions.StartIndex = null;
            clonedOptions.PageToken  = _response.PageToken;
            while (clonedOptions.PageToken != null)
            {
                var response = _client.GetRawQueryResults(JobReference, clonedOptions, timeoutBase: null);
                foreach (var row in ConvertResponseRows(response))
                {
                    yield return(row);
                }
                clonedOptions.PageToken = response.PageToken;
            }
        }