@@ -1839,7 +1839,10 @@ func resourceBigQueryTableRead(d *schema.ResourceData, meta interface{}) error {
1839
1839
datasetID := d.Get("dataset_id").(string)
1840
1840
tableID := d.Get("table_id").(string)
1841
1841
1842
- tableMetadataView := d.Get("table_metadata_view").(string)
1842
+ var tableMetadataView string
1843
+ if tableMetadataViewRaw, ok := d.GetOk("table_metadata_view"); ok {
1844
+ tableMetadataView = tableMetadataViewRaw.(string)
1845
+ }
1843
1846
1844
1847
client := config.NewBigQueryClient(userAgent).Tables.Get(project, datasetID, tableID)
1845
1848
if len(tableMetadataView) > 0 {
@@ -2072,7 +2075,7 @@ type TableReference struct {
2072
2075
2073
2076
func resourceBigQueryTableUpdate(d *schema.ResourceData, meta interface{}) error {
2074
2077
// If only client-side fields were modified, short-circuit the Update function to avoid sending an update API request.
2075
- clientSideFields := map[string]bool{"deletion_protection": true}
2078
+ clientSideFields := map[string]bool{"deletion_protection": true, "table_metadata_view": true }
2076
2079
clientSideOnly := true
2077
2080
for field := range ResourceBigQueryTable().Schema {
2078
2081
if d.HasChange(field) && !clientSideFields[field] {
@@ -2109,14 +2112,18 @@ func resourceBigQueryTableUpdate(d *schema.ResourceData, meta interface{}) error
2109
2112
2110
2113
datasetID := d.Get("dataset_id").(string)
2111
2114
tableID := d.Get("table_id").(string)
2115
+ var tableMetadataView string
2116
+ if tableMetadataViewRaw, ok := d.GetOk("table_metadata_view"); ok {
2117
+ tableMetadataView = tableMetadataViewRaw.(string)
2118
+ }
2112
2119
2113
2120
tableReference := &TableReference{
2114
2121
project: project,
2115
2122
datasetID: datasetID,
2116
2123
tableID: tableID,
2117
2124
}
2118
2125
2119
- if err = resourceBigQueryTableColumnDrop(config, userAgent, table, tableReference); err != nil {
2126
+ if err = resourceBigQueryTableColumnDrop(config, userAgent, table, tableReference, tableMetadataView ); err != nil {
2120
2127
return err
2121
2128
}
2122
2129
@@ -2127,8 +2134,13 @@ func resourceBigQueryTableUpdate(d *schema.ResourceData, meta interface{}) error
2127
2134
return resourceBigQueryTableRead(d, meta)
2128
2135
}
2129
2136
2130
- func resourceBigQueryTableColumnDrop(config *transport_tpg.Config, userAgent string, table *bigquery.Table, tableReference *TableReference) error {
2131
- oldTable, err := config.NewBigQueryClient(userAgent).Tables.Get(tableReference.project, tableReference.datasetID, tableReference.tableID).Do()
2137
+ func resourceBigQueryTableColumnDrop(config *transport_tpg.Config, userAgent string, table *bigquery.Table, tableReference *TableReference, tableMetadataView string) error {
2138
+ client := config.NewBigQueryClient(userAgent).Tables.Get(tableReference.project, tableReference.datasetID, tableReference.tableID)
2139
+ if len(tableMetadataView) > 0 {
2140
+ client = client.View(tableMetadataView)
2141
+ }
2142
+ oldTable, err := client.Do()
2143
+
2132
2144
if err != nil {
2133
2145
return err
2134
2146
}
@@ -3394,6 +3406,12 @@ func resourceBigQueryTableImport(d *schema.ResourceData, meta interface{}) ([]*s
3394
3406
return nil, fmt.Errorf("Error setting deletion_protection: %s", err)
3395
3407
}
3396
3408
3409
+ // The default for `table_metadata_view` is "STORAGE_STATS" for the API.
3410
+ // We don't need extra storage stats during import.
3411
+ if err := d.Set("table_metadata_view", "BASIC"); err != nil {
3412
+ return nil, fmt.Errorf("Error setting table_metadata_view: %s", err)
3413
+ }
3414
+
3397
3415
// Replace import id for the resource id
3398
3416
id, err := tpgresource.ReplaceVars(d, config, "projects/{{"{{"}}project{{"}}"}}/datasets/{{"{{"}}dataset_id{{"}}"}}/tables/{{"{{"}}table_id{{"}}"}}")
3399
3417
if err != nil {
0 commit comments