Skip to content

Commit

Permalink
Add timePartitioning.requirePartitionFilter field to google_bigquery_…
Browse files Browse the repository at this point in the history
…table resource (#1172)

Merged PR #1172.
  • Loading branch information
rileykarson authored and modular-magician committed Jan 9, 2019
1 parent 4970081 commit 2304523
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 2 deletions.
18 changes: 17 additions & 1 deletion third_party/terraform/resources/resource_bigquery_table.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,14 +142,22 @@ func resourceBigQueryTable() *schema.Resource {
ValidateFunc: validation.StringInSlice([]string{"DAY"}, false),
},

// Type: [Optional] The field used to determine how to create a time-based
// Field: [Optional] The field used to determine how to create a time-based
// partition. If time-based partitioning is enabled without this value, the
// table is partitioned based on the load time.
"field": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},

// RequirePartitionFilter: [Optional] If set to true, queries over this table
// require a partition filter that can be used for partition elimination to be
// specified.
"require_partition_filter": {
Type: schema.TypeBool,
Optional: true,
},
},
},
},
Expand Down Expand Up @@ -436,6 +444,10 @@ func expandTimePartitioning(configured interface{}) *bigquery.TimePartitioning {
tp.ExpirationMs = int64(v.(int))
}

if v, ok := raw["require_partition_filter"]; ok {
tp.RequirePartitionFilter = v.(bool)
}

return tp
}

Expand All @@ -450,6 +462,10 @@ func flattenTimePartitioning(tp *bigquery.TimePartitioning) []map[string]interfa
result["expiration_ms"] = tp.ExpirationMs
}

if tp.RequirePartitionFilter == true {
result["require_partition_filter"] = tp.RequirePartitionFilter
}

return []map[string]interface{}{result}
}

Expand Down
3 changes: 2 additions & 1 deletion third_party/terraform/tests/resource_bigquery_table_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,8 @@ resource "google_bigquery_table" "test" {
time_partitioning {
type = "DAY"
field = "ts"
field = "ts"
require_partition_filter = true
}
schema = <<EOH
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@ The `time_partitioning` block supports:
* `type` - (Required) The only type supported is DAY, which will generate
one partition per day based on data loading time.

* `require_partition_filter` - (Optional) If set to true, queries over this table
require a partition filter that can be used for partition elimination to be
specified.

The `view` block supports:

* `query` - (Required) A query that BigQuery executes when the view is referenced.
Expand Down

0 comments on commit 2304523

Please sign in to comment.