From d620a648bf192f783d8d55ba3f4d07c1cd7f0a1c Mon Sep 17 00:00:00 2001 From: The Magician Date: Tue, 8 Jan 2019 14:19:59 -0800 Subject: [PATCH] Add timePartitioning.requirePartitionFilter to bigquery table (#2815) /cc @rileykarson --- google/resource_bigquery_table.go | 18 +++++++++++++++++- google/resource_bigquery_table_test.go | 3 ++- website/docs/r/bigquery_table.html.markdown | 4 ++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/google/resource_bigquery_table.go b/google/resource_bigquery_table.go index 0ea8e95e..52aa33ca 100644 --- a/google/resource_bigquery_table.go +++ b/google/resource_bigquery_table.go @@ -142,7 +142,7 @@ 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": { @@ -150,6 +150,14 @@ func resourceBigQueryTable() *schema.Resource { 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, + }, }, }, }, @@ -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 } @@ -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} } diff --git a/google/resource_bigquery_table_test.go b/google/resource_bigquery_table_test.go index 7f63543b..dc0b9090 100644 --- a/google/resource_bigquery_table_test.go +++ b/google/resource_bigquery_table_test.go @@ -122,7 +122,8 @@ resource "google_bigquery_table" "test" { time_partitioning { type = "DAY" - field = "ts" + field = "ts" + require_partition_filter = true } schema = <