-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
I commented that structs can contain structs and arrays, but the client library does not support it yet.
I'm testing this on the master branch.
Sample code:
from google.cloud import bigquery
client = bigquery.Client()
query = 'SELECT @struct_value AS s;'
query_results = client.run_sync_query(
query,
query_parameters=[
bigquery.StructQueryParameter(
'struct_value',
bigquery.StructQueryParameter(
'x',
bigquery.ScalarQueryParameter('a', 'INT64', 42),
bigquery.ScalarQueryParameter('b', 'STRING', 'what is the answer?')))
])Stacktrace
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in ()
9 'x',
10 bigquery.ScalarQueryParameter('a', 'INT64', 42),
---> 11 bigquery.ScalarQueryParameter('b', 'STRING', 'what is the answer?')))
12 ])
/Users/swast/venvs/google-cloud-python/lib/python3.5/site-packages/google_cloud_bigquery-0.22.1-py3.5.egg/google/cloud/bigquery/helpers.py in init(self, name, *sub_params)
532 self.name = name
533 self.struct_types = OrderedDict(
--> 534 (sub.name, sub.type) for sub in sub_params)
535 self.struct_values = {sub.name: sub.value for sub in sub_params}
536
/Users/swast/venvs/google-cloud-python/lib/python3.5/site-packages/google_cloud_bigquery-0.22.1-py3.5.egg/google/cloud/bigquery/helpers.py in (.0)
532 self.name = name
533 self.struct_types = OrderedDict(
--> 534 (sub.name, sub.type) for sub in sub_params)
535 self.struct_values = {sub.name: sub.value for sub in sub_params}
536
AttributeError: 'StructQueryParameter' object has no attribute 'type_'
Ditto for a struct that contains an array:
query_results = client.run_sync_query(
query,
query_parameters=[
bigquery.StructQueryParameter(
'struct_value',
bigquery.ArrayQueryParameter(
'y',
'STRING',
['hello', 'world']))
])Stacktrace
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in ()
8 'y',
9 'STRING',
---> 10 ['hello', 'world']))
11 ])
/Users/swast/venvs/google-cloud-python/lib/python3.5/site-packages/google_cloud_bigquery-0.22.1-py3.5.egg/google/cloud/bigquery/helpers.py in init(self, name, *sub_params)
532 self.name = name
533 self.struct_types = OrderedDict(
--> 534 (sub.name, sub.type) for sub in sub_params)
535 self.struct_values = {sub.name: sub.value for sub in sub_params}
536
/Users/swast/venvs/google-cloud-python/lib/python3.5/site-packages/google_cloud_bigquery-0.22.1-py3.5.egg/google/cloud/bigquery/helpers.py in (.0)
532 self.name = name
533 self.struct_types = OrderedDict(
--> 534 (sub.name, sub.type) for sub in sub_params)
535 self.struct_values = {sub.name: sub.value for sub in sub_params}
536
AttributeError: 'ArrayQueryParameter' object has no attribute 'type_'