Skip to content

Commit ac50331

Browse files
committed
Omit 'schema' as part of 'Table.{create,update}' when 'view_query` is set (#1703)
* Omit 'schema' as part of 'Table.{create,update}' when 'view_query is set. Closes #1701. * Adjust comment about omitting schema when 'view_query' is set. Addresses: #1703 (comment) * Wait to add schema until after checking for 'view_query'. Addresses: #1703 (comment).
1 parent 8da951d commit ac50331

File tree

2 files changed

+5
-11
lines changed

2 files changed

+5
-11
lines changed

gcloud/bigquery/table.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,6 @@ def _build_resource(self):
401401
'projectId': self._dataset.project,
402402
'datasetId': self._dataset.name,
403403
'tableId': self.name},
404-
'schema': {'fields': _build_schema_resource(self._schema)},
405404
}
406405
if self.description is not None:
407406
resource['description'] = self.description
@@ -419,6 +418,10 @@ def _build_resource(self):
419418
if self.view_query is not None:
420419
view = resource['view'] = {}
421420
view['query'] = self.view_query
421+
elif self._schema:
422+
resource['schema'] = {
423+
'fields': _build_schema_resource(self._schema)
424+
}
422425

423426
return resource
424427

gcloud/bigquery/test_table.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -511,9 +511,6 @@ def test_create_w_alternate_client(self):
511511
'projectId': self.PROJECT,
512512
'datasetId': self.DS_NAME,
513513
'tableId': self.TABLE_NAME},
514-
'schema': {'fields': [
515-
{'name': 'full_name', 'type': 'STRING', 'mode': 'REQUIRED'},
516-
{'name': 'age', 'type': 'INTEGER', 'mode': 'REQUIRED'}]},
517514
'description': DESCRIPTION,
518515
'friendlyName': TITLE,
519516
'view': {'query': QUERY},
@@ -800,10 +797,7 @@ def test_update_w_alternate_client(self):
800797
conn2 = _Connection(RESOURCE)
801798
client2 = _Client(project=self.PROJECT, connection=conn2)
802799
dataset = _Dataset(client1)
803-
full_name = SchemaField('full_name', 'STRING', mode='REQUIRED')
804-
age = SchemaField('age', 'INTEGER', mode='REQUIRED')
805-
table = self._makeOne(self.TABLE_NAME, dataset=dataset,
806-
schema=[full_name, age])
800+
table = self._makeOne(self.TABLE_NAME, dataset=dataset)
807801
table.default_table_expiration_ms = DEF_TABLE_EXP
808802
table.location = LOCATION
809803
table.expires = self.EXP_TIME
@@ -821,9 +815,6 @@ def test_update_w_alternate_client(self):
821815
{'projectId': self.PROJECT,
822816
'datasetId': self.DS_NAME,
823817
'tableId': self.TABLE_NAME},
824-
'schema': {'fields': [
825-
{'name': 'full_name', 'type': 'STRING', 'mode': 'REQUIRED'},
826-
{'name': 'age', 'type': 'INTEGER', 'mode': 'REQUIRED'}]},
827818
'expirationTime': _millis(self.EXP_TIME),
828819
'location': 'EU',
829820
'view': {'query': QUERY},

0 commit comments

Comments
 (0)