From 52222e0a6f2740a02fa114585f0e5bf132bb33a3 Mon Sep 17 00:00:00 2001 From: swanderz Date: Fri, 5 Nov 2021 17:33:29 -0700 Subject: [PATCH] always store results; but drop them unless specified to store --- .../macros/materializations/test.sql | 49 +++++++++---------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/dbt/include/sqlserver/macros/materializations/test.sql b/dbt/include/sqlserver/macros/materializations/test.sql index 6d32308f..7ecc2437 100644 --- a/dbt/include/sqlserver/macros/materializations/test.sql +++ b/dbt/include/sqlserver/macros/materializations/test.sql @@ -13,37 +13,28 @@ {%- materialization test, adapter='sqlserver' -%} - {% set relations = [] %} + {% set relations = [] %} - {% if should_store_failures() %} + {% set identifier = model['alias'] %} + {% set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %} + {% set target_relation = api.Relation.create( + identifier=identifier, schema=schema, database=database, type='table') -%} %} - {% set identifier = model['alias'] %} - {% set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %} - {% set target_relation = api.Relation.create( - identifier=identifier, schema=schema, database=database, type='table') -%} %} - - {% if old_relation %} - {% do adapter.drop_relation(old_relation) %} - {% endif %} - - {% call statement(auto_begin=True) %} - {{ create_table_as(False, target_relation, sql) }} - {% endcall %} - - {% do relations.append(target_relation) %} + {% if old_relation %} + {% do adapter.drop_relation(old_relation) %} + {% endif %} - {% set main_sql %} - select * - from {{ target_relation }} - {% endset %} - - {{ adapter.commit() }} + {% call statement(auto_begin=True) %} + {{ create_table_as(False, target_relation, sql) }} + {% endcall %} + + {% set main_sql %} + select * + from {{ target_relation }} + {% endset %} - {% else %} - - {% set main_sql = sql %} + {{ adapter.commit() }} - {% endif %} {% set limit = config.get('limit') %} {% set fail_calc = config.get('fail_calc') %} @@ -55,6 +46,12 @@ {{ get_test_sql(main_sql, fail_calc, warn_if, error_if, limit)}} {%- endcall %} + + {% if should_store_failures() %} + {% do relations.append(target_relation) %} + {% elif not should_store_failures() %} + {% do adapter.drop_relation(target_relation) %} + {% endif %} {{ return({'relations': relations}) }}