Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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 = [] %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
Expand Down
12 changes: 12 additions & 0 deletions macros/edr/data_monitoring/monitors/column_string_monitors.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
4 changes: 4 additions & 0 deletions macros/edr/materializations/test/failed_row_count.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
10 changes: 10 additions & 0 deletions macros/edr/materializations/test/test.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 = [] %}

Expand Down
18 changes: 18 additions & 0 deletions macros/edr/system/system_utils/buckets_cte.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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
) %}
Expand Down
4 changes: 4 additions & 0 deletions macros/edr/system/system_utils/empty_table.sql
Original file line number Diff line number Diff line change
Expand Up @@ -253,3 +253,7 @@
} %}
{{ return(dummy_values) }}
{% endmacro %}

{% macro sqlserver__dummy_values() %}
{% do return(elementary.fabric__dummy_values()) %}
{% endmacro %}
4 changes: 4 additions & 0 deletions macros/edr/system/system_utils/full_names.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
Expand Down
16 changes: 16 additions & 0 deletions macros/edr/system/system_utils/get_config_var.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 <condition> then TRUE else FALSE end
On T-SQL, TRUE/FALSE become cast(1/0 as bit).
Expand All @@ -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)) }}
Expand All @@ -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")()) }}
Expand All @@ -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 -%}
Expand Down
12 changes: 12 additions & 0 deletions macros/edr/tests/test_utils/get_anomaly_query.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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,
Expand Down
4 changes: 4 additions & 0 deletions macros/utils/cross_db_utils/concat.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
8 changes: 8 additions & 0 deletions macros/utils/cross_db_utils/current_timestamp.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
Expand Down
4 changes: 4 additions & 0 deletions macros/utils/cross_db_utils/date_trunc.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
4 changes: 4 additions & 0 deletions macros/utils/cross_db_utils/dateadd.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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" %}
Expand Down
4 changes: 4 additions & 0 deletions macros/utils/cross_db_utils/datediff.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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)) -
Expand Down
4 changes: 4 additions & 0 deletions macros/utils/cross_db_utils/day_of_week.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down
4 changes: 4 additions & 0 deletions macros/utils/cross_db_utils/hour_of_day.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
4 changes: 4 additions & 0 deletions macros/utils/cross_db_utils/hour_of_week.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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() }}),
Expand Down
4 changes: 4 additions & 0 deletions macros/utils/cross_db_utils/incremental_strategy.sql
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@
{% do return("merge") %}
{% endmacro %}

{%- macro sqlserver__get_default_incremental_strategy() %}
{% do return(elementary.fabric__get_default_incremental_strategy()) %}
{% endmacro %}
Comment on lines +27 to +29
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Keep SQL Server on adapter-default incremental strategy.

Line 28 delegates SQL Server to fabric__get_default_incremental_strategy(), which returns "merge". That overrides the generic contract here (non-Athena adapters should return none to use adapter defaults) and can force unexpected merge behavior on SQL Server models.

Suggested fix
 {%- macro sqlserver__get_default_incremental_strategy() %}
-    {% do return(elementary.fabric__get_default_incremental_strategy()) %}
+    {% do return(none) %}
 {% endmacro %}

Based on learnings: In macros/utils/cross_db_utils/incremental_strategy.sql, incremental strategy should return none for all adapters except Athena.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{%- macro sqlserver__get_default_incremental_strategy() %}
{% do return(elementary.fabric__get_default_incremental_strategy()) %}
{% endmacro %}
{%- macro sqlserver__get_default_incremental_strategy() %}
{% do return(none) %}
{% endmacro %}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@macros/utils/cross_db_utils/incremental_strategy.sql` around lines 27 - 29,
The sqlserver__get_default_incremental_strategy macro currently delegates to
fabric__get_default_incremental_strategy (which returns "merge") and thus
overrides the adapter default; change the macro
sqlserver__get_default_incremental_strategy to return "none" so SQL Server will
use the adapter-default incremental strategy instead of forcing "merge".


{%- macro fabricspark__get_default_incremental_strategy() %}
{{ return(elementary.spark__get_default_incremental_strategy()) }}
{% endmacro %}
Expand Down
8 changes: 8 additions & 0 deletions macros/utils/cross_db_utils/multi_value_in.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 4 additions & 0 deletions macros/utils/cross_db_utils/time_trunc.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
4 changes: 4 additions & 0 deletions macros/utils/cross_db_utils/timeadd.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 }},
Expand Down
4 changes: 4 additions & 0 deletions macros/utils/cross_db_utils/to_char.sql
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@
{%- else %}, 120)
{%- endif %}
{% endmacro %}

{% macro sqlserver__edr_to_char(column, format) %}
{{ elementary.fabric__edr_to_char(column, format) }}
{% endmacro %}
Loading
Loading