From 6360ea003407f41d821b14d490dd249b8247fa06 Mon Sep 17 00:00:00 2001 From: LProcopi15 Date: Mon, 13 Jan 2025 13:13:04 -0800 Subject: [PATCH 01/13] update relation & add tests --- dbt/adapters/snowflake/impl.py | 1 + dbt/adapters/snowflake/relation.py | 5 +- tests/functional/iceberg/models.py | 48 +++++++++++++++++++- tests/functional/iceberg/test_table_basic.py | 8 +++- 4 files changed, 59 insertions(+), 3 deletions(-) diff --git a/dbt/adapters/snowflake/impl.py b/dbt/adapters/snowflake/impl.py index 7ccff9f8a..5194c017d 100644 --- a/dbt/adapters/snowflake/impl.py +++ b/dbt/adapters/snowflake/impl.py @@ -54,6 +54,7 @@ class SnowflakeConfig(AdapterConfig): # extended formats table_format: Optional[str] = None external_volume: Optional[str] = None + base_location: Optional[str] = None base_location_subpath: Optional[str] = None diff --git a/dbt/adapters/snowflake/relation.py b/dbt/adapters/snowflake/relation.py index 54db21924..d8233a6cf 100644 --- a/dbt/adapters/snowflake/relation.py +++ b/dbt/adapters/snowflake/relation.py @@ -204,7 +204,10 @@ def get_ddl_prefix_for_alter(self) -> str: return "" def get_iceberg_ddl_options(self, config: RelationConfig) -> str: - base_location: str = f"_dbt/{self.schema}/{self.name}" + if base_path := config.get("base_location"): + base_location: str = f"{base_path}" + else: + base_location: str = f"_dbt/{self.schema}/{self.name}" if subpath := config.get("base_location_subpath"): base_location += f"/{subpath}" diff --git a/tests/functional/iceberg/models.py b/tests/functional/iceberg/models.py index 6433f74bf..23f6a1c9f 100644 --- a/tests/functional/iceberg/models.py +++ b/tests/functional/iceberg/models.py @@ -23,6 +23,37 @@ select * from {{ ref('first_table') }} """ +_MODEL_BASIC_ICEBERG_MODEL_WITH_PATH = """ +{{ + config( + transient = "true", + materialized = "table", + cluster_by=['id'], + table_format="iceberg", + external_volume="s3_iceberg_snow", + base_location="base_path", + ) +}} + +select * from {{ ref('first_table') }} +""" + +_MODEL_BASIC_ICEBERG_MODEL_WITH_PATH_SUBPATH = """ +{{ + config( + transient = "true", + materialized = "table", + cluster_by=['id'], + table_format="iceberg", + external_volume="s3_iceberg_snow", + base_location="base_path", + base_location_subpath="subpath", + ) +}} + +select * from {{ ref('first_table') }} +""" + _MODEL_BASIC_DYNAMIC_TABLE_MODEL = """ {{ config( materialized='dynamic_table', @@ -36,6 +67,21 @@ select * from {{ ref('first_table') }} """ +_MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_PATH = """ +{{ + config( + transient = "true", + materialized = "table", + cluster_by=['id'], + table_format="iceberg", + external_volume="s3_iceberg_snow", + base_location="base_path", + ) +}} + +select * from {{ ref('first_table') }} +""" + _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_SUBPATH = """ {{ config( materialized='dynamic_table', @@ -82,4 +128,4 @@ ) }} select 1 as id -""" +""" \ No newline at end of file diff --git a/tests/functional/iceberg/test_table_basic.py b/tests/functional/iceberg/test_table_basic.py index e835a5fce..7eaeb619c 100644 --- a/tests/functional/iceberg/test_table_basic.py +++ b/tests/functional/iceberg/test_table_basic.py @@ -7,7 +7,10 @@ from tests.functional.iceberg.models import ( _MODEL_BASIC_TABLE_MODEL, _MODEL_BASIC_ICEBERG_MODEL, + _MODEL_BASIC_ICEBERG_MODEL_WITH_PATH, + _MODEL_BASIC_ICEBERG_MODEL_WITH_PATH_SUBPATH, _MODEL_BASIC_DYNAMIC_TABLE_MODEL, + _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_PATH, _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_SUBPATH, _MODEL_BUILT_ON_ICEBERG_TABLE, _MODEL_TABLE_BEFORE_SWAP, @@ -26,9 +29,12 @@ def models(self): return { "first_table.sql": _MODEL_BASIC_TABLE_MODEL, "iceberg_table.sql": _MODEL_BASIC_ICEBERG_MODEL, + "iceberg_tableb.sql": _MODEL_BASIC_ICEBERG_MODEL_WITH_PATH, + "iceberg_tablec.sql": _MODEL_BASIC_ICEBERG_MODEL_WITH_PATH_SUBPATH, "table_built_on_iceberg_table.sql": _MODEL_BUILT_ON_ICEBERG_TABLE, "dynamic_table.sql": _MODEL_BASIC_DYNAMIC_TABLE_MODEL, - "dynamic_tableb.sql": _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_SUBPATH, + "dynamic_tableb.sql": _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_PATH, + "dynamic_tablec.sql": _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_SUBPATH, } def test_iceberg_tables_build_and_can_be_referred(self, project): From 1c2a14a0ca32c9cce6387044fb39ab7008db01f2 Mon Sep 17 00:00:00 2001 From: LProcopi15 Date: Mon, 13 Jan 2025 13:19:28 -0800 Subject: [PATCH 02/13] switch if/else pattern --- dbt/adapters/snowflake/relation.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dbt/adapters/snowflake/relation.py b/dbt/adapters/snowflake/relation.py index d8233a6cf..e068e68d1 100644 --- a/dbt/adapters/snowflake/relation.py +++ b/dbt/adapters/snowflake/relation.py @@ -204,10 +204,11 @@ def get_ddl_prefix_for_alter(self) -> str: return "" def get_iceberg_ddl_options(self, config: RelationConfig) -> str: + base_location: str = f"_dbt/{self.schema}/{self.name}" + + # If the base_location config is supplied, overwrite the default value if base_path := config.get("base_location"): - base_location: str = f"{base_path}" - else: - base_location: str = f"_dbt/{self.schema}/{self.name}" + base_location = f"{base_path}" if subpath := config.get("base_location_subpath"): base_location += f"/{subpath}" From 76862d6b4d3f2a4e75991391cbc117523d2697da Mon Sep 17 00:00:00 2001 From: LProcopi15 Date: Mon, 13 Jan 2025 13:35:45 -0800 Subject: [PATCH 03/13] add change log --- .changes/unreleased/Features-20250113-133414.yaml | 6 ++++++ tests/functional/iceberg/models.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changes/unreleased/Features-20250113-133414.yaml diff --git a/.changes/unreleased/Features-20250113-133414.yaml b/.changes/unreleased/Features-20250113-133414.yaml new file mode 100644 index 000000000..9392411d2 --- /dev/null +++ b/.changes/unreleased/Features-20250113-133414.yaml @@ -0,0 +1,6 @@ +kind: Features +body: Added support for custom iceberg base_location +time: 2025-01-13T13:34:14.326047-08:00 +custom: + Author: LProcopi15 + Issue: "1284" diff --git a/tests/functional/iceberg/models.py b/tests/functional/iceberg/models.py index 23f6a1c9f..9d3cd7327 100644 --- a/tests/functional/iceberg/models.py +++ b/tests/functional/iceberg/models.py @@ -128,4 +128,4 @@ ) }} select 1 as id -""" \ No newline at end of file +""" From 774f5ad6f320318c2b0e6224c60ab7e249181909 Mon Sep 17 00:00:00 2001 From: LProcopi15 Date: Tue, 14 Jan 2025 15:02:50 -0800 Subject: [PATCH 04/13] add test for dynamic table with path and subpath --- tests/functional/iceberg/models.py | 17 +++++++++++++++++ tests/functional/iceberg/test_table_basic.py | 6 ++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/tests/functional/iceberg/models.py b/tests/functional/iceberg/models.py index 9d3cd7327..3916ef6dd 100644 --- a/tests/functional/iceberg/models.py +++ b/tests/functional/iceberg/models.py @@ -82,6 +82,23 @@ select * from {{ ref('first_table') }} """ +_MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_PATH_SUBPATH = """ +{{ + config( + transient = "true", + materialized = "table", + cluster_by=['id'], + table_format="iceberg", + external_volume="s3_iceberg_snow", + base_location="base_path", + base_location_subpath='subpath', + ) +}} + +select * from {{ ref('first_table') }} +""" + + _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_SUBPATH = """ {{ config( materialized='dynamic_table', diff --git a/tests/functional/iceberg/test_table_basic.py b/tests/functional/iceberg/test_table_basic.py index 7eaeb619c..faf4b34f7 100644 --- a/tests/functional/iceberg/test_table_basic.py +++ b/tests/functional/iceberg/test_table_basic.py @@ -11,6 +11,7 @@ _MODEL_BASIC_ICEBERG_MODEL_WITH_PATH_SUBPATH, _MODEL_BASIC_DYNAMIC_TABLE_MODEL, _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_PATH, + _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_PATH_SUBPATH, _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_SUBPATH, _MODEL_BUILT_ON_ICEBERG_TABLE, _MODEL_TABLE_BEFORE_SWAP, @@ -34,12 +35,13 @@ def models(self): "table_built_on_iceberg_table.sql": _MODEL_BUILT_ON_ICEBERG_TABLE, "dynamic_table.sql": _MODEL_BASIC_DYNAMIC_TABLE_MODEL, "dynamic_tableb.sql": _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_PATH, - "dynamic_tablec.sql": _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_SUBPATH, + "dynamic_tablec.sql": _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_PATH_SUBPATH, + "dynamic_tabled.sql": _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_SUBPATH, } def test_iceberg_tables_build_and_can_be_referred(self, project): run_results = run_dbt() - assert len(run_results) == 5 + assert len(run_results) == 9 class TestIcebergTableTypeBuildsOnExistingTable: From 016ccf8eb860a4d87ed187dde767943ae327b086 Mon Sep 17 00:00:00 2001 From: LProcopi15 Date: Wed, 15 Jan 2025 13:02:34 -0800 Subject: [PATCH 05/13] modify base_location config --- dbt/adapters/snowflake/relation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbt/adapters/snowflake/relation.py b/dbt/adapters/snowflake/relation.py index e068e68d1..1082088fa 100644 --- a/dbt/adapters/snowflake/relation.py +++ b/dbt/adapters/snowflake/relation.py @@ -208,7 +208,7 @@ def get_iceberg_ddl_options(self, config: RelationConfig) -> str: # If the base_location config is supplied, overwrite the default value if base_path := config.get("base_location"): - base_location = f"{base_path}" + base_location = f"{base_path}/{self.name}" if subpath := config.get("base_location_subpath"): base_location += f"/{subpath}" From c4ffbae544d260bc80dab85c0116f9949662f533 Mon Sep 17 00:00:00 2001 From: LProcopi15 Date: Thu, 16 Jan 2025 11:32:08 -0800 Subject: [PATCH 06/13] update to base_location_root, include schema and table name in path --- dbt/adapters/snowflake/impl.py | 2 +- dbt/adapters/snowflake/relation.py | 7 ++----- tests/functional/iceberg/models.py | 8 ++++---- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/dbt/adapters/snowflake/impl.py b/dbt/adapters/snowflake/impl.py index 5194c017d..6ae8ef183 100644 --- a/dbt/adapters/snowflake/impl.py +++ b/dbt/adapters/snowflake/impl.py @@ -54,7 +54,7 @@ class SnowflakeConfig(AdapterConfig): # extended formats table_format: Optional[str] = None external_volume: Optional[str] = None - base_location: Optional[str] = None + base_location_root: Optional[str] = None base_location_subpath: Optional[str] = None diff --git a/dbt/adapters/snowflake/relation.py b/dbt/adapters/snowflake/relation.py index 1082088fa..b80c4d1e1 100644 --- a/dbt/adapters/snowflake/relation.py +++ b/dbt/adapters/snowflake/relation.py @@ -204,11 +204,8 @@ def get_ddl_prefix_for_alter(self) -> str: return "" def get_iceberg_ddl_options(self, config: RelationConfig) -> str: - base_location: str = f"_dbt/{self.schema}/{self.name}" - - # If the base_location config is supplied, overwrite the default value - if base_path := config.get("base_location"): - base_location = f"{base_path}/{self.name}" + # If the base_location_root config is supplied, overwrite the default value ("_dbt/") + base_location: str = f"{config.get("base_location_root", "_dbt")}/{self.schema}/{self.name}" if subpath := config.get("base_location_subpath"): base_location += f"/{subpath}" diff --git a/tests/functional/iceberg/models.py b/tests/functional/iceberg/models.py index 3916ef6dd..614cb4a79 100644 --- a/tests/functional/iceberg/models.py +++ b/tests/functional/iceberg/models.py @@ -31,7 +31,7 @@ cluster_by=['id'], table_format="iceberg", external_volume="s3_iceberg_snow", - base_location="base_path", + base_location_root="base_path", ) }} @@ -46,7 +46,7 @@ cluster_by=['id'], table_format="iceberg", external_volume="s3_iceberg_snow", - base_location="base_path", + base_location_root="base_path", base_location_subpath="subpath", ) }} @@ -75,7 +75,7 @@ cluster_by=['id'], table_format="iceberg", external_volume="s3_iceberg_snow", - base_location="base_path", + base_location_root="base_path", ) }} @@ -90,7 +90,7 @@ cluster_by=['id'], table_format="iceberg", external_volume="s3_iceberg_snow", - base_location="base_path", + base_location_root="base_path", base_location_subpath='subpath', ) }} From 4575ffece5702d6da75d7ea2b0c1c3f690ac69ff Mon Sep 17 00:00:00 2001 From: LProcopi15 Date: Thu, 16 Jan 2025 11:49:32 -0800 Subject: [PATCH 07/13] resolve linting error (f-string nested double quotes) --- dbt/adapters/snowflake/relation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbt/adapters/snowflake/relation.py b/dbt/adapters/snowflake/relation.py index b80c4d1e1..f3558cd0c 100644 --- a/dbt/adapters/snowflake/relation.py +++ b/dbt/adapters/snowflake/relation.py @@ -205,7 +205,7 @@ def get_ddl_prefix_for_alter(self) -> str: def get_iceberg_ddl_options(self, config: RelationConfig) -> str: # If the base_location_root config is supplied, overwrite the default value ("_dbt/") - base_location: str = f"{config.get("base_location_root", "_dbt")}/{self.schema}/{self.name}" + base_location: str = f"{config.get('base_location_root', '_dbt')}/{self.schema}/{self.name}" if subpath := config.get("base_location_subpath"): base_location += f"/{subpath}" From 087d7dae161e7e00f28f2b698cd0eb22bfbe252f Mon Sep 17 00:00:00 2001 From: LProcopi15 Date: Thu, 16 Jan 2025 12:20:15 -0800 Subject: [PATCH 08/13] resolve linting error (move to new line) --- dbt/adapters/snowflake/relation.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dbt/adapters/snowflake/relation.py b/dbt/adapters/snowflake/relation.py index f3558cd0c..f3ee3e510 100644 --- a/dbt/adapters/snowflake/relation.py +++ b/dbt/adapters/snowflake/relation.py @@ -205,7 +205,9 @@ def get_ddl_prefix_for_alter(self) -> str: def get_iceberg_ddl_options(self, config: RelationConfig) -> str: # If the base_location_root config is supplied, overwrite the default value ("_dbt/") - base_location: str = f"{config.get('base_location_root', '_dbt')}/{self.schema}/{self.name}" + base_location: str = ( + f"{config.get('base_location_root', '_dbt')}/{self.schema}/{self.name}" + ) if subpath := config.get("base_location_subpath"): base_location += f"/{subpath}" From 17b48211968f82ca36b9b416be4e61828fbd03b6 Mon Sep 17 00:00:00 2001 From: LProcopi15 Date: Thu, 16 Jan 2025 17:22:08 -0800 Subject: [PATCH 09/13] add unit tests & make final edits to functional tests --- tests/functional/iceberg/models.py | 8 +-- tests/unit/test_iceberg_location.py | 81 +++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 tests/unit/test_iceberg_location.py diff --git a/tests/functional/iceberg/models.py b/tests/functional/iceberg/models.py index 614cb4a79..606792b36 100644 --- a/tests/functional/iceberg/models.py +++ b/tests/functional/iceberg/models.py @@ -31,7 +31,7 @@ cluster_by=['id'], table_format="iceberg", external_volume="s3_iceberg_snow", - base_location_root="base_path", + base_location_root="root_path", ) }} @@ -46,7 +46,7 @@ cluster_by=['id'], table_format="iceberg", external_volume="s3_iceberg_snow", - base_location_root="base_path", + base_location_root="root_path", base_location_subpath="subpath", ) }} @@ -75,7 +75,7 @@ cluster_by=['id'], table_format="iceberg", external_volume="s3_iceberg_snow", - base_location_root="base_path", + base_location_root="root_path", ) }} @@ -90,7 +90,7 @@ cluster_by=['id'], table_format="iceberg", external_volume="s3_iceberg_snow", - base_location_root="base_path", + base_location_root="root_path", base_location_subpath='subpath', ) }} diff --git a/tests/unit/test_iceberg_location.py b/tests/unit/test_iceberg_location.py new file mode 100644 index 000000000..58529e4e9 --- /dev/null +++ b/tests/unit/test_iceberg_location.py @@ -0,0 +1,81 @@ +import pytest +from dbt.adapters.snowflake.relation import SnowflakeRelation + + +@pytest.fixture +def iceberg_config() -> dict: + """Fixture providing standard Iceberg configuration.""" + return { + "schema": "my_schema", + "identifier": "my_table", + "external_volume": "s3_iceberg_snow", + "base_location_root": "root_path", + "base_location_subpath": "subpath", + } + + +def get_actual_base_location(config: dict[str, str]) -> str: + """Get the actual base location from the configuration by parsing the DDL predicates.""" + + relation = SnowflakeRelation.create( + schema=config["schema"], + identifier=config["identifier"], + ) + + actual_ddl_predicates = relation.get_iceberg_ddl_options(config).strip() + actual_base_location = actual_ddl_predicates.split("base_location = ")[1] + + return actual_base_location + + +def test_iceberg_path_and_subpath(iceberg_config: dict[str, str]): + """Test when base_location_root and base_location_subpath are provided""" + expected_base_location = ( + f"'{iceberg_config['base_location_root']}/" + f"{iceberg_config['schema']}/" + f"{iceberg_config['identifier']}/" + f"{iceberg_config['base_location_subpath']}'" + ).strip() + + assert get_actual_base_location(iceberg_config) == expected_base_location + + +def test_iceberg_only_subpath(iceberg_config: dict[str, str]): + """Test when only base_location_subpath is provided""" + del iceberg_config["base_location_root"] + + expected_base_location = ( + f"'_dbt/" + f"{iceberg_config['schema']}/" + f"{iceberg_config['identifier']}/" + f"{iceberg_config['base_location_subpath']}'" + ).strip() + + assert get_actual_base_location(iceberg_config) == expected_base_location + + +def test_iceberg_only_path(iceberg_config: dict[str, str]): + """Test when only base_location_root is provided""" + del iceberg_config["base_location_subpath"] + + expected_base_location = ( + f"'{iceberg_config['base_location_root']}/" + f"{iceberg_config['schema']}/" + f"{iceberg_config['identifier']}'" + ).strip() + + assert get_actual_base_location(iceberg_config) == expected_base_location + + +def test_iceberg_no_path(iceberg_config: dict[str, str]): + """Test when no base_location_root or is base_location_subpath provided""" + del iceberg_config["base_location_root"] + del iceberg_config["base_location_subpath"] + + expected_base_location = ( + f"'_dbt/" + f"{iceberg_config['schema']}/" + f"{iceberg_config['identifier']}'" + ).strip() + + assert get_actual_base_location(iceberg_config) == expected_base_location From 4f57390659110bc77b19de525cdb17c0a73bbe00 Mon Sep 17 00:00:00 2001 From: LProcopi15 Date: Fri, 17 Jan 2025 08:40:25 -0800 Subject: [PATCH 10/13] lint unit test --- tests/unit/test_iceberg_location.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/unit/test_iceberg_location.py b/tests/unit/test_iceberg_location.py index 58529e4e9..dca82b47e 100644 --- a/tests/unit/test_iceberg_location.py +++ b/tests/unit/test_iceberg_location.py @@ -73,9 +73,7 @@ def test_iceberg_no_path(iceberg_config: dict[str, str]): del iceberg_config["base_location_subpath"] expected_base_location = ( - f"'_dbt/" - f"{iceberg_config['schema']}/" - f"{iceberg_config['identifier']}'" + f"'_dbt/" f"{iceberg_config['schema']}/" f"{iceberg_config['identifier']}'" ).strip() assert get_actual_base_location(iceberg_config) == expected_base_location From 8d34e8f008e1f35ba08b3644376043890e32f8de Mon Sep 17 00:00:00 2001 From: LProcopi15 Date: Fri, 17 Jan 2025 09:09:21 -0800 Subject: [PATCH 11/13] update changie --- .changes/unreleased/Features-20250113-133414.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changes/unreleased/Features-20250113-133414.yaml b/.changes/unreleased/Features-20250113-133414.yaml index 9392411d2..869ed6b17 100644 --- a/.changes/unreleased/Features-20250113-133414.yaml +++ b/.changes/unreleased/Features-20250113-133414.yaml @@ -1,5 +1,5 @@ kind: Features -body: Added support for custom iceberg base_location +body: Added support for custom iceberg base_location_root time: 2025-01-13T13:34:14.326047-08:00 custom: Author: LProcopi15 From 8a26c7d330d013b8ca36a6a3b287129a239dafe2 Mon Sep 17 00:00:00 2001 From: Colin Rogers <111200756+colin-rogers-dbt@users.noreply.github.com> Date: Fri, 24 Jan 2025 10:30:50 -0800 Subject: [PATCH 12/13] update dt test cases for iceberg to be dynamic --- tests/functional/iceberg/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/functional/iceberg/models.py b/tests/functional/iceberg/models.py index 606792b36..b2229e620 100644 --- a/tests/functional/iceberg/models.py +++ b/tests/functional/iceberg/models.py @@ -70,7 +70,7 @@ _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_PATH = """ {{ config( - transient = "true", + transient = "dynamic_table", materialized = "table", cluster_by=['id'], table_format="iceberg", @@ -86,7 +86,7 @@ {{ config( transient = "true", - materialized = "table", + materialized = "dynamic_table", cluster_by=['id'], table_format="iceberg", external_volume="s3_iceberg_snow", From 21b12686220b159cbee6fb8d5810e4377e1fa2ec Mon Sep 17 00:00:00 2001 From: Colin Rogers <111200756+colin-rogers-dbt@users.noreply.github.com> Date: Fri, 24 Jan 2025 10:32:25 -0800 Subject: [PATCH 13/13] fix copy pasta --- tests/functional/iceberg/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/functional/iceberg/models.py b/tests/functional/iceberg/models.py index b2229e620..e6da6aca4 100644 --- a/tests/functional/iceberg/models.py +++ b/tests/functional/iceberg/models.py @@ -70,8 +70,8 @@ _MODEL_BASIC_DYNAMIC_TABLE_MODEL_WITH_PATH = """ {{ config( - transient = "dynamic_table", - materialized = "table", + transient = "transient", + materialized = "dynamic_table", cluster_by=['id'], table_format="iceberg", external_volume="s3_iceberg_snow",