From 77dcf2e609bd0528de51d2a30f1bd59110c1b12f Mon Sep 17 00:00:00 2001 From: Joel Labes Date: Fri, 29 Jul 2022 10:00:27 +1200 Subject: [PATCH] dbt Core 1.2 and utils 0.9.0 prep (#625) * Add cross-db deprecation warnings to all migrated macros * Require core 1.2-rc1 or higher * Warn about removal of insert_by_period * Update insert_by_period_materialization.sql * Remove `dbt.` prefix from code review * 1.2 final is out so remove rc1 reference --- dbt_project.yml | 2 +- macros/cross_db_utils/any_value.sql | 3 +-- macros/cross_db_utils/bool_or.sql | 3 +-- macros/cross_db_utils/cast_bool_to_text.sql | 3 +-- macros/cross_db_utils/concat.sql | 3 +-- macros/cross_db_utils/datatypes.sql | 9 ++++++--- macros/cross_db_utils/date_trunc.sql | 3 +-- macros/cross_db_utils/dateadd.sql | 3 +-- macros/cross_db_utils/datediff.sql | 3 +-- macros/cross_db_utils/escape_single_quotes.sql | 3 +-- macros/cross_db_utils/except.sql | 3 +-- macros/cross_db_utils/hash.sql | 3 +-- macros/cross_db_utils/intersect.sql | 3 +-- macros/cross_db_utils/last_day.sql | 3 +-- macros/cross_db_utils/length.sql | 3 +-- macros/cross_db_utils/listagg.sql | 3 +-- macros/cross_db_utils/literal.sql | 3 +-- macros/cross_db_utils/position.sql | 3 +-- macros/cross_db_utils/replace.sql | 3 +-- macros/cross_db_utils/right.sql | 3 +-- macros/cross_db_utils/safe_cast.sql | 3 +-- macros/cross_db_utils/split_part.sql | 3 +-- macros/cross_db_utils/xdb_deprecation_warning.sql | 4 ++++ .../insert_by_period_materialization.sql | 3 +++ 24 files changed, 34 insertions(+), 44 deletions(-) create mode 100644 macros/cross_db_utils/xdb_deprecation_warning.sql diff --git a/dbt_project.yml b/dbt_project.yml index 833501d8..155fa30f 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -1,7 +1,7 @@ name: 'dbt_utils' version: '0.1.0' -require-dbt-version: [">=1.0.0", "<2.0.0"] +require-dbt-version: [">=1.2.0", "<2.0.0"] config-version: 2 diff --git a/macros/cross_db_utils/any_value.sql b/macros/cross_db_utils/any_value.sql index da4fb055..eefb1a7c 100644 --- a/macros/cross_db_utils/any_value.sql +++ b/macros/cross_db_utils/any_value.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro any_value(expression) -%} {{ return(adapter.dispatch('any_value', 'dbt_utils') (expression)) }} {% endmacro %} {% macro default__any_value(expression) -%} + {% do dbt_utils.xdb_deprecation_warning('any_value', model.package_name, model.name) %} {{ return(adapter.dispatch('any_value', 'dbt') (expression)) }} {% endmacro %} diff --git a/macros/cross_db_utils/bool_or.sql b/macros/cross_db_utils/bool_or.sql index 03ab4163..d03c4da6 100644 --- a/macros/cross_db_utils/bool_or.sql +++ b/macros/cross_db_utils/bool_or.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro bool_or(expression) -%} {{ return(adapter.dispatch('bool_or', 'dbt_utils') (expression)) }} {% endmacro %} {% macro default__bool_or(expression) -%} + {% do dbt_utils.xdb_deprecation_warning('bool_or', model.package_name, model.name) %} {{ return(adapter.dispatch('bool_or', 'dbt') (expression)) }} {% endmacro %} diff --git a/macros/cross_db_utils/cast_bool_to_text.sql b/macros/cross_db_utils/cast_bool_to_text.sql index 0ffe03fd..82516e7f 100644 --- a/macros/cross_db_utils/cast_bool_to_text.sql +++ b/macros/cross_db_utils/cast_bool_to_text.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro cast_bool_to_text(field) %} {{ adapter.dispatch('cast_bool_to_text', 'dbt_utils') (field) }} {% endmacro %} {% macro default__cast_bool_to_text(field) %} + {% do dbt_utils.xdb_deprecation_warning('cast_bool_to_text', model.package_name, model.name) %} {{ adapter.dispatch('cast_bool_to_text', 'dbt') (field) }} {% endmacro %} diff --git a/macros/cross_db_utils/concat.sql b/macros/cross_db_utils/concat.sql index 1425936c..56964e10 100644 --- a/macros/cross_db_utils/concat.sql +++ b/macros/cross_db_utils/concat.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro concat(fields) -%} {{ return(adapter.dispatch('concat', 'dbt_utils')(fields)) }} {%- endmacro %} {% macro default__concat(fields) -%} + {% do dbt_utils.xdb_deprecation_warning('concat', model.package_name, model.name) %} {{ return(adapter.dispatch('concat', 'dbt')(fields)) }} {%- endmacro %} diff --git a/macros/cross_db_utils/datatypes.sql b/macros/cross_db_utils/datatypes.sql index f258464c..1468069b 100644 --- a/macros/cross_db_utils/datatypes.sql +++ b/macros/cross_db_utils/datatypes.sql @@ -1,6 +1,3 @@ -{# These macros have been moved into dbt-core #} -{# Here for backwards compatibility ONLY #} - {# string ------------------------------------------------- #} {%- macro type_string() -%} @@ -8,6 +5,7 @@ {%- endmacro -%} {% macro default__type_string() %} + {% do dbt_utils.xdb_deprecation_warning('type_string', model.package_name, model.name) %} {{ return(adapter.dispatch('type_string', 'dbt')()) }} {% endmacro %} @@ -19,6 +17,7 @@ {%- endmacro -%} {% macro default__type_timestamp() %} + {% do dbt_utils.xdb_deprecation_warning('type_timestamp', model.package_name, model.name) %} {{ return(adapter.dispatch('type_timestamp', 'dbt')()) }} {% endmacro %} @@ -30,6 +29,7 @@ {%- endmacro -%} {% macro default__type_float() %} + {% do dbt_utils.xdb_deprecation_warning('type_float', model.package_name, model.name) %} {{ return(adapter.dispatch('type_float', 'dbt')()) }} {% endmacro %} @@ -41,6 +41,7 @@ {%- endmacro -%} {% macro default__type_numeric() %} + {% do dbt_utils.xdb_deprecation_warning('type_numeric', model.package_name, model.name) %} {{ return(adapter.dispatch('type_numeric', 'dbt')()) }} {% endmacro %} @@ -52,6 +53,7 @@ {%- endmacro -%} {% macro default__type_bigint() %} + {% do dbt_utils.xdb_deprecation_warning('type_bigint', model.package_name, model.name) %} {{ return(adapter.dispatch('type_bigint', 'dbt')()) }} {% endmacro %} @@ -63,5 +65,6 @@ {%- endmacro -%} {% macro default__type_int() %} + {% do dbt_utils.xdb_deprecation_warning('type_int', model.package_name, model.name) %} {{ return(adapter.dispatch('type_int', 'dbt')()) }} {% endmacro %} diff --git a/macros/cross_db_utils/date_trunc.sql b/macros/cross_db_utils/date_trunc.sql index 695bdbde..1f53f5da 100644 --- a/macros/cross_db_utils/date_trunc.sql +++ b/macros/cross_db_utils/date_trunc.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro date_trunc(datepart, date) -%} {{ return(adapter.dispatch('date_trunc', 'dbt_utils') (datepart, date)) }} {%- endmacro %} {% macro default__date_trunc(datepart, date) -%} + {% do dbt_utils.xdb_deprecation_warning('date_trunc', model.package_name, model.name) %} {{ return(adapter.dispatch('date_trunc', 'dbt') (datepart, date)) }} {%- endmacro %} diff --git a/macros/cross_db_utils/dateadd.sql b/macros/cross_db_utils/dateadd.sql index 1cf886e2..f3a7dda0 100644 --- a/macros/cross_db_utils/dateadd.sql +++ b/macros/cross_db_utils/dateadd.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro dateadd(datepart, interval, from_date_or_timestamp) %} {{ return(adapter.dispatch('dateadd', 'dbt_utils')(datepart, interval, from_date_or_timestamp)) }} {% endmacro %} {% macro default__dateadd(datepart, interval, from_date_or_timestamp) %} + {% do dbt_utils.xdb_deprecation_warning('dateadd', model.package_name, model.name) %} {{ return(adapter.dispatch('dateadd', 'dbt')(datepart, interval, from_date_or_timestamp)) }} {% endmacro %} diff --git a/macros/cross_db_utils/datediff.sql b/macros/cross_db_utils/datediff.sql index c4ba417f..ad63e567 100644 --- a/macros/cross_db_utils/datediff.sql +++ b/macros/cross_db_utils/datediff.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro datediff(first_date, second_date, datepart) %} {{ return(adapter.dispatch('datediff', 'dbt_utils')(first_date, second_date, datepart)) }} {% endmacro %} {% macro default__datediff(first_date, second_date, datepart) %} + {% do dbt_utils.xdb_deprecation_warning('datediff', model.package_name, model.name) %} {{ return(adapter.dispatch('datediff', 'dbt')(first_date, second_date, datepart)) }} {% endmacro %} diff --git a/macros/cross_db_utils/escape_single_quotes.sql b/macros/cross_db_utils/escape_single_quotes.sql index 2461d7da..bd6246ef 100644 --- a/macros/cross_db_utils/escape_single_quotes.sql +++ b/macros/cross_db_utils/escape_single_quotes.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro escape_single_quotes(expression) %} {{ return(adapter.dispatch('escape_single_quotes', 'dbt_utils') (expression)) }} {% endmacro %} {% macro default__escape_single_quotes(expression) %} + {% do dbt_utils.xdb_deprecation_warning('escape_single_quotes', model.package_name, model.name) %} {{ return(adapter.dispatch('escape_single_quotes', 'dbt') (expression)) }} {% endmacro %} diff --git a/macros/cross_db_utils/except.sql b/macros/cross_db_utils/except.sql index 2c2f268b..1258c3f6 100644 --- a/macros/cross_db_utils/except.sql +++ b/macros/cross_db_utils/except.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro except() %} {{ return(adapter.dispatch('except', 'dbt_utils')()) }} {% endmacro %} {% macro default__except() %} + {% do dbt_utils.xdb_deprecation_warning('except', model.package_name, model.name) %} {{ return(adapter.dispatch('except', 'dbt')()) }} {% endmacro %} diff --git a/macros/cross_db_utils/hash.sql b/macros/cross_db_utils/hash.sql index 8e3b7566..e616ef2a 100644 --- a/macros/cross_db_utils/hash.sql +++ b/macros/cross_db_utils/hash.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro hash(field) -%} {{ return(adapter.dispatch('hash', 'dbt_utils') (field)) }} {%- endmacro %} {% macro default__hash(field) -%} + {% do dbt_utils.xdb_deprecation_warning('hash', model.package_name, model.name) %} {{ return(adapter.dispatch('hash', 'dbt') (field)) }} {%- endmacro %} diff --git a/macros/cross_db_utils/intersect.sql b/macros/cross_db_utils/intersect.sql index b99abc13..aaf306a6 100644 --- a/macros/cross_db_utils/intersect.sql +++ b/macros/cross_db_utils/intersect.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro intersect() %} {{ return(adapter.dispatch('intersect', 'dbt_utils')()) }} {% endmacro %} {% macro default__intersect() %} + {% do dbt_utils.xdb_deprecation_warning('intersect', model.package_name, model.name) %} {{ return(adapter.dispatch('intersect', 'dbt')()) }} {% endmacro %} diff --git a/macros/cross_db_utils/last_day.sql b/macros/cross_db_utils/last_day.sql index dc108731..a7986c35 100644 --- a/macros/cross_db_utils/last_day.sql +++ b/macros/cross_db_utils/last_day.sql @@ -1,5 +1,3 @@ -{# This is here for backwards compatibility only #} - /* This function has been tested with dateparts of month and quarters. Further testing is required to validate that it will work on other dateparts. @@ -10,5 +8,6 @@ testing is required to validate that it will work on other dateparts. {% endmacro %} {% macro default__last_day(date, datepart) %} + {% do dbt_utils.xdb_deprecation_warning('last_day', model.package_name, model.name) %} {{ return(adapter.dispatch('last_day', 'dbt') (date, datepart)) }} {% endmacro %} diff --git a/macros/cross_db_utils/length.sql b/macros/cross_db_utils/length.sql index ce4de567..17d3de62 100644 --- a/macros/cross_db_utils/length.sql +++ b/macros/cross_db_utils/length.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro length(expression) -%} {{ return(adapter.dispatch('length', 'dbt_utils') (expression)) }} {% endmacro %} {% macro default__length(expression) -%} + {% do dbt_utils.xdb_deprecation_warning('length', model.package_name, model.name) %} {{ return(adapter.dispatch('length', 'dbt') (expression)) }} {% endmacro %} diff --git a/macros/cross_db_utils/listagg.sql b/macros/cross_db_utils/listagg.sql index 7db195ff..3eaa49d2 100644 --- a/macros/cross_db_utils/listagg.sql +++ b/macros/cross_db_utils/listagg.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro listagg(measure, delimiter_text="','", order_by_clause=none, limit_num=none) -%} {{ return(adapter.dispatch('listagg', 'dbt_utils') (measure, delimiter_text, order_by_clause, limit_num)) }} {%- endmacro %} {% macro default__listagg(measure, delimiter_text="','", order_by_clause=none, limit_num=none) -%} + {% do dbt_utils.xdb_deprecation_warning('listagg', model.package_name, model.name) %} {{ return(adapter.dispatch('listagg', 'dbt') (measure, delimiter_text, order_by_clause, limit_num)) }} {%- endmacro %} diff --git a/macros/cross_db_utils/literal.sql b/macros/cross_db_utils/literal.sql index de0a6c43..af874f2f 100644 --- a/macros/cross_db_utils/literal.sql +++ b/macros/cross_db_utils/literal.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {%- macro string_literal(value) -%} {{ return(adapter.dispatch('string_literal', 'dbt_utils') (value)) }} {%- endmacro -%} {%- macro default__string_literal(value) -%} + {% do dbt_utils.xdb_deprecation_warning('string_literal', model.package_name, model.name) %} {{ return(adapter.dispatch('string_literal', 'dbt') (value)) }} {%- endmacro -%} diff --git a/macros/cross_db_utils/position.sql b/macros/cross_db_utils/position.sql index d819f0d3..deb3d4e7 100644 --- a/macros/cross_db_utils/position.sql +++ b/macros/cross_db_utils/position.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro position(substring_text, string_text) -%} {{ return(adapter.dispatch('position', 'dbt_utils') (substring_text, string_text)) }} {% endmacro %} {% macro default__position(substring_text, string_text) -%} + {% do dbt_utils.xdb_deprecation_warning('position', model.package_name, model.name) %} {{ return(adapter.dispatch('position', 'dbt') (substring_text, string_text)) }} {% endmacro %} diff --git a/macros/cross_db_utils/replace.sql b/macros/cross_db_utils/replace.sql index 43c6befa..6aba2c9e 100644 --- a/macros/cross_db_utils/replace.sql +++ b/macros/cross_db_utils/replace.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro replace(field, old_chars, new_chars) -%} {{ return(adapter.dispatch('replace', 'dbt_utils') (field, old_chars, new_chars)) }} {% endmacro %} {% macro default__replace(field, old_chars, new_chars) -%} + {% do dbt_utils.xdb_deprecation_warning('replace', model.package_name, model.name) %} {{ return(adapter.dispatch('replace', 'dbt') (field, old_chars, new_chars)) }} {% endmacro %} diff --git a/macros/cross_db_utils/right.sql b/macros/cross_db_utils/right.sql index 3488ac56..001c1001 100644 --- a/macros/cross_db_utils/right.sql +++ b/macros/cross_db_utils/right.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro right(string_text, length_expression) -%} {{ return(adapter.dispatch('right', 'dbt_utils') (string_text, length_expression)) }} {% endmacro %} {% macro default__right(string_text, length_expression) -%} + {% do dbt_utils.xdb_deprecation_warning('right', model.package_name, model.name) %} {{ return(adapter.dispatch('right', 'dbt') (string_text, length_expression)) }} {% endmacro %} diff --git a/macros/cross_db_utils/safe_cast.sql b/macros/cross_db_utils/safe_cast.sql index 10edaa21..f7a5add7 100644 --- a/macros/cross_db_utils/safe_cast.sql +++ b/macros/cross_db_utils/safe_cast.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro safe_cast(field, type) %} {{ return(adapter.dispatch('safe_cast', 'dbt_utils') (field, type)) }} {% endmacro %} {% macro default__safe_cast(field, type) %} + {% do dbt_utils.xdb_deprecation_warning('safe_cast', model.package_name, model.name) %} {{ return(adapter.dispatch('safe_cast', 'dbt') (field, type)) }} {% endmacro %} diff --git a/macros/cross_db_utils/split_part.sql b/macros/cross_db_utils/split_part.sql index 112ba672..b6113179 100644 --- a/macros/cross_db_utils/split_part.sql +++ b/macros/cross_db_utils/split_part.sql @@ -1,9 +1,8 @@ -{# This is here for backwards compatibility only #} - {% macro split_part(string_text, delimiter_text, part_number) %} {{ return(adapter.dispatch('split_part', 'dbt_utils') (string_text, delimiter_text, part_number)) }} {% endmacro %} {% macro default__split_part(string_text, delimiter_text, part_number) %} + {% do dbt_utils.xdb_deprecation_warning('split_part', model.package_name, model.name) %} {{ return(adapter.dispatch('split_part', 'dbt') (string_text, delimiter_text, part_number)) }} {% endmacro %} diff --git a/macros/cross_db_utils/xdb_deprecation_warning.sql b/macros/cross_db_utils/xdb_deprecation_warning.sql new file mode 100644 index 00000000..844e19bf --- /dev/null +++ b/macros/cross_db_utils/xdb_deprecation_warning.sql @@ -0,0 +1,4 @@ +{% macro xdb_deprecation_warning(macro, package, model) %} + {%- set error_message = "Warning: the `" ~ macro ~"` macro is now provided in dbt Core. It is no longer available in dbt_utils and backwards compatibility will be removed in a future version of the package. Use `" ~ macro ~ "` (no prefix) instead. The " ~ package ~ "." ~ model ~ " model triggered this warning." -%} + {%- do exceptions.warn(error_message) -%} +{% endmacro %} \ No newline at end of file diff --git a/macros/materializations/insert_by_period_materialization.sql b/macros/materializations/insert_by_period_materialization.sql index 5a15c815..812ed817 100644 --- a/macros/materializations/insert_by_period_materialization.sql +++ b/macros/materializations/insert_by_period_materialization.sql @@ -55,6 +55,9 @@ {%- set start_date = config.require('start_date') -%} {%- set stop_date = config.get('stop_date') or '' -%} {%- set period = config.get('period') or 'week' -%} + + {%- set deprecation_warning = "Warning: the `insert_by_period` materialization will be removed from dbt_utils in version 1.0.0. Install from dbt-labs/dbt-labs-experimental-features instead (see https://github.com/dbt-labs/dbt-utils/discussions/487). The " ~ package ~ "." ~ model ~ " model triggered this warning." -%} + {%- do exceptions.warn(deprecation_warning) -%} {%- if sql.find('__PERIOD_FILTER__') == -1 -%} {%- set error_message -%}