From cfe2e9eedb6733d9821d3b26e7650bc33cee462d Mon Sep 17 00:00:00 2001 From: Joel Labes Date: Fri, 25 Feb 2022 15:34:26 +1300 Subject: [PATCH 1/2] Dispatch sessionization incremental filter --- ...ate_sessionization_incremental_filter.sql} | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) rename macros/{dbt_segment_utils.sql => generate_sessionization_incremental_filter.sql} (55%) diff --git a/macros/dbt_segment_utils.sql b/macros/generate_sessionization_incremental_filter.sql similarity index 55% rename from macros/dbt_segment_utils.sql rename to macros/generate_sessionization_incremental_filter.sql index 886779d..fa9a4b7 100644 --- a/macros/dbt_segment_utils.sql +++ b/macros/generate_sessionization_incremental_filter.sql @@ -1,17 +1,10 @@ {% macro generate_sessionization_incremental_filter(merge_target, filter_tstamp, max_tstamp) %} + {{ return(adapter.dispatch('generate_sessionization_incremental_filter', 'segment') (expression)) }} +{% endmacro %} - {% if target.type == 'bigquery' %} - where {{ filter_tstamp }} >= ( - select - timestamp_sub( - max({{ max_tstamp }}), - interval {{ var('segment_sessionization_trailing_window') }} hour - ) - from {{ merge_target }} - ) - {% elif target.type == 'postgres' %} - where cast({{ filter_tstamp }} as timestamp) >= ( +{% macro default__generate_sessionization_incremental_filter(merge_target, filter_tstamp, max_tstamp) %} + where {{ filter_tstamp }} >= ( select {{ dbt_utils.dateadd( 'hour', @@ -19,10 +12,22 @@ 'max(' ~ max_tstamp ~ ')' ) }} from {{ merge_target }} - ) + ) +{%- endmacro -%} - {% else %} - where {{ filter_tstamp }} >= ( +{% macro bigquery__generate_sessionization_incremental_filter(merge_target, filter_tstamp, max_tstamp) %} + where {{ filter_tstamp }} >= ( + select + timestamp_sub( + max({{ max_tstamp }}), + interval {{ var('segment_sessionization_trailing_window') }} hour + ) + from {{ merge_target }} + ) +{%- endmacro -%} + +{% macro postgres__generate_sessionization_incremental_filter(merge_target, filter_tstamp, max_tstamp) %} + where cast({{ filter_tstamp }} as timestamp) >= ( select {{ dbt_utils.dateadd( 'hour', @@ -30,8 +35,5 @@ 'max(' ~ max_tstamp ~ ')' ) }} from {{ merge_target }} - ) - - {% endif %} - -{% endmacro %} \ No newline at end of file + ) +{%- endmacro -%} \ No newline at end of file From df3b20228893b323f84cb22a067bcf102bc39c93 Mon Sep 17 00:00:00 2001 From: Joel Labes Date: Fri, 25 Feb 2022 15:36:46 +1300 Subject: [PATCH 2/2] Pass through correct params --- macros/generate_sessionization_incremental_filter.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macros/generate_sessionization_incremental_filter.sql b/macros/generate_sessionization_incremental_filter.sql index fa9a4b7..14723bf 100644 --- a/macros/generate_sessionization_incremental_filter.sql +++ b/macros/generate_sessionization_incremental_filter.sql @@ -1,5 +1,5 @@ {% macro generate_sessionization_incremental_filter(merge_target, filter_tstamp, max_tstamp) %} - {{ return(adapter.dispatch('generate_sessionization_incremental_filter', 'segment') (expression)) }} + {{ return(adapter.dispatch('generate_sessionization_incremental_filter', 'segment') (merge_target, filter_tstamp, max_tstamp)) }} {% endmacro %}