Skip to content

Commit

Permalink
implement feedback from #1011
Browse files Browse the repository at this point in the history
  • Loading branch information
mikealfare committed Jun 11, 2024
1 parent 526cd87 commit 40d3e55
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 9 deletions.
2 changes: 1 addition & 1 deletion dbt/adapters/bigquery/connections.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ def format_rows_number(self, rows_number):
return f"{rows_number:3.1f}{unit}".strip()

@classmethod
def get_google_credentials(cls, profile_credentials) -> GoogleCredentials:
def get_google_credentials(cls, profile_credentials) -> GoogleCredentials.Credentials:
method = profile_credentials.method
creds = GoogleServiceAccountCredentials.Credentials

Expand Down
8 changes: 4 additions & 4 deletions dbt/adapters/bigquery/relation.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,14 +90,14 @@ def materialized_view_config_changeset(
new_materialized_view = cls.materialized_view_from_relation_config(relation_config)

if new_materialized_view.options != existing_materialized_view.options:
# allow_non_incremental_definition cannot be changed via ALTER, must recreate
# allow_non_incremental_definition cannot be changed via an ALTER statement
if (
new_materialized_view.options.allow_non_incremental_definition
== existing_materialized_view.options.allow_non_incremental_definition
!= existing_materialized_view.options.allow_non_incremental_definition
):
action = RelationConfigChangeAction.alter
else:
action = RelationConfigChangeAction.create
else:
action = RelationConfigChangeAction.alter
config_change_collection.options = BigQueryOptionsConfigChange(
action=action,
context=new_materialized_view.options,
Expand Down
10 changes: 6 additions & 4 deletions dbt/adapters/bigquery/relation_configs/_options.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class BigQueryOptionsConfig(BigQueryBaseRelationConfig):
refresh_interval_minutes: Optional[float] = 30
expiration_timestamp: Optional[datetime] = None
max_staleness: Optional[str] = None
allow_non_incremental_definition: Optional[bool] = False
allow_non_incremental_definition: Optional[bool] = None
kms_key_name: Optional[str] = None
description: Optional[str] = None
labels: Optional[Dict[str, str]] = None
Expand Down Expand Up @@ -146,10 +146,12 @@ def parse_bq_table(cls, table: BigQueryTable) -> Dict[str, Any]:
"expiration_timestamp": table.expires,
"max_staleness": (
f"INTERVAL '{table._properties.get('maxStaleness')}' YEAR TO SECOND"
if table._properties.get('maxStaleness')
if table._properties.get("maxStaleness")
else None
),
"allow_non_incremental_definition": table._properties.get("materializedView", {}).get("allowNonIncrementalDefinition"),
"allow_non_incremental_definition": table._properties.get("materializedView", {}).get(
"allowNonIncrementalDefinition"
),
"description": table.description,
}

Expand All @@ -168,4 +170,4 @@ class BigQueryOptionsConfigChange(RelationConfigChange):

@property
def requires_full_refresh(self) -> bool:
return self.action != RelationConfigChangeAction.alter
return self.action == RelationConfigChangeAction.create
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ def check_start_state(project, materialized_view):
assert isinstance(results, BigQueryMaterializedViewConfig)
assert results.options.enable_refresh is True
assert results.options.refresh_interval_minutes == 60
assert results.options.max_staleness == "INTERVAL 45 MINUTE"
assert results.options.allow_non_incremental_definition is True
assert results.partition.field == "record_valid_date"
assert results.partition.data_type == "datetime"
assert results.partition.granularity == "day"
Expand Down

0 comments on commit 40d3e55

Please sign in to comment.