|
1 | 1 | {% materialization incremental, adapter='athena' -%}
|
2 |
| - |
3 | 2 | {% set raw_strategy = config.get('incremental_strategy') or 'insert_overwrite' %}
|
4 | 3 | {% set table_type = config.get('table_type', default='hive') | lower %}
|
5 | 4 | {% set strategy = validate_get_incremental_strategy(raw_strategy, table_type) %}
|
|
11 | 10 | {% set force_batch = config.get('force_batch', False) | as_bool -%}
|
12 | 11 | {% set target_relation = this.incorporate(type='table') %}
|
13 | 12 | {% set existing_relation = load_relation(this) %}
|
14 |
| - {% set tmp_relation = make_temp_relation(this) %} |
| 13 | + {% set old_tmp_relation = adapter.get_relation(identifier=target_relation.identifier ~ '__dbt_tmp', |
| 14 | + schema=schema, |
| 15 | + database=database) %} |
| 16 | + {% set tmp_relation = make_temp_relation(target_relation, '__dbt_tmp') %} |
15 | 17 |
|
16 | 18 | -- If no partitions are used with insert_overwrite, we fall back to append mode.
|
17 | 19 | {% if partitioned_by is none and strategy == 'insert_overwrite' %}
|
|
32 | 34 | {% set query_result = safe_create_table_as(False, target_relation, sql, force_batch) -%}
|
33 | 35 | {% set build_sql = "select '" ~ query_result ~ "'" -%}
|
34 | 36 | {% elif partitioned_by is not none and strategy == 'insert_overwrite' %}
|
35 |
| - {% set tmp_relation = make_temp_relation(target_relation) %} |
36 |
| - {% if tmp_relation is not none %} |
37 |
| - {% do drop_relation(tmp_relation) %} |
| 37 | + {% if old_tmp_relation is not none %} |
| 38 | + {% do drop_relation(old_tmp_relation) %} |
38 | 39 | {% endif %}
|
39 | 40 | {% set query_result = safe_create_table_as(True, tmp_relation, sql, force_batch) -%}
|
40 | 41 | {% do delete_overlapping_partitions(target_relation, tmp_relation, partitioned_by) %}
|
|
44 | 45 | %}
|
45 | 46 | {% do to_drop.append(tmp_relation) %}
|
46 | 47 | {% elif strategy == 'append' %}
|
47 |
| - {% set tmp_relation = make_temp_relation(target_relation) %} |
48 |
| - {% if tmp_relation is not none %} |
49 |
| - {% do drop_relation(tmp_relation) %} |
| 48 | + {% if old_tmp_relation is not none %} |
| 49 | + {% do drop_relation(old_tmp_relation) %} |
50 | 50 | {% endif %}
|
51 | 51 | {% set query_result = safe_create_table_as(True, tmp_relation, sql, force_batch) -%}
|
52 | 52 | {% set build_sql = incremental_insert(
|
|
74 | 74 | {% do exceptions.raise_compiler_error(inc_predicates_not_list) %}
|
75 | 75 | {% endif %}
|
76 | 76 | {% endif %}
|
77 |
| - {% set tmp_relation = make_temp_relation(target_relation) %} |
78 |
| - {% if tmp_relation is not none %} |
79 |
| - {% do drop_relation(tmp_relation) %} |
| 77 | + {% if old_tmp_relation is not none %} |
| 78 | + {% do drop_relation(old_tmp_relation) %} |
80 | 79 | {% endif %}
|
81 | 80 | {% set query_result = safe_create_table_as(True, tmp_relation, sql, force_batch) -%}
|
82 | 81 | {% set build_sql = iceberg_merge(
|
|
0 commit comments