-
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.priority: p2Moderately-important priority. Fix may not be included in next release.Moderately-important priority. Fix may not be included in next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.Error or flaw in code with unintended results or allowing sub-optimal usage patterns.
Description
OS Type & Version: Ubuntu 18.10 x64
Python version: Python 3.7.1
Packges: latest up to this date:
(...)
google-cloud-bigquery==1.9.0
(...)
Steps to reproduce
- Create a query, bind empty array as parameter
- Execute it
- Call query_parameters
Code example
from google.cloud import bigquery
client = bigquery.Client()
job = client.query(
"SELECT ARRAY_LENGTH(@empty_array)",
job_config=bigquery.QueryJobConfig(
query_parameters=[
bigquery.ArrayQueryParameter('empty_array', 'INT64', [])
]
)
)
result = list(job.result())
query_parameters = job.query_parameters
Stack trace
Traceback (most recent call last):
File "test.py", line 13, in <module>
query_parameters = job.query_parameters()
File "python-bigquery-bug/venv/lib/python3.7/site-packages/google/cloud/bigquery/job.py", line 2373, in query_parameters
return self._configuration.query_parameters
File "python-bigquery-bug/venv/lib/python3.7/site-packages/google/cloud/bigquery/job.py", line 2115, in query_parameters
return _from_api_repr_query_parameters(prop)
File "python-bigquery-bug/venv/lib/python3.7/site-packages/google/cloud/bigquery/job.py", line 1908, in _from_api_repr_query_parameters
return [_query_param_from_api_repr(mapping) for mapping in resource]
File "python-bigquery-bug/venv/lib/python3.7/site-packages/google/cloud/bigquery/job.py", line 1908, in <listcomp>
return [_query_param_from_api_repr(mapping) for mapping in resource]
File "python-bigquery-bug/venv/lib/python3.7/site-packages/google/cloud/bigquery/query.py", line 623, in _query_param_from_api_repr
return klass.from_api_repr(resource)
File "python-bigquery-bug/venv/lib/python3.7/site-packages/google/cloud/bigquery/query.py", line 252, in from_api_repr
return cls._from_api_repr_scalar(resource)
File "python-bigquery-bug/venv/lib/python3.7/site-packages/google/cloud/bigquery/query.py", line 233, in _from_api_repr_scalar
values = [value["value"] for value in resource["parameterValue"]["arrayValues"]]
KeyError: 'parameterValue'
from_api_repr in ArrayQueryParameter is called with resource = {'name': 'empty_array', 'parameterType': {'arrayType': {'type': 'INT64'}, 'type': 'ARRAY'}}
For empty array this value does not contain parameterValue which leads to KeyError
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
api: bigqueryIssues related to the BigQuery API.Issues related to the BigQuery API.priority: p2Moderately-important priority. Fix may not be included in next release.Moderately-important priority. Fix may not be included in next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.Error or flaw in code with unintended results or allowing sub-optimal usage patterns.