diff --git a/integration_tests/dbt_project/macros/schema_utils/list_schemas.sql b/integration_tests/dbt_project/macros/schema_utils/list_schemas.sql index 7e1afe0c7..240018f7b 100644 --- a/integration_tests/dbt_project/macros/schema_utils/list_schemas.sql +++ b/integration_tests/dbt_project/macros/schema_utils/list_schemas.sql @@ -41,6 +41,10 @@ {% do return(schemas) %} {% endmacro %} +{% macro sqlserver__edr_list_schemas(database) %} + {% do return(fabric__edr_list_schemas(database)) %} +{% endmacro %} + {% macro clickhouse__edr_list_schemas(database) %} {% set results = run_query("SHOW DATABASES") %} {% set schemas = [] %} diff --git a/integration_tests/dbt_project/macros/schema_utils/schema_exists.sql b/integration_tests/dbt_project/macros/schema_utils/schema_exists.sql index eb65dba34..d28cdaa39 100644 --- a/integration_tests/dbt_project/macros/schema_utils/schema_exists.sql +++ b/integration_tests/dbt_project/macros/schema_utils/schema_exists.sql @@ -49,6 +49,10 @@ {% do return(result | length > 0) %} {% endmacro %} +{% macro sqlserver__edr_schema_exists(database, schema_name) %} + {% do return(fabric__edr_schema_exists(database, schema_name)) %} +{% endmacro %} + {% macro clickhouse__edr_schema_exists(database, schema_name) %} {% set safe_schema = schema_name | replace("'", "''") %} {% set result = run_query( diff --git a/macros/edr/data_monitoring/monitors/column_numeric_monitors.sql b/macros/edr/data_monitoring/monitors/column_numeric_monitors.sql index 7eb82c77c..93a4db267 100644 --- a/macros/edr/data_monitoring/monitors/column_numeric_monitors.sql +++ b/macros/edr/data_monitoring/monitors/column_numeric_monitors.sql @@ -83,6 +83,14 @@ var(cast({{ column_name }} as {{ elementary.edr_type_float() }})) {%- endmacro %} +{% macro sqlserver__standard_deviation(column_name) -%} + {{ elementary.fabric__standard_deviation(column_name) }} +{%- endmacro %} + +{% macro sqlserver__variance(column_name) -%} + {{ elementary.fabric__variance(column_name) }} +{%- endmacro %} + {% macro sum(column_name) -%} sum(cast({{ column_name }} as {{ elementary.edr_type_float() }})) {%- endmacro %} diff --git a/macros/edr/data_monitoring/monitors/column_string_monitors.sql b/macros/edr/data_monitoring/monitors/column_string_monitors.sql index a06036ed3..4629f125b 100644 --- a/macros/edr/data_monitoring/monitors/column_string_monitors.sql +++ b/macros/edr/data_monitoring/monitors/column_string_monitors.sql @@ -24,6 +24,18 @@ avg(len({{ column_name }})) {%- endmacro %} +{% macro sqlserver__max_length(column_name) -%} + {{ elementary.fabric__max_length(column_name) }} +{%- endmacro %} + +{% macro sqlserver__min_length(column_name) -%} + {{ elementary.fabric__min_length(column_name) }} +{%- endmacro %} + +{% macro sqlserver__average_length(column_name) -%} + {{ elementary.fabric__average_length(column_name) }} +{%- endmacro %} + {% macro missing_count(column_name) %} coalesce( sum( diff --git a/macros/edr/data_monitoring/monitors_query/get_latest_full_refresh.sql b/macros/edr/data_monitoring/monitors_query/get_latest_full_refresh.sql index 7c8e563aa..08f998c61 100644 --- a/macros/edr/data_monitoring/monitors_query/get_latest_full_refresh.sql +++ b/macros/edr/data_monitoring/monitors_query/get_latest_full_refresh.sql @@ -30,3 +30,7 @@ {% endset %} {% do return(elementary.result_value(query)) %} {% endmacro %} + +{% macro sqlserver__get_latest_full_refresh(model_node) %} + {% do return(elementary.fabric__get_latest_full_refresh(model_node)) %} +{% endmacro %} diff --git a/macros/edr/data_monitoring/monitors_query/table_monitoring_query.sql b/macros/edr/data_monitoring/monitors_query/table_monitoring_query.sql index a16169c61..0805ffc0d 100644 --- a/macros/edr/data_monitoring/monitors_query/table_monitoring_query.sql +++ b/macros/edr/data_monitoring/monitors_query/table_monitoring_query.sql @@ -406,6 +406,10 @@ }} {% endmacro %} +{% macro sqlserver___bucket_end_freshness_expr() %} + {{ elementary.fabric___bucket_end_freshness_expr() }} +{% endmacro %} + {#-- Helper: final SELECT columns for freshness metric --#} {% macro _freshness_final_select(metric) %} select @@ -545,6 +549,10 @@ where row_num = 1 {% endmacro %} +{% macro sqlserver__freshness_metric_query(metric, metric_properties) %} + {{ elementary.fabric__freshness_metric_query(metric, metric_properties) }} +{% endmacro %} + {% macro event_freshness_metric_query(metric, metric_properties) %} {{ return( diff --git a/macros/edr/data_monitoring/schema_changes/get_columns_changes_query.sql b/macros/edr/data_monitoring/schema_changes/get_columns_changes_query.sql index 4f3b9f49c..cd31efa1e 100644 --- a/macros/edr/data_monitoring/schema_changes/get_columns_changes_query.sql +++ b/macros/edr/data_monitoring/schema_changes/get_columns_changes_query.sql @@ -313,3 +313,13 @@ on (lower(cs.column_name) = lower(bl.column_name)) where lower(cs.full_table_name) = lower('{{ full_table_name }}') {% endmacro %} + +{% macro sqlserver__get_column_changes_from_baseline_cur( + model_relation, full_table_name, model_baseline_relation +) %} + {{ + elementary.fabric__get_column_changes_from_baseline_cur( + model_relation, full_table_name, model_baseline_relation + ) + }} +{% endmacro %} diff --git a/macros/edr/materializations/test/failed_row_count.sql b/macros/edr/materializations/test/failed_row_count.sql index a7a23ca0d..6b4df8646 100644 --- a/macros/edr/materializations/test/failed_row_count.sql +++ b/macros/edr/materializations/test/failed_row_count.sql @@ -72,3 +72,7 @@ as {{ elementary.escape_reserved_keywords("count") }} from {{ tmp_relation }} {% endmacro %} + +{% macro sqlserver__get_failed_row_count_calc_query(failed_row_count_calc) %} + {{ elementary.fabric__get_failed_row_count_calc_query(failed_row_count_calc) }} +{% endmacro %} diff --git a/macros/edr/materializations/test/test.sql b/macros/edr/materializations/test/test.sql index 71fe21d5f..eabc7aff4 100644 --- a/macros/edr/materializations/test/test.sql +++ b/macros/edr/materializations/test/test.sql @@ -280,6 +280,16 @@ {% do return(result) %} {% endmacro %} +{% macro sqlserver__query_test_result_rows( + sample_limit=none, ignore_passed_tests=false +) %} + {% do return( + elementary.fabric__query_test_result_rows( + sample_limit, ignore_passed_tests + ) + ) %} +{% endmacro %} + {% macro get_columns_to_exclude_from_sampling(flattened_test) %} {% set columns_to_exclude = [] %} diff --git a/macros/edr/system/system_utils/buckets_cte.sql b/macros/edr/system/system_utils/buckets_cte.sql index 9902fdb87..0a5cadc29 100644 --- a/macros/edr/system/system_utils/buckets_cte.sql +++ b/macros/edr/system/system_utils/buckets_cte.sql @@ -288,6 +288,24 @@ {{ return(complete_buckets_cte) }} {% endmacro %} +{% macro sqlserver__complete_buckets_cte( + time_bucket, + bucket_end_expr, + min_bucket_start_expr, + max_bucket_end_expr +) -%} + {{- + return( + elementary.fabric__complete_buckets_cte( + time_bucket, + bucket_end_expr, + min_bucket_start_expr, + max_bucket_end_expr, + ) + ) + -}} +{%- endmacro %} + {% macro dremio__complete_buckets_cte( time_bucket, bucket_end_expr, min_bucket_start_expr, max_bucket_end_expr ) %} diff --git a/macros/edr/system/system_utils/empty_table.sql b/macros/edr/system/system_utils/empty_table.sql index 8a4deea37..26d20beae 100644 --- a/macros/edr/system/system_utils/empty_table.sql +++ b/macros/edr/system/system_utils/empty_table.sql @@ -253,3 +253,7 @@ } %} {{ return(dummy_values) }} {% endmacro %} + +{% macro sqlserver__dummy_values() %} + {% do return(elementary.fabric__dummy_values()) %} +{% endmacro %} diff --git a/macros/edr/system/system_utils/full_names.sql b/macros/edr/system/system_utils/full_names.sql index 6cdd1e6b6..404205e86 100644 --- a/macros/edr/system/system_utils/full_names.sql +++ b/macros/edr/system/system_utils/full_names.sql @@ -116,6 +116,10 @@ cast(replace(parsename(full_table_name, {{ part_index }}), '"', '') as varchar(256)) as {{ part_name }} {% endmacro %} +{% macro sqlserver__full_name_split(part_name) %} + {{ elementary.fabric__full_name_split(part_name) }} +{% endmacro %} + {% macro bigquery__full_name_split(part_name) %} {%- if part_name == "database_name" -%} {%- set part_index = 0 %} {%- elif part_name == "schema_name" -%} {%- set part_index = 1 %} diff --git a/macros/edr/system/system_utils/get_config_var.sql b/macros/edr/system/system_utils/get_config_var.sql index 391ce25d4..837d87a9e 100644 --- a/macros/edr/system/system_utils/get_config_var.sql +++ b/macros/edr/system/system_utils/get_config_var.sql @@ -49,6 +49,10 @@ {% if value %} cast(1 as bit) {% else %} cast(0 as bit){% endif %} {% endmacro %} +{% macro sqlserver__edr_boolean_literal(value) %} + {{ elementary.fabric__edr_boolean_literal(value) }} +{% endmacro %} + {# Render a SQL condition as a boolean column value. Produces: case when then TRUE else FALSE end On T-SQL, TRUE/FALSE become cast(1/0 as bit). @@ -70,6 +74,10 @@ {% macro fabric__edr_is_true(expr) %} {{ expr }} = cast(1 as bit) {% endmacro %} +{% macro sqlserver__edr_is_true(expr) %} + {{ elementary.fabric__edr_is_true(expr) }} +{% endmacro %} + {# Compare a SQL expression to FALSE. Works across all dialects including T-SQL (bit). #} {% macro edr_is_false(expr) %} {{ return(adapter.dispatch("edr_is_false", "elementary")(expr)) }} @@ -79,6 +87,10 @@ {% macro fabric__edr_is_false(expr) %} {{ expr }} = cast(0 as bit) {% endmacro %} +{% macro sqlserver__edr_is_false(expr) %} + {{ elementary.fabric__edr_is_false(expr) }} +{% endmacro %} + {# Returns true if the current adapter uses T-SQL dialect (Fabric or SQL Server). #} {% macro is_tsql() %} {{ return(adapter.dispatch("is_tsql", "elementary")()) }} @@ -88,6 +100,10 @@ {% macro fabric__is_tsql() %} {{ return(true) }} {% endmacro %} +{% macro sqlserver__is_tsql() %} + {% do return(elementary.fabric__is_tsql()) %} +{% endmacro %} + {% macro get_default_config(var_name) %} {{ return(adapter.dispatch("get_default_config", "elementary")()) }} {%- endmacro -%} diff --git a/macros/edr/tests/test_utils/get_anomaly_query.sql b/macros/edr/tests/test_utils/get_anomaly_query.sql index 5ab85942f..00bc1d2a0 100644 --- a/macros/edr/tests/test_utils/get_anomaly_query.sql +++ b/macros/edr/tests/test_utils/get_anomaly_query.sql @@ -23,6 +23,10 @@ -}} {%- endmacro -%} +{%- macro sqlserver__get_anomaly_query(flattened_test=none) -%} + {%- do return(elementary.fabric__get_anomaly_query(flattened_test)) -%} +{%- endmacro -%} + {%- macro get_anomaly_query_for_dimension_anomalies(flattened_test=none) -%} {{- return( @@ -64,6 +68,14 @@ -}} {%- endmacro -%} +{%- macro sqlserver__get_anomaly_query_for_dimension_anomalies(flattened_test=none) -%} + {%- do return( + elementary.fabric__get_anomaly_query_for_dimension_anomalies( + flattened_test + ) + ) -%} +{%- endmacro -%} + {% macro get_read_anomaly_scores_query( flattened_test=none, additional_where=none, diff --git a/macros/utils/cross_db_utils/concat.sql b/macros/utils/cross_db_utils/concat.sql index 625cea9ab..02bae20f8 100644 --- a/macros/utils/cross_db_utils/concat.sql +++ b/macros/utils/cross_db_utils/concat.sql @@ -13,3 +13,7 @@ {% macro fabric__edr_concat(fields) %} cast({{ dbt.concat(fields) }} as varchar(4000)) {% endmacro %} + +{% macro sqlserver__edr_concat(fields) %} + {{ elementary.fabric__edr_concat(fields) }} +{% endmacro %} diff --git a/macros/utils/cross_db_utils/current_timestamp.sql b/macros/utils/cross_db_utils/current_timestamp.sql index e438feae6..2525d3668 100644 --- a/macros/utils/cross_db_utils/current_timestamp.sql +++ b/macros/utils/cross_db_utils/current_timestamp.sql @@ -92,6 +92,14 @@ cast(sysutcdatetime() as datetime2(6)) {%- endmacro -%} +{% macro sqlserver__edr_current_timestamp() -%} + {{ elementary.fabric__edr_current_timestamp() }} +{%- endmacro -%} + +{% macro sqlserver__edr_current_timestamp_in_utc() -%} + {{ elementary.fabric__edr_current_timestamp_in_utc() }} +{%- endmacro -%} + {% macro fabricspark__edr_current_timestamp() %} {{ return(elementary.spark__edr_current_timestamp()) }} {% endmacro %} diff --git a/macros/utils/cross_db_utils/date_trunc.sql b/macros/utils/cross_db_utils/date_trunc.sql index 74844e59b..11e3b7597 100644 --- a/macros/utils/cross_db_utils/date_trunc.sql +++ b/macros/utils/cross_db_utils/date_trunc.sql @@ -24,3 +24,7 @@ {% macro fabric__edr_date_trunc(datepart, date_expression) %} datetrunc({{ datepart }}, {{ date_expression }}) {% endmacro %} + +{% macro sqlserver__edr_date_trunc(datepart, date_expression) %} + {{ elementary.fabric__edr_date_trunc(datepart, date_expression) }} +{% endmacro %} diff --git a/macros/utils/cross_db_utils/dateadd.sql b/macros/utils/cross_db_utils/dateadd.sql index b1226e258..ab02edd7a 100644 --- a/macros/utils/cross_db_utils/dateadd.sql +++ b/macros/utils/cross_db_utils/dateadd.sql @@ -28,6 +28,10 @@ dateadd({{ datepart }}, {{ interval }}, {{ from_date_or_timestamp }}) {% endmacro %} +{% macro sqlserver__edr_dateadd(datepart, interval, from_date_or_timestamp) %} + {{ elementary.fabric__edr_dateadd(datepart, interval, from_date_or_timestamp) }} +{% endmacro %} + {% macro dremio__edr_dateadd(datepart, interval, from_date_or_timestamp) %} {% set datepart = datepart | lower %} {% if datepart == "year" %} diff --git a/macros/utils/cross_db_utils/datediff.sql b/macros/utils/cross_db_utils/datediff.sql index 922e703c7..ac02a4180 100644 --- a/macros/utils/cross_db_utils/datediff.sql +++ b/macros/utils/cross_db_utils/datediff.sql @@ -280,6 +280,10 @@ datediff({{ date_part }}, {{ first_date }}, {{ second_date }}) {% endmacro %} +{% macro sqlserver__edr_datediff(first_date, second_date, date_part) %} + {{ elementary.fabric__edr_datediff(first_date, second_date, date_part) }} +{% endmacro %} + {% macro dremio__edr_datediff(first_date, second_date, date_part) %} {%- set seconds_diff_expr -%} cast(unix_timestamp(substr(cast(({{ second_date }}) as varchar), 1, 19)) - diff --git a/macros/utils/cross_db_utils/day_of_week.sql b/macros/utils/cross_db_utils/day_of_week.sql index 88bec3caa..137e863c8 100644 --- a/macros/utils/cross_db_utils/day_of_week.sql +++ b/macros/utils/cross_db_utils/day_of_week.sql @@ -71,6 +71,10 @@ cast(datename(weekday, {{ date_expr }}) as varchar(30)) {% endmacro %} +{% macro sqlserver__edr_day_of_week_expression(date_expr) %} + {{ elementary.fabric__edr_day_of_week_expression(date_expr) }} +{% endmacro %} + -- fmt: off {% macro clickhouse__edr_day_of_week_expression(date_expr) %} formatDateTime({{ date_expr }}, '%W') diff --git a/macros/utils/cross_db_utils/hour_of_day.sql b/macros/utils/cross_db_utils/hour_of_day.sql index 395bfbd86..ff118876d 100644 --- a/macros/utils/cross_db_utils/hour_of_day.sql +++ b/macros/utils/cross_db_utils/hour_of_day.sql @@ -32,3 +32,7 @@ {% macro fabric__edr_hour_of_day_expression(date_expr) %} datepart(hour, {{ date_expr }}) {% endmacro %} + +{% macro sqlserver__edr_hour_of_day_expression(date_expr) %} + {{ elementary.fabric__edr_hour_of_day_expression(date_expr) }} +{% endmacro %} diff --git a/macros/utils/cross_db_utils/hour_of_week.sql b/macros/utils/cross_db_utils/hour_of_week.sql index 632c503bf..e5c96ed10 100644 --- a/macros/utils/cross_db_utils/hour_of_week.sql +++ b/macros/utils/cross_db_utils/hour_of_week.sql @@ -96,6 +96,10 @@ ) {% endmacro %} +{% macro sqlserver__edr_hour_of_week_expression(date_expr) %} + {{ elementary.fabric__edr_hour_of_week_expression(date_expr) }} +{% endmacro %} + {% macro duckdb__edr_hour_of_week_expression(date_expr) %} concat( cast(dayname({{ date_expr }}) as {{ elementary.edr_type_string() }}), diff --git a/macros/utils/cross_db_utils/incremental_strategy.sql b/macros/utils/cross_db_utils/incremental_strategy.sql index dfa6e292a..ab12bb8e6 100644 --- a/macros/utils/cross_db_utils/incremental_strategy.sql +++ b/macros/utils/cross_db_utils/incremental_strategy.sql @@ -24,6 +24,10 @@ {% do return("merge") %} {% endmacro %} +{%- macro sqlserver__get_default_incremental_strategy() %} + {% do return(elementary.fabric__get_default_incremental_strategy()) %} +{% endmacro %} + {%- macro fabricspark__get_default_incremental_strategy() %} {{ return(elementary.spark__get_default_incremental_strategy()) }} {% endmacro %} diff --git a/macros/utils/cross_db_utils/multi_value_in.sql b/macros/utils/cross_db_utils/multi_value_in.sql index cfb1cb0c5..140c4c626 100644 --- a/macros/utils/cross_db_utils/multi_value_in.sql +++ b/macros/utils/cross_db_utils/multi_value_in.sql @@ -53,6 +53,14 @@ ) {%- endmacro -%} +{%- macro sqlserver__edr_multi_value_in(source_cols, target_cols, target_table) -%} + {{- + elementary.fabric__edr_multi_value_in( + source_cols, target_cols, target_table + ) + -}} +{%- endmacro -%} + {%- macro redshift__edr_multi_value_in(source_cols, target_cols, target_table) -%} {# Redshift doesn't support multi-column IN subqueries (tuple IN) like: (col1, col2) IN (SELECT col1, col2 FROM table) diff --git a/macros/utils/cross_db_utils/time_trunc.sql b/macros/utils/cross_db_utils/time_trunc.sql index eb42a5fd5..239327b87 100644 --- a/macros/utils/cross_db_utils/time_trunc.sql +++ b/macros/utils/cross_db_utils/time_trunc.sql @@ -26,3 +26,7 @@ cast({{ date_expression }} as {{ elementary.edr_type_timestamp() }}) ) {% endmacro %} + +{% macro sqlserver__edr_time_trunc(date_part, date_expression) %} + {{ elementary.fabric__edr_time_trunc(date_part, date_expression) }} +{% endmacro %} diff --git a/macros/utils/cross_db_utils/timeadd.sql b/macros/utils/cross_db_utils/timeadd.sql index 87a1d9b18..81b57ec58 100644 --- a/macros/utils/cross_db_utils/timeadd.sql +++ b/macros/utils/cross_db_utils/timeadd.sql @@ -88,6 +88,10 @@ ) {% endmacro %} +{% macro sqlserver__edr_timeadd(date_part, number, timestamp_expression) %} + {{ elementary.fabric__edr_timeadd(date_part, number, timestamp_expression) }} +{% endmacro %} + {% macro dremio__edr_timeadd(date_part, number, timestamp_expression) %} timestampadd( {{ date_part }}, diff --git a/macros/utils/cross_db_utils/to_char.sql b/macros/utils/cross_db_utils/to_char.sql index 8cde8b631..a72617367 100644 --- a/macros/utils/cross_db_utils/to_char.sql +++ b/macros/utils/cross_db_utils/to_char.sql @@ -34,3 +34,7 @@ {%- else %}, 120) {%- endif %} {% endmacro %} + +{% macro sqlserver__edr_to_char(column, format) %} + {{ elementary.fabric__edr_to_char(column, format) }} +{% endmacro %} diff --git a/macros/utils/data_types/data_type.sql b/macros/utils/data_types/data_type.sql index 4b9e519f2..f79c7a642 100644 --- a/macros/utils/data_types/data_type.sql +++ b/macros/utils/data_types/data_type.sql @@ -12,6 +12,10 @@ {% macro fabric__edr_type_bool() %} {% do return("bit") %} {% endmacro %} +{% macro sqlserver__edr_type_bool() %} + {% do return(elementary.fabric__edr_type_bool()) %} +{% endmacro %} + {%- macro edr_type_string() -%} {{ return(adapter.dispatch("edr_type_string", "elementary")()) }} @@ -52,6 +56,10 @@ {% macro fabric__edr_type_string() %} {% do return("varchar(4096)") %} {% endmacro %} +{% macro sqlserver__edr_type_string() %} + {% do return(elementary.fabric__edr_type_string()) %} +{% endmacro %} + {% macro vertica__edr_type_string() %} {% do return("varchar(16000)") %} {% endmacro %} @@ -89,6 +97,10 @@ {% do return("varchar(max)") %} {%- endmacro -%} +{% macro sqlserver__edr_type_long_string() %} + {% do return(elementary.fabric__edr_type_long_string()) %} +{% endmacro %} + {% macro edr_type_bigint() %} {% set macro = dbt.type_bigint or dbt_utils.type_bigint %} @@ -159,6 +171,10 @@ {% macro fabric__edr_type_timestamp() %} datetime2(6) {% endmacro %} +{% macro sqlserver__edr_type_timestamp() %} + {{ elementary.fabric__edr_type_timestamp() }} +{% endmacro %} + {% macro fabricspark__edr_type_bool() %} {{ return(elementary.default__edr_type_bool()) }} {% endmacro %} diff --git a/macros/utils/data_types/data_type_list.sql b/macros/utils/data_types/data_type_list.sql index 1e14eaa20..4a373efa5 100644 --- a/macros/utils/data_types/data_type_list.sql +++ b/macros/utils/data_types/data_type_list.sql @@ -331,6 +331,10 @@ {% endmacro %} +{% macro sqlserver__data_type_list(data_type) %} + {% do return(elementary.fabric__data_type_list(data_type)) %} +{% endmacro %} + {% macro dremio__data_type_list(data_type) %} {% set string_list = ["varchar", "character varying"] | list %} {% set numeric_list = [ diff --git a/macros/utils/data_types/try_cast_column_to_timestamp.sql b/macros/utils/data_types/try_cast_column_to_timestamp.sql index cbd1d547d..56a2a8420 100644 --- a/macros/utils/data_types/try_cast_column_to_timestamp.sql +++ b/macros/utils/data_types/try_cast_column_to_timestamp.sql @@ -40,3 +40,11 @@ {{ return(false) }} {% endmacro %} + +{% macro sqlserver__try_cast_column_to_timestamp(table_relation, timestamp_column) %} + {% do return( + elementary.fabric__try_cast_column_to_timestamp( + table_relation, timestamp_column + ) + ) %} +{% endmacro %} diff --git a/macros/utils/table_operations/create_temp_table.sql b/macros/utils/table_operations/create_temp_table.sql index 95f68093c..9368d8218 100644 --- a/macros/utils/table_operations/create_temp_table.sql +++ b/macros/utils/table_operations/create_temp_table.sql @@ -37,10 +37,6 @@ We use a regular table (not #temp) because the EXEC scope isolation of SQL Server makes #temp tables invisible to the caller. - - sqlserver__ is not needed here because dbt-sqlserver declares - dependencies=["fabric"], so this macro is found automatically - via the dispatch chain: sqlserver__ → fabric__ → default__. #} {% set table_exists, table_relation = dbt.get_or_create_relation( database=database_name, @@ -96,3 +92,15 @@ {{ return(temp_table_relation) }} {% endmacro %} + +{% macro sqlserver__create_temp_table( + database_name, schema_name, table_name, sql_query +) %} + {{ + return( + elementary.fabric__create_temp_table( + database_name, schema_name, table_name, sql_query + ) + ) + }} +{% endmacro %} diff --git a/macros/utils/table_operations/get_relation_max_length.sql b/macros/utils/table_operations/get_relation_max_length.sql index d6e47500b..61d6c96d8 100644 --- a/macros/utils/table_operations/get_relation_max_length.sql +++ b/macros/utils/table_operations/get_relation_max_length.sql @@ -61,3 +61,11 @@ leave headroom for longer schemas and __dbt_tmp_vw suffixes. #} {{ return(60) }} {% endmacro %} + +{% macro sqlserver__get_relation_max_name_length(temporary, relation, sql_query) %} + {% do return( + elementary.fabric__get_relation_max_name_length( + temporary, relation, sql_query + ) + ) %} +{% endmacro %} diff --git a/macros/utils/table_operations/insert_as_select.sql b/macros/utils/table_operations/insert_as_select.sql index 2770a78d1..82b8a76d4 100644 --- a/macros/utils/table_operations/insert_as_select.sql +++ b/macros/utils/table_operations/insert_as_select.sql @@ -43,3 +43,7 @@ {%- endset %} {{ return(insert_query) }} {% endmacro %} + +{% macro sqlserver__insert_as_select(table_relation, select_query) %} + {{ return(elementary.fabric__insert_as_select(table_relation, select_query)) }} +{% endmacro %} diff --git a/macros/utils/table_operations/insert_rows.sql b/macros/utils/table_operations/insert_rows.sql index 512c4b05b..b0635a3b5 100644 --- a/macros/utils/table_operations/insert_rows.sql +++ b/macros/utils/table_operations/insert_rows.sql @@ -254,6 +254,10 @@ {{- return(string_value | replace("'", "''")) -}} {%- endmacro -%} +{%- macro sqlserver__escape_special_chars(string_value) -%} + {%- do return(elementary.fabric__escape_special_chars(string_value)) -%} +{%- endmacro -%} + {%- macro dremio__escape_special_chars(string_value) -%} {{- return( diff --git a/macros/utils/table_operations/make_temp_relation.sql b/macros/utils/table_operations/make_temp_relation.sql index c1d3f2553..bcf031937 100644 --- a/macros/utils/table_operations/make_temp_relation.sql +++ b/macros/utils/table_operations/make_temp_relation.sql @@ -53,6 +53,10 @@ {% do return(dbt.make_temp_relation(base_relation, suffix)) %} {% endmacro %} +{% macro sqlserver__edr_make_temp_relation(base_relation, suffix) %} + {% do return(elementary.fabric__edr_make_temp_relation(base_relation, suffix)) %} +{% endmacro %} + {% macro spark__edr_make_temp_relation(base_relation, suffix) %} {% set tmp_identifier = elementary.table_name_with_suffix( base_relation.identifier, suffix diff --git a/macros/utils/table_operations/replace_table_data.sql b/macros/utils/table_operations/replace_table_data.sql index c55dba998..4b92fdd36 100644 --- a/macros/utils/table_operations/replace_table_data.sql +++ b/macros/utils/table_operations/replace_table_data.sql @@ -149,9 +149,7 @@ ) %} {% endmacro %} -{# Fabric / SQL Server - truncate and insert (non-atomic). - sqlserver dispatches through fabric via the chain: sqlserver__ -> fabric__ -> default__, - so this covers both adapters. #} +{# Fabric - truncate and insert (non-atomic). #} {% macro fabric__replace_table_data(relation, rows) %} {% do dbt.truncate_relation(relation) %} {% do elementary.insert_rows( @@ -161,3 +159,8 @@ chunk_size=elementary.get_config_var("dbt_artifacts_chunk_size"), ) %} {% endmacro %} + +{# SQL Server - delegate to Fabric (non-atomic). #} +{% macro sqlserver__replace_table_data(relation, rows) %} + {% do elementary.fabric__replace_table_data(relation, rows) %} +{% endmacro %}