From cc92e8e25f2fb9519dcea78d5fadbc38d6ff69dc Mon Sep 17 00:00:00 2001 From: James Guy Date: Fri, 8 Feb 2019 12:51:47 +1100 Subject: [PATCH 1/3] Additions for "subquery" ephemeral type --- core/dbt/context/runtime.py | 6 +++++- core/dbt/utils.py | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/core/dbt/context/runtime.py b/core/dbt/context/runtime.py index 58072c241a2..21cea763e6a 100644 --- a/core/dbt/context/runtime.py +++ b/core/dbt/context/runtime.py @@ -1,4 +1,4 @@ -from dbt.utils import get_materialization, add_ephemeral_model_prefix +from dbt.utils import get_materialization, get_ephemeral_type, add_ephemeral_model_prefix import dbt.clients.jinja import dbt.context.common @@ -35,6 +35,10 @@ def resolve(self, args): return target_model, name def create_ephemeral_relation(self, target_model, name): + is_subquery = (get_ephemeral_type(target_model) == 'subquery') + if is_subquery: + return '(\n{}\n)'.format(target_model.compiled_sql) + self.model.set_cte(target_model.unique_id, None) return self.Relation.create( type=self.Relation.CTE, diff --git a/core/dbt/utils.py b/core/dbt/utils.py index b194f0aa5db..2a5f03c255f 100644 --- a/core/dbt/utils.py +++ b/core/dbt/utils.py @@ -292,6 +292,10 @@ def get_materialization(node): return node.get('config', {}).get('materialized') +def get_ephemeral_type(node): + return node.get('config', {}).get('ephemeral_type') + + def is_enabled(node): return node.get('config', {}).get('enabled') is True From 378bb864fba92b372c506b846e8f467575a6be66 Mon Sep 17 00:00:00 2001 From: Peter Goodman Date: Mon, 13 May 2019 16:51:24 +1200 Subject: [PATCH 2/3] Temp change from Marcel to add 'ephemeral_type' --- core/dbt/parser/source_config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/dbt/parser/source_config.py b/core/dbt/parser/source_config.py index 070e6b7ff4e..d58f060e847 100644 --- a/core/dbt/parser/source_config.py +++ b/core/dbt/parser/source_config.py @@ -16,8 +16,8 @@ class SourceConfig(object): 'unique_key', 'database', 'severity', - - 'incremental_strategy' + 'ephemeral_type', + 'incremental_strategy' } ConfigKeys = AppendListFields | ExtendDictFields | ClobberFields From 5f74eaa107850cf5d7cf14af1b1e38db25f256dc Mon Sep 17 00:00:00 2001 From: Marcel van Vliet Date: Mon, 29 Jul 2019 16:15:27 +1200 Subject: [PATCH 3/3] clean up whitespace --- core/dbt/context/runtime.py | 2 +- core/dbt/parser/source_config.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/dbt/context/runtime.py b/core/dbt/context/runtime.py index 21cea763e6a..22e5dd8f087 100644 --- a/core/dbt/context/runtime.py +++ b/core/dbt/context/runtime.py @@ -38,7 +38,7 @@ def create_ephemeral_relation(self, target_model, name): is_subquery = (get_ephemeral_type(target_model) == 'subquery') if is_subquery: return '(\n{}\n)'.format(target_model.compiled_sql) - + self.model.set_cte(target_model.unique_id, None) return self.Relation.create( type=self.Relation.CTE, diff --git a/core/dbt/parser/source_config.py b/core/dbt/parser/source_config.py index d58f060e847..ca36c79f7c9 100644 --- a/core/dbt/parser/source_config.py +++ b/core/dbt/parser/source_config.py @@ -17,7 +17,7 @@ class SourceConfig(object): 'database', 'severity', 'ephemeral_type', - 'incremental_strategy' + 'incremental_strategy' } ConfigKeys = AppendListFields | ExtendDictFields | ClobberFields