Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
drewbanin committed Feb 21, 2020
1 parent 2bd56de commit e29078e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 17 deletions.
26 changes: 11 additions & 15 deletions plugins/bigquery/dbt/adapters/bigquery/impl.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from dataclasses import dataclass
from typing import Dict, List, Optional, Any, Set
from hologram import JsonSchemaMixin
from hologram import JsonSchemaMixin, ValidationError

import dbt.deprecations
import dbt.exceptions
Expand Down Expand Up @@ -41,9 +41,9 @@


@dataclass
class PartitionConfig(Dict[str, Any], JsonSchemaMixin):
class PartitionConfig(JsonSchemaMixin):
field: str
data_type: str
data_type: str = 'date'
range: Optional[Dict[str, any]] = None

def render(self, alias: Optional[str] = None):
Expand All @@ -59,12 +59,9 @@ def render(self, alias: Optional[str] = None):
@classmethod
def _parse(cls, raw_partition_by) -> Optional['PartitionConfig']:
if isinstance(raw_partition_by, dict):
if raw_partition_by.get('field'):
if raw_partition_by.get('data_type'):
return cls(**raw_partition_by)
else: # assume date type as default
return cls(**raw_partition_by, data_type='date')
else:
try:
return cls.from_dict(raw_partition_by)
except ValidationError:
dbt.exceptions.raise_compiler_error(
'Config `partition_by` is missing required item `field`'
)
Expand All @@ -91,18 +88,17 @@ def _parse(cls, raw_partition_by) -> Optional['PartitionConfig']:
partition_by = raw_partition_by
data_type = 'date'

inferred_partition_by = {
'field': partition_by,
'data_type': data_type
}
inferred_partition_by = cls(
field=partition_by,
data_type=data_type
)

dbt.deprecations.warn(
'bq-partition-by-string',
raw_partition_by=raw_partition_by,
inferred_partition_by=inferred_partition_by
)

return cls(**inferred_partition_by)
return inferred_partition_by
else:
return None

Expand Down
4 changes: 2 additions & 2 deletions plugins/bigquery/dbt/include/bigquery/macros/adapters.sql
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,12 @@
{%- set raw_labels = config.get('labels', []) -%}
{%- set sql_header = config.get('sql_header', none) -%}

{%- set partition_by_dict = adapter.parse_partition_by(raw_partition_by) -%}
{%- set partition_config = adapter.parse_partition_by(raw_partition_by) -%}

{{ sql_header if sql_header is not none }}

create or replace table {{ relation }}
{{ partition_by(partition_by_dict) }}
{{ partition_by(partition_config.to_dict()) }}
{{ cluster_by(raw_cluster_by) }}
{{ bigquery_table_options(
persist_docs=raw_persist_docs,
Expand Down

0 comments on commit e29078e

Please sign in to comment.