diff --git a/macros/dbt_segment_utils.sql b/macros/generate_sessionization_incremental_filter.sql similarity index 54% rename from macros/dbt_segment_utils.sql rename to macros/generate_sessionization_incremental_filter.sql index 886779d..14723bf 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') (merge_target, filter_tstamp, max_tstamp)) }} +{% 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