Skip to content

Commit

Permalink
feat: add property for allowNonIncrementalDefinition for materializ…
Browse files Browse the repository at this point in the history
…ed view (googleapis#2084)

* feat: property for `allowNonIncrementalDefinition` materialized view

Signed-off-by: Yu Ishikawa <yu-iskw@users.noreply.github.com>

format

Signed-off-by: Yu Ishikawa <yu-iskw@users.noreply.github.com>

* Update tests/unit/test_table.py

Co-authored-by: Chalmer Lowe <chalmerlowe@google.com>

* Update google/cloud/bigquery/table.py

Co-authored-by: Chalmer Lowe <chalmerlowe@google.com>

---------

Signed-off-by: Yu Ishikawa <yu-iskw@users.noreply.github.com>
Co-authored-by: Chalmer Lowe <chalmerlowe@google.com>
  • Loading branch information
yu-iskw and chalmerlowe authored Dec 4, 2024
1 parent 9e19ecd commit 3359ef3
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
23 changes: 23 additions & 0 deletions google/cloud/bigquery/table.py
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,7 @@ class Table(_TableBase):
"mview_last_refresh_time": ["materializedView", "lastRefreshTime"],
"mview_query": "materializedView",
"mview_refresh_interval": "materializedView",
"mview_allow_non_incremental_definition": "materializedView",
"num_bytes": "numBytes",
"num_rows": "numRows",
"partition_expiration": "timePartitioning",
Expand Down Expand Up @@ -928,6 +929,28 @@ def mview_refresh_interval(self, value):
refresh_interval_ms,
)

@property
def mview_allow_non_incremental_definition(self):
"""Optional[bool]: This option declares the intention to construct a
materialized view that isn't refreshed incrementally.
The default value is :data:`False`.
"""
api_field = self._PROPERTY_TO_API_FIELD[
"mview_allow_non_incremental_definition"
]
return _helpers._get_sub_prop(
self._properties, [api_field, "allowNonIncrementalDefinition"]
)

@mview_allow_non_incremental_definition.setter
def mview_allow_non_incremental_definition(self, value):
api_field = self._PROPERTY_TO_API_FIELD[
"mview_allow_non_incremental_definition"
]
_helpers._set_sub_prop(
self._properties, [api_field, "allowNonIncrementalDefinition"], value
)

@property
def streaming_buffer(self):
"""google.cloud.bigquery.StreamingBuffer: Information about a table's
Expand Down
10 changes: 10 additions & 0 deletions tests/unit/test_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -1050,6 +1050,16 @@ def test_mview_refresh_interval(self):
table.mview_refresh_interval = None
self.assertIsNone(table.mview_refresh_interval)

def test_mview_allow_non_incremental_definition(self):
table = self._make_one()
self.assertIsNone(table.mview_allow_non_incremental_definition)
table.mview_allow_non_incremental_definition = True
self.assertTrue(table.mview_allow_non_incremental_definition)
table.mview_allow_non_incremental_definition = False
self.assertFalse(table.mview_allow_non_incremental_definition)
table.mview_allow_non_incremental_definition = None
self.assertIsNone(table.mview_allow_non_incremental_definition)

def test_from_string(self):
cls = self._get_target_class()
got = cls.from_string("string-project.string_dataset.string_table")
Expand Down

0 comments on commit 3359ef3

Please sign in to comment.