Skip to content

Commit

Permalink
Merge branch 'main' into patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
mikealfare authored Oct 11, 2024
2 parents 109f72b + 4df6e54 commit aa49d2b
Show file tree
Hide file tree
Showing 8 changed files with 46 additions and 17 deletions.
5 changes: 5 additions & 0 deletions .changes/1.10.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## dbt-adapters 1.10.2 - October 01, 2024

### Under the Hood

- dbt-tests-adapters: Add required begin to microbatch model config to BaseMicrobatch test ([#315](https://github.com/dbt-labs/dbt-adapters/issues/315))
6 changes: 6 additions & 0 deletions .changes/unreleased/Features-20240927-134248.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
kind: Features
body: Enable setting current value of dbt_valid_to
time: 2024-09-27T13:42:48.654556-04:00
custom:
Author: gshank
Issue: "320"
7 changes: 0 additions & 7 deletions .changes/unreleased/Under the Hood-20240923-184719.yaml

This file was deleted.

10 changes: 8 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
and is generated by [Changie](https://github.com/miniscruff/changie).

## dbt-adapters 1.10.2 - October 01, 2024

### Under the Hood

- dbt-tests-adapters: Add required begin to microbatch model config to BaseMicrobatch test ([#315](https://github.com/dbt-labs/dbt-adapters/issues/315))



## dbt-adapters 1.10.1 - September 16, 2024

## dbt-adapters 1.10.0 - September 12, 2024
Expand All @@ -15,8 +23,6 @@ and is generated by [Changie](https://github.com/miniscruff/changie).

- Allow configuring of snapshot column names ([#289](https://github.com/dbt-labs/dbt-adapters/issues/289))



## dbt-adapters 1.6.1 - September 16, 2024

## dbt-adapters 1.6.0 - September 12, 2024
Expand Down
2 changes: 1 addition & 1 deletion dbt-tests-adapter/dbt/tests/__about__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version = "1.10.1"
version = "1.10.2"
8 changes: 5 additions & 3 deletions dbt-tests-adapter/dbt/tests/adapter/hooks/test_run_hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

import pytest

from dbt_common.exceptions import DbtDatabaseError
from dbt.tests.adapter.hooks import fixtures
from dbt.tests.util import check_table_does_not_exist, run_dbt

Expand All @@ -11,8 +12,8 @@ class BasePrePostRunHooks:
@pytest.fixture(scope="function")
def setUp(self, project):
project.run_sql_file(project.test_data_dir / Path("seed_run.sql"))
project.run_sql(f"drop table if exists { project.test_schema }.schemas")
project.run_sql(f"drop table if exists { project.test_schema }.db_schemas")
project.run_sql(f"drop table if exists {project.test_schema}.schemas")
project.run_sql(f"drop table if exists {project.test_schema}.db_schemas")
os.environ["TERM_TEST"] = "TESTING"

@pytest.fixture(scope="class")
Expand Down Expand Up @@ -158,7 +159,8 @@ def project_config_update(self):
}

def test_missing_column_pre_hook(self, project):
run_dbt(["run"], expect_pass=False)
with pytest.raises(DbtDatabaseError):
run_dbt(["run"], expect_pass=False)


class TestAfterRunHooks(BaseAfterRunHooks):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,13 @@
{{ strategy.unique_key }} as dbt_unique_key

from {{ target_relation }}
where {{ columns.dbt_valid_to }} is null
where
{% if config.get('dbt_valid_to_current') %}
{# Check for either dbt_valid_to_current OR null, in order to correctly update records with nulls #}
( {{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }} or {{ columns.dbt_valid_to }} is null)
{% else %}
{{ columns.dbt_valid_to }} is null
{% endif %}

),

Expand All @@ -64,7 +70,7 @@
{{ strategy.unique_key }} as dbt_unique_key,
{{ strategy.updated_at }} as {{ columns.dbt_updated_at }},
{{ strategy.updated_at }} as {{ columns.dbt_valid_from }},
nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}) as {{ columns.dbt_valid_to }},
{{ get_dbt_valid_to_current(strategy, columns) }},
{{ strategy.scd_id }} as {{ columns.dbt_scd_id }}

from snapshot_query
Expand Down Expand Up @@ -166,7 +172,7 @@
{{ strategy.scd_id }} as {{ columns.dbt_scd_id }},
{{ strategy.updated_at }} as {{ columns.dbt_updated_at }},
{{ strategy.updated_at }} as {{ columns.dbt_valid_from }},
nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}) as {{ columns.dbt_valid_to }}
{{ get_dbt_valid_to_current(strategy, columns) }}
from (
{{ sql }}
) sbq
Expand Down Expand Up @@ -210,3 +216,9 @@
{% endif %}
{% endif %}
{% endmacro %}

{% macro get_dbt_valid_to_current(strategy, columns) %}
{% set dbt_valid_to_current = config.get('dbt_valid_to_current') or "null" %}
coalesce(nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}), {{dbt_valid_to_current}})
as {{ columns.dbt_valid_to }}
{% endmacro %}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,12 @@
on DBT_INTERNAL_SOURCE.{{ columns.dbt_scd_id }} = DBT_INTERNAL_DEST.{{ columns.dbt_scd_id }}

when matched
and DBT_INTERNAL_DEST.{{ columns.dbt_valid_to }} is null
{% if config.get("dbt_valid_to_current") %}
and (DBT_INTERNAL_DEST.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }} or
DBT_INTERNAL_DEST.{{ columns.dbt_valid_to }} is null)
{% else %}
and DBT_INTERNAL_DEST.{{ columns.dbt_valid_to }} is null
{% endif %}
and DBT_INTERNAL_SOURCE.dbt_change_type in ('update', 'delete')
then update
set {{ columns.dbt_valid_to }} = DBT_INTERNAL_SOURCE.{{ columns.dbt_valid_to }}
Expand Down

0 comments on commit aa49d2b

Please sign in to comment.