-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Closed
Labels
api: bigqueryIssues related to the BigQuery API.Issues related to the BigQuery API.type: questionRequest for information or clarification. Not an issue.Request for information or clarification. Not an issue.
Description
RowIterator is not actually an Iterator, it is an Iterable. Either it should be an Iterator, or it should be renamed? At this point, but maybe api_core.Iterator could implement both Iterable and Iterator? Or maybe the documentation could specify this? This is very very minor, since most use will be in a for loop, so maybe this should be closed as "won't fix", but it did confuse me when trying to figure out how to get the next_page_token as early as possible. I need to call iter(row_it) because `RowIterator is not actually an iterator ... it is an iterable!
Example code
from google.cloud import bigquery
bq_client = bigquery.Client()
table = bq_client.dataset('tmp').table('supply_house_ramp9_NTM_split2')
row_iterator = bq_client.list_rows(table, max_results=10)
print('row_iterator:', row_iterator)
# fix: next(iter(row_iterator))
next(row_iterator)Output:
row_iterator: <google.cloud.bigquery.table.RowIterator object at 0x10a44d090>
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'RowIterator' object is not an iterator
Expected output:
Return the first row of the table, since it is called an iterator, you should be able to pass it to next()
Environment details
OS: Any
Python version: Python 3.7.4
google-cloud-bigquery version: 1.20.0
Rubiel1, maxcorbeau, mattseymour and Kieran-Searsknodelgino
Metadata
Metadata
Assignees
Labels
api: bigqueryIssues related to the BigQuery API.Issues related to the BigQuery API.type: questionRequest for information or clarification. Not an issue.Request for information or clarification. Not an issue.