Skip to content

Commit af25632

Browse files
committed
v1.1.0 fixes
- Fixed ALTER TABLE ADD <column> <datatype> statement in macro oracle__alter_column_type - Added example to test incremental materialization with a list of unique keys - Added new macro oracle__alter_relation_add_remove_columns to add and remove columns
1 parent 3768a6a commit af25632

File tree

3 files changed

+48
-1
lines changed

3 files changed

+48
-1
lines changed

dbt/include/oracle/macros/adapters.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@
234234
{%- set tmp_column = column_name + "__dbt_alter" -%}
235235

236236
{% call statement('alter_column_type 1', fetch_result=False) %}
237-
alter table {{ relation.include(False, True, True).quote(schema=False, identifier=False) }} add column {{ tmp_column }} {{ new_column_type }}
237+
alter table {{ relation.include(False, True, True).quote(schema=False, identifier=False) }} add {{ tmp_column }} {{ new_column_type }}
238238
{% endcall %}
239239
{% call statement('alter_column_type 2', fetch_result=False) %}
240240
update {{ relation.include(False, True, True).quote(schema=False, identifier=False) }} set {{ tmp_column }} = {{ column_name }}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{% macro oracle__alter_relation_add_remove_columns(relation, add_columns, remove_columns) %}
2+
3+
{% if add_columns is none %}
4+
{% set add_columns = [] %}
5+
{% endif %}
6+
{% if remove_columns is none %}
7+
{% set remove_columns = [] %}
8+
{% endif %}
9+
10+
{% set sql -%}
11+
12+
alter {{ relation.type }} {{ relation }}
13+
14+
{% for column in add_columns %}
15+
add {{ column.name }} {{ column.data_type }}{{ ',' if not loop.last }}
16+
{% endfor %}{{ ',' if add_columns and remove_columns }}
17+
18+
{% for column in remove_columns %}
19+
drop column {{ column.name }}{{ ',' if not loop.last }}
20+
{% endfor %}
21+
22+
{%- endset -%}
23+
24+
{% do run_query(sql) %}
25+
{% endmacro %}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{{config(materialized='incremental',
2+
on_schema_change='sync_all_columns',
3+
unique_key=['prod_id', 'quantity_sold', 'time_id', 'promo_name'])}}
4+
WITH direct_sales_promo_cost AS (
5+
SELECT s.prod_id,
6+
s.quantity_sold,
7+
s.amount_sold,
8+
s.time_id,
9+
c.channel_desc,
10+
p.promo_name,
11+
p.promo_cost
12+
FROM {{ source('sh_database', 'sales') }} s,
13+
{{ source('sh_database', 'promotions') }} p,
14+
{{ source('sh_database', 'channels') }} c
15+
WHERE s.channel_id = 3
16+
AND s.promo_id = p.promo_id
17+
AND s.channel_id = c.channel_id
18+
{% if is_incremental() %}
19+
AND s.time_id > (SELECT MAX(time_id) FROM {{ this }})
20+
{% endif %}
21+
)
22+
SELECT * FROM direct_sales_promo_cost

0 commit comments

Comments
 (0)