diff --git a/.gitignore b/.gitignore
index e1c98e4..0c80f01 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,21 +1,18 @@
# ==========================================
# DBT
# ==========================================
-
-target/
dbt_packages/
logs/
-dbt.log
# dbt generated artifacts
-manifest.json
-catalog.json
-run_results.json
-partial_parse.msgpack
-graph.gpickle
-graph_summary.json
-semantic_manifest.json
-
+# manifest.json
+# catalog.json
+# run_results.json
+# partial_parse.msgpack
+# graph.gpickle
+# graph_summary.json
+# semantic_manifest.json
+# overview_data.sql
# ==========================================
# Python
# ==========================================
@@ -108,7 +105,6 @@ docker-data/
# Misc Logs
# ==========================================
-*.log
my_intro.md
mart_stracture.t
mart_stracture.t
diff --git a/overview_data.sql b/overview_data.sql
new file mode 100644
index 0000000..e69de29
diff --git a/target/catalog.json b/target/catalog.json
new file mode 100644
index 0000000..5a36595
--- /dev/null
+++ b/target/catalog.json
@@ -0,0 +1 @@
+{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json", "dbt_version": "1.11.11", "generated_at": "2026-09-27T03:59:15.999939Z", "invocation_id": "4b7dfad9-8a8f-4544-b80b-a3a9d85ef979", "invocation_started_at": "2026-09-27T03:59:07.861982Z", "env": {}}, "nodes": {"model.dbt_analytics_engineering.dim_customers": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "dim_customers", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"customer_id": {"type": "int", "index": 1, "name": "customer_id", "comment": null}, "customer_name": {"type": "sysname", "index": 2, "name": "customer_name", "comment": null}, "gender": {"type": "varchar", "index": 3, "name": "gender", "comment": null}, "date_of_birth": {"type": "date", "index": 4, "name": "date_of_birth", "comment": null}, "email": {"type": "varchar", "index": 5, "name": "email", "comment": null}, "phone": {"type": "varchar", "index": 6, "name": "phone", "comment": null}, "address": {"type": "varchar", "index": 7, "name": "address", "comment": null}, "zip_code": {"type": "int", "index": 8, "name": "zip_code", "comment": null}, "city": {"type": "varchar", "index": 9, "name": "city", "comment": null}, "region": {"type": "varchar", "index": 10, "name": "region", "comment": null}, "state": {"type": "varchar", "index": 11, "name": "state", "comment": null}, "state_abbr": {"type": "varchar", "index": 12, "name": "state_abbr", "comment": null}, "country": {"type": "varchar", "index": 13, "name": "country", "comment": null}, "company": {"type": "varchar", "index": 14, "name": "company", "comment": null}, "customer_segment": {"type": "varchar", "index": 15, "name": "customer_segment", "comment": null}, "preferred_channel": {"type": "varchar", "index": 16, "name": "preferred_channel", "comment": null}, "is_active": {"type": "varchar", "index": 17, "name": "is_active", "comment": null}, "loyalty_points": {"type": "int", "index": 18, "name": "loyalty_points", "comment": null}, "annual_income_usd": {"type": "float", "index": 19, "name": "annual_income_usd", "comment": null}, "account_created_date": {"type": "date", "index": 20, "name": "account_created_date", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.dim_customers"}, "model.dbt_analytics_engineering.dim_employees": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "dim_employees", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"employee_id": {"type": "int", "index": 1, "name": "employee_id", "comment": null}, "store_id": {"type": "int", "index": 2, "name": "store_id", "comment": null}, "manager_id": {"type": "int", "index": 3, "name": "manager_id", "comment": null}, "employee_name": {"type": "sysname", "index": 4, "name": "employee_name", "comment": null}, "job_title": {"type": "varchar", "index": 5, "name": "job_title", "comment": null}, "department": {"type": "varchar", "index": 6, "name": "department", "comment": null}, "performance_rating": {"type": "varchar", "index": 7, "name": "performance_rating", "comment": null}, "store_name": {"type": "varchar", "index": 8, "name": "store_name", "comment": null}, "store_city": {"type": "varchar", "index": 9, "name": "store_city", "comment": null}, "email": {"type": "varchar", "index": 10, "name": "email", "comment": null}, "phone": {"type": "varchar", "index": 11, "name": "phone", "comment": null}, "annual_salary_usd": {"type": "decimal", "index": 12, "name": "annual_salary_usd", "comment": null}, "commission_rate_pct": {"type": "decimal", "index": 13, "name": "commission_rate_pct", "comment": null}, "years_employed": {"type": "decimal", "index": 14, "name": "years_employed", "comment": null}, "is_active": {"type": "varchar", "index": 15, "name": "is_active", "comment": null}, "hire_date": {"type": "date", "index": 16, "name": "hire_date", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.dim_employees"}, "model.dbt_analytics_engineering.dim_inventory": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "dim_inventory", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"product_snapshot_sk": {"type": "varchar", "index": 1, "name": "product_snapshot_sk", "comment": null}, "product_id": {"type": "int", "index": 2, "name": "product_id", "comment": null}, "inventory_snapshot_sk": {"type": "varchar", "index": 3, "name": "inventory_snapshot_sk", "comment": null}, "product_name": {"type": "varchar", "index": 4, "name": "product_name", "comment": null}, "sku": {"type": "varchar", "index": 5, "name": "sku", "comment": null}, "category": {"type": "varchar", "index": 6, "name": "category", "comment": null}, "unit_cost": {"type": "decimal", "index": 7, "name": "unit_cost", "comment": null}, "unit_price": {"type": "decimal", "index": 8, "name": "unit_price", "comment": null}, "unit_margin": {"type": "decimal", "index": 9, "name": "unit_margin", "comment": null}, "margin_percentage": {"type": "decimal", "index": 10, "name": "margin_percentage", "comment": null}, "warehouse_location": {"type": "varchar", "index": 11, "name": "warehouse_location", "comment": null}, "store_id": {"type": "int", "index": 12, "name": "store_id", "comment": null}, "effective_from_date": {"type": "date", "index": 13, "name": "effective_from_date", "comment": null}, "effective_to_date": {"type": "date", "index": 14, "name": "effective_to_date", "comment": null}, "is_current_record": {"type": "int", "index": 15, "name": "is_current_record", "comment": null}, "is_negative_margin": {"type": "int", "index": 16, "name": "is_negative_margin", "comment": null}, "dbt_created_at": {"type": "datetime", "index": 17, "name": "dbt_created_at", "comment": null}, "dbt_updated_at": {"type": "datetime", "index": 18, "name": "dbt_updated_at", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.dim_inventory"}, "model.dbt_analytics_engineering.dim_products": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "dim_products", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"product_id": {"type": "int", "index": 1, "name": "product_id", "comment": null}, "sku": {"type": "varchar", "index": 2, "name": "sku", "comment": null}, "product_name": {"type": "varchar", "index": 3, "name": "product_name", "comment": null}, "brand": {"type": "varchar", "index": 4, "name": "brand", "comment": null}, "category": {"type": "varchar", "index": 5, "name": "category", "comment": null}, "sub_category": {"type": "varchar", "index": 6, "name": "sub_category", "comment": null}, "department": {"type": "varchar", "index": 7, "name": "department", "comment": null}, "launched_date": {"type": "date", "index": 8, "name": "launched_date", "comment": null}, "product_url": {"type": "varchar", "index": 9, "name": "product_url", "comment": null}, "base_price_usd": {"type": "decimal", "index": 10, "name": "base_price_usd", "comment": null}, "cost_price_usd": {"type": "decimal", "index": 11, "name": "cost_price_usd", "comment": null}, "gross_margin_pct": {"type": "decimal", "index": 12, "name": "gross_margin_pct", "comment": null}, "is_available": {"type": "varchar", "index": 13, "name": "is_available", "comment": null}, "stock_quantity": {"type": "int", "index": 14, "name": "stock_quantity", "comment": null}, "reorder_level": {"type": "int", "index": 15, "name": "reorder_level", "comment": null}, "supplier_name": {"type": "varchar", "index": 16, "name": "supplier_name", "comment": null}, "supplier_country": {"type": "varchar", "index": 17, "name": "supplier_country", "comment": null}, "weight_kg": {"type": "decimal", "index": 18, "name": "weight_kg", "comment": null}, "warranty_years": {"type": "int", "index": 19, "name": "warranty_years", "comment": null}, "rating_avg": {"type": "decimal", "index": 20, "name": "rating_avg", "comment": null}, "review_count": {"type": "int", "index": 21, "name": "review_count", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.dim_products"}, "model.dbt_analytics_engineering.dim_stores": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "dim_stores", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"store_id": {"type": "int", "index": 1, "name": "store_id", "comment": null}, "store_name": {"type": "varchar", "index": 2, "name": "store_name", "comment": null}, "store_type": {"type": "varchar", "index": 3, "name": "store_type", "comment": null}, "manager_name": {"type": "varchar", "index": 4, "name": "manager_name", "comment": null}, "opened_date": {"type": "date", "index": 5, "name": "opened_date", "comment": null}, "address": {"type": "varchar", "index": 6, "name": "address", "comment": null}, "city": {"type": "varchar", "index": 7, "name": "city", "comment": null}, "state": {"type": "varchar", "index": 8, "name": "state", "comment": null}, "state_full": {"type": "varchar", "index": 9, "name": "state_full", "comment": null}, "zip_code": {"type": "int", "index": 10, "name": "zip_code", "comment": null}, "country": {"type": "varchar", "index": 11, "name": "country", "comment": null}, "region": {"type": "varchar", "index": 12, "name": "region", "comment": null}, "district": {"type": "varchar", "index": 13, "name": "district", "comment": null}, "phone": {"type": "varchar", "index": 14, "name": "phone", "comment": null}, "sq_footage": {"type": "int", "index": 15, "name": "sq_footage", "comment": null}, "num_employees": {"type": "int", "index": 16, "name": "num_employees", "comment": null}, "annual_rent_usd": {"type": "int", "index": 17, "name": "annual_rent_usd", "comment": null}, "is_active": {"type": "varchar", "index": 18, "name": "is_active", "comment": null}, "has_parking": {"type": "varchar", "index": 19, "name": "has_parking", "comment": null}, "has_cafe": {"type": "varchar", "index": 20, "name": "has_cafe", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.dim_stores"}, "model.dbt_analytics_engineering.int_customer_location": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_customer_location", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"customer_id": {"type": "int", "index": 1, "name": "customer_id", "comment": null}, "address": {"type": "varchar", "index": 2, "name": "address", "comment": null}, "city": {"type": "varchar", "index": 3, "name": "city", "comment": null}, "state_abbr": {"type": "varchar", "index": 4, "name": "state_abbr", "comment": null}, "state": {"type": "varchar", "index": 5, "name": "state", "comment": null}, "zip_code": {"type": "int", "index": 6, "name": "zip_code", "comment": null}, "country": {"type": "varchar", "index": 7, "name": "country", "comment": null}, "region": {"type": "varchar", "index": 8, "name": "region", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_customer_location"}, "model.dbt_analytics_engineering.int_customer_profile": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_customer_profile", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"customer_id": {"type": "int", "index": 1, "name": "customer_id", "comment": null}, "title": {"type": "varchar", "index": 2, "name": "title", "comment": null}, "first_name": {"type": "sysname", "index": 3, "name": "first_name", "comment": null}, "last_name": {"type": "sysname", "index": 4, "name": "last_name", "comment": null}, "gender": {"type": "varchar", "index": 5, "name": "gender", "comment": null}, "date_of_birth": {"type": "date", "index": 6, "name": "date_of_birth", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_customer_profile"}, "model.dbt_analytics_engineering.int_customer_segmentation": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_customer_segmentation", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"customer_id": {"type": "int", "index": 1, "name": "customer_id", "comment": null}, "customer_segment": {"type": "varchar", "index": 2, "name": "customer_segment", "comment": null}, "loyalty_points": {"type": "int", "index": 3, "name": "loyalty_points", "comment": null}, "annual_income_usd": {"type": "float", "index": 4, "name": "annual_income_usd", "comment": null}, "company": {"type": "varchar", "index": 5, "name": "company", "comment": null}, "is_active": {"type": "varchar", "index": 6, "name": "is_active", "comment": null}, "account_created_date": {"type": "date", "index": 7, "name": "account_created_date", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_customer_segmentation"}, "model.dbt_analytics_engineering.int_customers_contact": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_customers_contact", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"customer_id": {"type": "int", "index": 1, "name": "customer_id", "comment": null}, "email": {"type": "varchar", "index": 2, "name": "email", "comment": null}, "phone": {"type": "varchar", "index": 3, "name": "phone", "comment": null}, "preferred_channel": {"type": "varchar", "index": 4, "name": "preferred_channel", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_customers_contact"}, "model.dbt_analytics_engineering.int_employee_contact": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_employee_contact", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"employee_id": {"type": "int", "index": 1, "name": "employee_id", "comment": null}, "email": {"type": "varchar", "index": 2, "name": "email", "comment": null}, "phone": {"type": "varchar", "index": 3, "name": "phone", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_employee_contact"}, "model.dbt_analytics_engineering.int_employee_employment": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_employee_employment", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"employee_id": {"type": "int", "index": 1, "name": "employee_id", "comment": null}, "job_title": {"type": "varchar", "index": 2, "name": "job_title", "comment": null}, "department": {"type": "varchar", "index": 3, "name": "department", "comment": null}, "store_id": {"type": "int", "index": 4, "name": "store_id", "comment": null}, "store_name": {"type": "varchar", "index": 5, "name": "store_name", "comment": null}, "store_city": {"type": "varchar", "index": 6, "name": "store_city", "comment": null}, "annual_salary_usd": {"type": "decimal", "index": 7, "name": "annual_salary_usd", "comment": null}, "commission_rate_pct": {"type": "decimal", "index": 8, "name": "commission_rate_pct", "comment": null}, "performance_rating": {"type": "varchar", "index": 9, "name": "performance_rating", "comment": null}, "years_employed": {"type": "decimal", "index": 10, "name": "years_employed", "comment": null}, "manager_id": {"type": "int", "index": 11, "name": "manager_id", "comment": null}, "is_active": {"type": "varchar", "index": 12, "name": "is_active", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_employee_employment"}, "model.dbt_analytics_engineering.int_employee_profile": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_employee_profile", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"employee_id": {"type": "int", "index": 1, "name": "employee_id", "comment": null}, "first_name": {"type": "sysname", "index": 2, "name": "first_name", "comment": null}, "last_name": {"type": "sysname", "index": 3, "name": "last_name", "comment": null}, "hire_date": {"type": "date", "index": 4, "name": "hire_date", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_employee_profile"}, "model.dbt_analytics_engineering.int_inventory_product": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_inventory_product", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"inventory_snapshot_sk": {"type": "varchar", "index": 1, "name": "inventory_snapshot_sk", "comment": null}, "snapshot_date": {"type": "date", "index": 2, "name": "snapshot_date", "comment": null}, "product_id": {"type": "int", "index": 3, "name": "product_id", "comment": null}, "product_name": {"type": "varchar", "index": 4, "name": "product_name", "comment": null}, "sku": {"type": "varchar", "index": 5, "name": "sku", "comment": null}, "category": {"type": "varchar", "index": 6, "name": "category", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_inventory_product"}, "model.dbt_analytics_engineering.int_inventory_stock": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_inventory_stock", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"inventory_snapshot_sk": {"type": "varchar", "index": 1, "name": "inventory_snapshot_sk", "comment": null}, "stock_on_hand": {"type": "int", "index": 2, "name": "stock_on_hand", "comment": null}, "stock_reserved": {"type": "int", "index": 3, "name": "stock_reserved", "comment": null}, "stock_available": {"type": "int", "index": 4, "name": "stock_available", "comment": null}, "reorder_level": {"type": "int", "index": 5, "name": "reorder_level", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_inventory_stock"}, "model.dbt_analytics_engineering.int_inventory_valuation": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_inventory_valuation", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"inventory_snapshot_sk": {"type": "varchar", "index": 1, "name": "inventory_snapshot_sk", "comment": null}, "unit_cost": {"type": "decimal", "index": 2, "name": "unit_cost", "comment": null}, "unit_price": {"type": "decimal", "index": 3, "name": "unit_price", "comment": null}, "inventory_value": {"type": "decimal", "index": 4, "name": "inventory_value", "comment": null}, "warehouse_location": {"type": "varchar", "index": 5, "name": "warehouse_location", "comment": null}, "store_id": {"type": "int", "index": 6, "name": "store_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_inventory_valuation"}, "model.dbt_analytics_engineering.int_product_attributes": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_product_attributes", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"product_id": {"type": "int", "index": 1, "name": "product_id", "comment": null}, "sku": {"type": "varchar", "index": 2, "name": "sku", "comment": null}, "product_name": {"type": "varchar", "index": 3, "name": "product_name", "comment": null}, "brand": {"type": "varchar", "index": 4, "name": "brand", "comment": null}, "category": {"type": "varchar", "index": 5, "name": "category", "comment": null}, "sub_category": {"type": "varchar", "index": 6, "name": "sub_category", "comment": null}, "department": {"type": "varchar", "index": 7, "name": "department", "comment": null}, "launched_date": {"type": "date", "index": 8, "name": "launched_date", "comment": null}, "product_url": {"type": "varchar", "index": 9, "name": "product_url", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_product_attributes"}, "model.dbt_analytics_engineering.int_product_inventory": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_product_inventory", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"product_id": {"type": "int", "index": 1, "name": "product_id", "comment": null}, "is_available": {"type": "varchar", "index": 2, "name": "is_available", "comment": null}, "stock_quantity": {"type": "int", "index": 3, "name": "stock_quantity", "comment": null}, "reorder_level": {"type": "int", "index": 4, "name": "reorder_level", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_product_inventory"}, "model.dbt_analytics_engineering.int_product_pricing": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_product_pricing", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"product_id": {"type": "int", "index": 1, "name": "product_id", "comment": null}, "base_price_usd": {"type": "decimal", "index": 2, "name": "base_price_usd", "comment": null}, "cost_price_usd": {"type": "decimal", "index": 3, "name": "cost_price_usd", "comment": null}, "gross_margin_pct": {"type": "decimal", "index": 4, "name": "gross_margin_pct", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_product_pricing"}, "model.dbt_analytics_engineering.int_product_supplier": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_product_supplier", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"product_id": {"type": "int", "index": 1, "name": "product_id", "comment": null}, "supplier_name": {"type": "varchar", "index": 2, "name": "supplier_name", "comment": null}, "supplier_country": {"type": "varchar", "index": 3, "name": "supplier_country", "comment": null}, "weight_kg": {"type": "decimal", "index": 4, "name": "weight_kg", "comment": null}, "warranty_years": {"type": "int", "index": 5, "name": "warranty_years", "comment": null}, "rating_avg": {"type": "decimal", "index": 6, "name": "rating_avg", "comment": null}, "review_count": {"type": "int", "index": 7, "name": "review_count", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_product_supplier"}, "model.dbt_analytics_engineering.int_return_processing": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_return_processing", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"return_id": {"type": "int", "index": 1, "name": "return_id", "comment": null}, "return_reason": {"type": "varchar", "index": 2, "name": "return_reason", "comment": null}, "return_channel": {"type": "varchar", "index": 3, "name": "return_channel", "comment": null}, "restocked": {"type": "varchar", "index": 4, "name": "restocked", "comment": null}, "return_status": {"type": "varchar", "index": 5, "name": "return_status", "comment": null}, "handled_by_emp_id": {"type": "int", "index": 6, "name": "handled_by_emp_id", "comment": null}, "notes": {"type": "varchar", "index": 7, "name": "notes", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_return_processing"}, "model.dbt_analytics_engineering.int_return_refund": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_return_refund", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"return_id": {"type": "int", "index": 1, "name": "return_id", "comment": null}, "refund_amount": {"type": "decimal", "index": 2, "name": "refund_amount", "comment": null}, "refund_method": {"type": "varchar", "index": 3, "name": "refund_method", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_return_refund"}, "model.dbt_analytics_engineering.int_return_transaction": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_return_transaction", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"return_id": {"type": "int", "index": 1, "name": "return_id", "comment": null}, "original_txn_id": {"type": "varchar", "index": 2, "name": "original_txn_id", "comment": null}, "original_order_id": {"type": "int", "index": 3, "name": "original_order_id", "comment": null}, "customer_id": {"type": "int", "index": 4, "name": "customer_id", "comment": null}, "customer_name": {"type": "varchar", "index": 5, "name": "customer_name", "comment": null}, "product_id": {"type": "int", "index": 6, "name": "product_id", "comment": null}, "product_name": {"type": "varchar", "index": 7, "name": "product_name", "comment": null}, "quantity_returned": {"type": "int", "index": 8, "name": "quantity_returned", "comment": null}, "return_date": {"type": "date", "index": 9, "name": "return_date", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_return_transaction"}, "model.dbt_analytics_engineering.int_review_feedback": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_review_feedback", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"review_id": {"type": "int", "index": 1, "name": "review_id", "comment": null}, "helpful_votes": {"type": "int", "index": 2, "name": "helpful_votes", "comment": null}, "review_channel": {"type": "varchar", "index": 3, "name": "review_channel", "comment": null}, "review_title": {"type": "varchar", "index": 4, "name": "review_title", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_review_feedback"}, "model.dbt_analytics_engineering.int_review_rating": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_review_rating", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"review_id": {"type": "int", "index": 1, "name": "review_id", "comment": null}, "rating": {"type": "int", "index": 2, "name": "rating", "comment": null}, "rating_text": {"type": "varchar", "index": 3, "name": "rating_text", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_review_rating"}, "model.dbt_analytics_engineering.int_review_transaction": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_review_transaction", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"review_id": {"type": "int", "index": 1, "name": "review_id", "comment": null}, "txn_id": {"type": "varchar", "index": 2, "name": "txn_id", "comment": null}, "customer_id": {"type": "int", "index": 3, "name": "customer_id", "comment": null}, "customer_name": {"type": "varchar", "index": 4, "name": "customer_name", "comment": null}, "product_id": {"type": "int", "index": 5, "name": "product_id", "comment": null}, "product_name": {"type": "varchar", "index": 6, "name": "product_name", "comment": null}, "review_date": {"type": "date", "index": 7, "name": "review_date", "comment": null}, "verified_purchase": {"type": "varchar", "index": 8, "name": "verified_purchase", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_review_transaction"}, "model.dbt_analytics_engineering.int_store_location": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_store_location", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"store_id": {"type": "int", "index": 1, "name": "store_id", "comment": null}, "address": {"type": "varchar", "index": 2, "name": "address", "comment": null}, "city": {"type": "varchar", "index": 3, "name": "city", "comment": null}, "state": {"type": "varchar", "index": 4, "name": "state", "comment": null}, "state_full": {"type": "varchar", "index": 5, "name": "state_full", "comment": null}, "zip_code": {"type": "int", "index": 6, "name": "zip_code", "comment": null}, "country": {"type": "varchar", "index": 7, "name": "country", "comment": null}, "region": {"type": "varchar", "index": 8, "name": "region", "comment": null}, "district": {"type": "varchar", "index": 9, "name": "district", "comment": null}, "phone": {"type": "varchar", "index": 10, "name": "phone", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_store_location"}, "model.dbt_analytics_engineering.int_store_operations": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_store_operations", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"store_id": {"type": "int", "index": 1, "name": "store_id", "comment": null}, "sq_footage": {"type": "int", "index": 2, "name": "sq_footage", "comment": null}, "num_employees": {"type": "int", "index": 3, "name": "num_employees", "comment": null}, "annual_rent_usd": {"type": "int", "index": 4, "name": "annual_rent_usd", "comment": null}, "is_active": {"type": "varchar", "index": 5, "name": "is_active", "comment": null}, "has_parking": {"type": "varchar", "index": 6, "name": "has_parking", "comment": null}, "has_cafe": {"type": "varchar", "index": 7, "name": "has_cafe", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_store_operations"}, "model.dbt_analytics_engineering.int_store_profile": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_store_profile", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"store_id": {"type": "int", "index": 1, "name": "store_id", "comment": null}, "manager_name": {"type": "varchar", "index": 2, "name": "manager_name", "comment": null}, "store_name": {"type": "varchar", "index": 3, "name": "store_name", "comment": null}, "store_type": {"type": "varchar", "index": 4, "name": "store_type", "comment": null}, "opened_date": {"type": "date", "index": 5, "name": "opened_date", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_store_profile"}, "model.dbt_analytics_engineering.int_transaction_financial": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_transaction_financial", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"transaction_id": {"type": "varchar", "index": 1, "name": "transaction_id", "comment": null}, "quantity_ordered": {"type": "int", "index": 2, "name": "quantity_ordered", "comment": null}, "unit_list_price": {"type": "decimal", "index": 3, "name": "unit_list_price", "comment": null}, "discount_pct": {"type": "float", "index": 4, "name": "discount_pct", "comment": null}, "unit_selling_price": {"type": "float", "index": 5, "name": "unit_selling_price", "comment": null}, "line_total_before_tax": {"type": "float", "index": 6, "name": "line_total_before_tax", "comment": null}, "tax_rate_pct": {"type": "int", "index": 7, "name": "tax_rate_pct", "comment": null}, "tax_amount": {"type": "decimal", "index": 8, "name": "tax_amount", "comment": null}, "line_total_with_tax": {"type": "float", "index": 9, "name": "line_total_with_tax", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_transaction_financial"}, "model.dbt_analytics_engineering.int_transaction_fulfillment": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_transaction_fulfillment", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"transaction_id": {"type": "varchar", "index": 1, "name": "transaction_id", "comment": null}, "order_date": {"type": "date", "index": 2, "name": "order_date", "comment": null}, "ship_date": {"type": "date", "index": 3, "name": "ship_date", "comment": null}, "delivery_date": {"type": "date", "index": 4, "name": "delivery_date", "comment": null}, "shipping_method": {"type": "varchar", "index": 5, "name": "shipping_method", "comment": null}, "sales_channel": {"type": "varchar", "index": 6, "name": "sales_channel", "comment": null}, "payment_method": {"type": "varchar", "index": 7, "name": "payment_method", "comment": null}, "record_created": {"type": "date", "index": 8, "name": "record_created", "comment": null}, "last_modified": {"type": "date", "index": 9, "name": "last_modified", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_transaction_fulfillment"}, "model.dbt_analytics_engineering.int_transaction_order": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_transaction_order", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"transaction_id": {"type": "varchar", "index": 1, "name": "transaction_id", "comment": null}, "order_id": {"type": "int", "index": 2, "name": "order_id", "comment": null}, "customer_id": {"type": "int", "index": 3, "name": "customer_id", "comment": null}, "product_id": {"type": "int", "index": 4, "name": "product_id", "comment": null}, "store_id": {"type": "int", "index": 5, "name": "store_id", "comment": null}, "employee_id": {"type": "int", "index": 6, "name": "employee_id", "comment": null}, "order_line_number": {"type": "int", "index": 7, "name": "order_line_number", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_transaction_order"}, "model.dbt_analytics_engineering.int_transaction_status": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "int_transaction_status", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"transaction_id": {"type": "varchar", "index": 1, "name": "transaction_id", "comment": null}, "promo_id": {"type": "int", "index": 2, "name": "promo_id", "comment": null}, "promo_name": {"type": "varchar", "index": 3, "name": "promo_name", "comment": null}, "order_status": {"type": "varchar", "index": 4, "name": "order_status", "comment": null}, "is_returned": {"type": "varchar", "index": 5, "name": "is_returned", "comment": null}, "data_source": {"type": "varchar", "index": 6, "name": "data_source", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.int_transaction_status"}, "model.dbt_analytics_engineering.stg_customers": {"metadata": {"type": "VIEW", "schema": "bronze", "name": "stg_customers", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"customer_id": {"type": "int", "index": 1, "name": "customer_id", "comment": null}, "title": {"type": "varchar", "index": 2, "name": "title", "comment": null}, "first_name": {"type": "varchar", "index": 3, "name": "first_name", "comment": null}, "last_name": {"type": "varchar", "index": 4, "name": "last_name", "comment": null}, "full_name": {"type": "varchar", "index": 5, "name": "full_name", "comment": null}, "gender": {"type": "varchar", "index": 6, "name": "gender", "comment": null}, "date_of_birth": {"type": "varchar", "index": 7, "name": "date_of_birth", "comment": null}, "age": {"type": "int", "index": 8, "name": "age", "comment": null}, "email": {"type": "varchar", "index": 9, "name": "email", "comment": null}, "phone": {"type": "varchar", "index": 10, "name": "phone", "comment": null}, "address": {"type": "varchar", "index": 11, "name": "address", "comment": null}, "city": {"type": "varchar", "index": 12, "name": "city", "comment": null}, "state": {"type": "varchar", "index": 13, "name": "state", "comment": null}, "state_abbr": {"type": "varchar", "index": 14, "name": "state_abbr", "comment": null}, "state_full": {"type": "varchar", "index": 15, "name": "state_full", "comment": null}, "zip_code": {"type": "int", "index": 16, "name": "zip_code", "comment": null}, "country": {"type": "varchar", "index": 17, "name": "country", "comment": null}, "region": {"type": "varchar", "index": 18, "name": "region", "comment": null}, "customer_segment": {"type": "varchar", "index": 19, "name": "customer_segment", "comment": null}, "loyalty_points": {"type": "int", "index": 20, "name": "loyalty_points", "comment": null}, "is_active": {"type": "varchar", "index": 21, "name": "is_active", "comment": null}, "account_created_date": {"type": "varchar", "index": 22, "name": "account_created_date", "comment": null}, "preferred_channel": {"type": "varchar", "index": 23, "name": "preferred_channel", "comment": null}, "annual_income_usd": {"type": "int", "index": 24, "name": "annual_income_usd", "comment": null}, "company": {"type": "varchar", "index": 25, "name": "company", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.stg_customers"}, "model.dbt_analytics_engineering.stg_employees": {"metadata": {"type": "VIEW", "schema": "bronze", "name": "stg_employees", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"employee_id": {"type": "int", "index": 1, "name": "employee_id", "comment": null}, "first_name": {"type": "varchar", "index": 2, "name": "first_name", "comment": null}, "last_name": {"type": "varchar", "index": 3, "name": "last_name", "comment": null}, "full_name": {"type": "varchar", "index": 4, "name": "full_name", "comment": null}, "email": {"type": "varchar", "index": 5, "name": "email", "comment": null}, "phone": {"type": "varchar", "index": 6, "name": "phone", "comment": null}, "job_title": {"type": "varchar", "index": 7, "name": "job_title", "comment": null}, "department": {"type": "varchar", "index": 8, "name": "department", "comment": null}, "store_id": {"type": "int", "index": 9, "name": "store_id", "comment": null}, "store_name": {"type": "varchar", "index": 10, "name": "store_name", "comment": null}, "store_city": {"type": "varchar", "index": 11, "name": "store_city", "comment": null}, "hire_date": {"type": "varchar", "index": 12, "name": "hire_date", "comment": null}, "years_employed": {"type": "int", "index": 13, "name": "years_employed", "comment": null}, "annual_salary_usd": {"type": "int", "index": 14, "name": "annual_salary_usd", "comment": null}, "commission_rate_pct": {"type": "float", "index": 15, "name": "commission_rate_pct", "comment": null}, "is_active": {"type": "varchar", "index": 16, "name": "is_active", "comment": null}, "performance_rating": {"type": "varchar", "index": 17, "name": "performance_rating", "comment": null}, "manager_id": {"type": "int", "index": 18, "name": "manager_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.stg_employees"}, "model.dbt_analytics_engineering.stg_inventory": {"metadata": {"type": "VIEW", "schema": "bronze", "name": "stg_inventory", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"inventory_snapshot_sk": {"type": "varchar", "index": 1, "name": "inventory_snapshot_sk", "comment": null}, "snapshot_date": {"type": "varchar", "index": 2, "name": "snapshot_date", "comment": null}, "product_id": {"type": "int", "index": 3, "name": "product_id", "comment": null}, "product_name": {"type": "varchar", "index": 4, "name": "product_name", "comment": null}, "sku": {"type": "varchar", "index": 5, "name": "sku", "comment": null}, "category": {"type": "varchar", "index": 6, "name": "category", "comment": null}, "stock_on_hand": {"type": "int", "index": 7, "name": "stock_on_hand", "comment": null}, "stock_reserved": {"type": "int", "index": 8, "name": "stock_reserved", "comment": null}, "stock_available": {"type": "varchar", "index": 9, "name": "stock_available", "comment": null}, "reorder_level": {"type": "int", "index": 10, "name": "reorder_level", "comment": null}, "unit_cost": {"type": "varchar", "index": 11, "name": "unit_cost", "comment": null}, "unit_price": {"type": "varchar", "index": 12, "name": "unit_price", "comment": null}, "inventory_value": {"type": "varchar", "index": 13, "name": "inventory_value", "comment": null}, "warehouse_location": {"type": "varchar", "index": 14, "name": "warehouse_location", "comment": null}, "store_id": {"type": "int", "index": 15, "name": "store_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.stg_inventory"}, "model.dbt_analytics_engineering.stg_products": {"metadata": {"type": "VIEW", "schema": "bronze", "name": "stg_products", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"product_id": {"type": "int", "index": 1, "name": "product_id", "comment": null}, "sku": {"type": "varchar", "index": 2, "name": "sku", "comment": null}, "product_name": {"type": "varchar", "index": 3, "name": "product_name", "comment": null}, "brand": {"type": "varchar", "index": 4, "name": "brand", "comment": null}, "category": {"type": "varchar", "index": 5, "name": "category", "comment": null}, "sub_category": {"type": "varchar", "index": 6, "name": "sub_category", "comment": null}, "department": {"type": "varchar", "index": 7, "name": "department", "comment": null}, "base_price_usd": {"type": "varchar", "index": 8, "name": "base_price_usd", "comment": null}, "cost_price_usd": {"type": "varchar", "index": 9, "name": "cost_price_usd", "comment": null}, "gross_margin_pct": {"type": "float", "index": 10, "name": "gross_margin_pct", "comment": null}, "weight_kg": {"type": "float", "index": 11, "name": "weight_kg", "comment": null}, "is_available": {"type": "varchar", "index": 12, "name": "is_available", "comment": null}, "stock_quantity": {"type": "int", "index": 13, "name": "stock_quantity", "comment": null}, "reorder_level": {"type": "int", "index": 14, "name": "reorder_level", "comment": null}, "supplier_name": {"type": "varchar", "index": 15, "name": "supplier_name", "comment": null}, "supplier_country": {"type": "varchar", "index": 16, "name": "supplier_country", "comment": null}, "warranty_years": {"type": "int", "index": 17, "name": "warranty_years", "comment": null}, "rating_avg": {"type": "float", "index": 18, "name": "rating_avg", "comment": null}, "review_count": {"type": "int", "index": 19, "name": "review_count", "comment": null}, "launched_date": {"type": "varchar", "index": 20, "name": "launched_date", "comment": null}, "product_url": {"type": "varchar", "index": 21, "name": "product_url", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.stg_products"}, "model.dbt_analytics_engineering.stg_returns": {"metadata": {"type": "VIEW", "schema": "bronze", "name": "stg_returns", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"return_id": {"type": "int", "index": 1, "name": "return_id", "comment": null}, "original_txn_id": {"type": "varchar", "index": 2, "name": "original_txn_id", "comment": null}, "original_order_id": {"type": "int", "index": 3, "name": "original_order_id", "comment": null}, "customer_id": {"type": "int", "index": 4, "name": "customer_id", "comment": null}, "customer_name": {"type": "varchar", "index": 5, "name": "customer_name", "comment": null}, "product_id": {"type": "int", "index": 6, "name": "product_id", "comment": null}, "product_name": {"type": "varchar", "index": 7, "name": "product_name", "comment": null}, "quantity_returned": {"type": "int", "index": 8, "name": "quantity_returned", "comment": null}, "return_date": {"type": "varchar", "index": 9, "name": "return_date", "comment": null}, "return_reason": {"type": "varchar", "index": 10, "name": "return_reason", "comment": null}, "refund_amount": {"type": "varchar", "index": 11, "name": "refund_amount", "comment": null}, "refund_method": {"type": "varchar", "index": 12, "name": "refund_method", "comment": null}, "return_channel": {"type": "varchar", "index": 13, "name": "return_channel", "comment": null}, "restocked": {"type": "varchar", "index": 14, "name": "restocked", "comment": null}, "return_status": {"type": "varchar", "index": 15, "name": "return_status", "comment": null}, "handled_by_emp_id": {"type": "int", "index": 16, "name": "handled_by_emp_id", "comment": null}, "notes": {"type": "varchar", "index": 17, "name": "notes", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.stg_returns"}, "model.dbt_analytics_engineering.stg_reviews": {"metadata": {"type": "VIEW", "schema": "bronze", "name": "stg_reviews", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"review_id": {"type": "int", "index": 1, "name": "review_id", "comment": null}, "txn_id": {"type": "varchar", "index": 2, "name": "txn_id", "comment": null}, "customer_id": {"type": "int", "index": 3, "name": "customer_id", "comment": null}, "customer_name": {"type": "varchar", "index": 4, "name": "customer_name", "comment": null}, "product_id": {"type": "int", "index": 5, "name": "product_id", "comment": null}, "product_name": {"type": "varchar", "index": 6, "name": "product_name", "comment": null}, "rating": {"type": "int", "index": 7, "name": "rating", "comment": null}, "rating_text": {"type": "varchar", "index": 8, "name": "rating_text", "comment": null}, "review_date": {"type": "varchar", "index": 9, "name": "review_date", "comment": null}, "verified_purchase": {"type": "varchar", "index": 10, "name": "verified_purchase", "comment": null}, "helpful_votes": {"type": "int", "index": 11, "name": "helpful_votes", "comment": null}, "review_channel": {"type": "varchar", "index": 12, "name": "review_channel", "comment": null}, "review_title": {"type": "varchar", "index": 13, "name": "review_title", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.stg_reviews"}, "model.dbt_analytics_engineering.stg_stores": {"metadata": {"type": "VIEW", "schema": "bronze", "name": "stg_stores", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"store_id": {"type": "int", "index": 1, "name": "store_id", "comment": null}, "store_name": {"type": "varchar", "index": 2, "name": "store_name", "comment": null}, "store_type": {"type": "varchar", "index": 3, "name": "store_type", "comment": null}, "address": {"type": "varchar", "index": 4, "name": "address", "comment": null}, "city": {"type": "varchar", "index": 5, "name": "city", "comment": null}, "state": {"type": "varchar", "index": 6, "name": "state", "comment": null}, "state_full": {"type": "varchar", "index": 7, "name": "state_full", "comment": null}, "zip_code": {"type": "int", "index": 8, "name": "zip_code", "comment": null}, "country": {"type": "varchar", "index": 9, "name": "country", "comment": null}, "region": {"type": "varchar", "index": 10, "name": "region", "comment": null}, "district": {"type": "varchar", "index": 11, "name": "district", "comment": null}, "phone": {"type": "varchar", "index": 12, "name": "phone", "comment": null}, "manager_name": {"type": "varchar", "index": 13, "name": "manager_name", "comment": null}, "opened_date": {"type": "varchar", "index": 14, "name": "opened_date", "comment": null}, "sq_footage": {"type": "int", "index": 15, "name": "sq_footage", "comment": null}, "num_employees": {"type": "int", "index": 16, "name": "num_employees", "comment": null}, "annual_rent_usd": {"type": "int", "index": 17, "name": "annual_rent_usd", "comment": null}, "is_active": {"type": "varchar", "index": 18, "name": "is_active", "comment": null}, "has_parking": {"type": "varchar", "index": 19, "name": "has_parking", "comment": null}, "has_cafe": {"type": "varchar", "index": 20, "name": "has_cafe", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.stg_stores"}, "model.dbt_analytics_engineering.stg_transactions": {"metadata": {"type": "VIEW", "schema": "bronze", "name": "stg_transactions", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"transaction_id": {"type": "varchar", "index": 1, "name": "transaction_id", "comment": null}, "rn": {"type": "bigint", "index": 2, "name": "rn", "comment": null}, "order_id": {"type": "int", "index": 3, "name": "order_id", "comment": null}, "order_line_number": {"type": "int", "index": 4, "name": "order_line_number", "comment": null}, "order_date": {"type": "varchar", "index": 5, "name": "order_date", "comment": null}, "order_year": {"type": "int", "index": 6, "name": "order_year", "comment": null}, "order_month": {"type": "int", "index": 7, "name": "order_month", "comment": null}, "order_month_name": {"type": "varchar", "index": 8, "name": "order_month_name", "comment": null}, "order_quarter": {"type": "varchar", "index": 9, "name": "order_quarter", "comment": null}, "order_day_of_week": {"type": "varchar", "index": 10, "name": "order_day_of_week", "comment": null}, "ship_date": {"type": "varchar", "index": 11, "name": "ship_date", "comment": null}, "delivery_date": {"type": "varchar", "index": 12, "name": "delivery_date", "comment": null}, "customer_id": {"type": "int", "index": 13, "name": "customer_id", "comment": null}, "customer_full_name": {"type": "varchar", "index": 14, "name": "customer_full_name", "comment": null}, "customer_first_name": {"type": "varchar", "index": 15, "name": "customer_first_name", "comment": null}, "customer_last_name": {"type": "varchar", "index": 16, "name": "customer_last_name", "comment": null}, "customer_email": {"type": "varchar", "index": 17, "name": "customer_email", "comment": null}, "customer_phone": {"type": "varchar", "index": 18, "name": "customer_phone", "comment": null}, "customer_city": {"type": "varchar", "index": 19, "name": "customer_city", "comment": null}, "customer_state": {"type": "varchar", "index": 20, "name": "customer_state", "comment": null}, "customer_zip": {"type": "int", "index": 21, "name": "customer_zip", "comment": null}, "customer_region": {"type": "varchar", "index": 22, "name": "customer_region", "comment": null}, "customer_segment": {"type": "varchar", "index": 23, "name": "customer_segment", "comment": null}, "customer_gender": {"type": "varchar", "index": 24, "name": "customer_gender", "comment": null}, "customer_age": {"type": "int", "index": 25, "name": "customer_age", "comment": null}, "customer_age_group": {"type": "varchar", "index": 26, "name": "customer_age_group", "comment": null}, "product_id": {"type": "int", "index": 27, "name": "product_id", "comment": null}, "product_name": {"type": "varchar", "index": 28, "name": "product_name", "comment": null}, "sku": {"type": "varchar", "index": 29, "name": "sku", "comment": null}, "brand": {"type": "varchar", "index": 30, "name": "brand", "comment": null}, "category": {"type": "varchar", "index": 31, "name": "category", "comment": null}, "sub_category": {"type": "varchar", "index": 32, "name": "sub_category", "comment": null}, "department": {"type": "varchar", "index": 33, "name": "department", "comment": null}, "quantity_ordered": {"type": "int", "index": 34, "name": "quantity_ordered", "comment": null}, "unit_list_price": {"type": "varchar", "index": 35, "name": "unit_list_price", "comment": null}, "discount_pct": {"type": "float", "index": 36, "name": "discount_pct", "comment": null}, "unit_selling_price": {"type": "varchar", "index": 37, "name": "unit_selling_price", "comment": null}, "line_total_before_tax": {"type": "varchar", "index": 38, "name": "line_total_before_tax", "comment": null}, "tax_rate_pct": {"type": "float", "index": 39, "name": "tax_rate_pct", "comment": null}, "tax_amount": {"type": "varchar", "index": 40, "name": "tax_amount", "comment": null}, "line_total_with_tax": {"type": "varchar", "index": 41, "name": "line_total_with_tax", "comment": null}, "store_id": {"type": "int", "index": 42, "name": "store_id", "comment": null}, "store_name": {"type": "varchar", "index": 43, "name": "store_name", "comment": null}, "store_city": {"type": "varchar", "index": 44, "name": "store_city", "comment": null}, "store_state": {"type": "varchar", "index": 45, "name": "store_state", "comment": null}, "store_region": {"type": "varchar", "index": 46, "name": "store_region", "comment": null}, "store_type": {"type": "varchar", "index": 47, "name": "store_type", "comment": null}, "employee_id": {"type": "int", "index": 48, "name": "employee_id", "comment": null}, "employee_name": {"type": "varchar", "index": 49, "name": "employee_name", "comment": null}, "employee_job_title": {"type": "varchar", "index": 50, "name": "employee_job_title", "comment": null}, "promo_id": {"type": "int", "index": 51, "name": "promo_id", "comment": null}, "promo_name": {"type": "varchar", "index": 52, "name": "promo_name", "comment": null}, "sales_channel": {"type": "varchar", "index": 53, "name": "sales_channel", "comment": null}, "payment_method": {"type": "varchar", "index": 54, "name": "payment_method", "comment": null}, "shipping_method": {"type": "varchar", "index": 55, "name": "shipping_method", "comment": null}, "order_status": {"type": "varchar", "index": 56, "name": "order_status", "comment": null}, "is_returned": {"type": "varchar", "index": 57, "name": "is_returned", "comment": null}, "cost_price": {"type": "varchar", "index": 58, "name": "cost_price", "comment": null}, "gross_profit": {"type": "varchar", "index": 59, "name": "gross_profit", "comment": null}, "data_source": {"type": "varchar", "index": 60, "name": "data_source", "comment": null}, "record_created_ts": {"type": "datetime2", "index": 61, "name": "record_created_ts", "comment": null}, "last_modified_ts": {"type": "datetime2", "index": 62, "name": "last_modified_ts", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.dbt_analytics_engineering.stg_transactions"}}, "sources": {"source.dbt_analytics_engineering.bronze.customers": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "customers", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"customer_id": {"type": "int", "index": 1, "name": "customer_id", "comment": null}, "title": {"type": "varchar", "index": 2, "name": "title", "comment": null}, "first_name": {"type": "varchar", "index": 3, "name": "first_name", "comment": null}, "last_name": {"type": "varchar", "index": 4, "name": "last_name", "comment": null}, "full_name": {"type": "varchar", "index": 5, "name": "full_name", "comment": null}, "gender": {"type": "varchar", "index": 6, "name": "gender", "comment": null}, "date_of_birth": {"type": "varchar", "index": 7, "name": "date_of_birth", "comment": null}, "age": {"type": "int", "index": 8, "name": "age", "comment": null}, "email": {"type": "varchar", "index": 9, "name": "email", "comment": null}, "phone": {"type": "varchar", "index": 10, "name": "phone", "comment": null}, "address": {"type": "varchar", "index": 11, "name": "address", "comment": null}, "city": {"type": "varchar", "index": 12, "name": "city", "comment": null}, "state": {"type": "varchar", "index": 13, "name": "state", "comment": null}, "state_abbr": {"type": "varchar", "index": 14, "name": "state_abbr", "comment": null}, "state_full": {"type": "varchar", "index": 15, "name": "state_full", "comment": null}, "zip_code": {"type": "int", "index": 16, "name": "zip_code", "comment": null}, "country": {"type": "varchar", "index": 17, "name": "country", "comment": null}, "region": {"type": "varchar", "index": 18, "name": "region", "comment": null}, "customer_segment": {"type": "varchar", "index": 19, "name": "customer_segment", "comment": null}, "loyalty_points": {"type": "int", "index": 20, "name": "loyalty_points", "comment": null}, "is_active": {"type": "varchar", "index": 21, "name": "is_active", "comment": null}, "account_created_date": {"type": "varchar", "index": 22, "name": "account_created_date", "comment": null}, "preferred_channel": {"type": "varchar", "index": 23, "name": "preferred_channel", "comment": null}, "annual_income_usd": {"type": "int", "index": 24, "name": "annual_income_usd", "comment": null}, "company": {"type": "varchar", "index": 25, "name": "company", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.dbt_analytics_engineering.bronze.customers"}, "source.dbt_analytics_engineering.bronze.employees": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "employees", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"employee_id": {"type": "int", "index": 1, "name": "employee_id", "comment": null}, "first_name": {"type": "varchar", "index": 2, "name": "first_name", "comment": null}, "last_name": {"type": "varchar", "index": 3, "name": "last_name", "comment": null}, "full_name": {"type": "varchar", "index": 4, "name": "full_name", "comment": null}, "email": {"type": "varchar", "index": 5, "name": "email", "comment": null}, "phone": {"type": "varchar", "index": 6, "name": "phone", "comment": null}, "job_title": {"type": "varchar", "index": 7, "name": "job_title", "comment": null}, "department": {"type": "varchar", "index": 8, "name": "department", "comment": null}, "store_id": {"type": "int", "index": 9, "name": "store_id", "comment": null}, "store_name": {"type": "varchar", "index": 10, "name": "store_name", "comment": null}, "store_city": {"type": "varchar", "index": 11, "name": "store_city", "comment": null}, "hire_date": {"type": "varchar", "index": 12, "name": "hire_date", "comment": null}, "years_employed": {"type": "int", "index": 13, "name": "years_employed", "comment": null}, "annual_salary_usd": {"type": "int", "index": 14, "name": "annual_salary_usd", "comment": null}, "commission_rate_pct": {"type": "float", "index": 15, "name": "commission_rate_pct", "comment": null}, "is_active": {"type": "varchar", "index": 16, "name": "is_active", "comment": null}, "performance_rating": {"type": "varchar", "index": 17, "name": "performance_rating", "comment": null}, "manager_id": {"type": "int", "index": 18, "name": "manager_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.dbt_analytics_engineering.bronze.employees"}, "source.dbt_analytics_engineering.bronze.inventory_snapshots": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "inventory_snapshots", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"snapshot_date": {"type": "varchar", "index": 1, "name": "snapshot_date", "comment": null}, "product_id": {"type": "int", "index": 2, "name": "product_id", "comment": null}, "product_name": {"type": "varchar", "index": 3, "name": "product_name", "comment": null}, "sku": {"type": "varchar", "index": 4, "name": "sku", "comment": null}, "category": {"type": "varchar", "index": 5, "name": "category", "comment": null}, "stock_on_hand": {"type": "int", "index": 6, "name": "stock_on_hand", "comment": null}, "stock_reserved": {"type": "int", "index": 7, "name": "stock_reserved", "comment": null}, "stock_available": {"type": "varchar", "index": 8, "name": "stock_available", "comment": null}, "reorder_level": {"type": "int", "index": 9, "name": "reorder_level", "comment": null}, "unit_cost": {"type": "varchar", "index": 10, "name": "unit_cost", "comment": null}, "unit_price": {"type": "varchar", "index": 11, "name": "unit_price", "comment": null}, "inventory_value": {"type": "varchar", "index": 12, "name": "inventory_value", "comment": null}, "warehouse_location": {"type": "varchar", "index": 13, "name": "warehouse_location", "comment": null}, "store_id": {"type": "int", "index": 14, "name": "store_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.dbt_analytics_engineering.bronze.inventory_snapshots"}, "source.dbt_analytics_engineering.bronze.products": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "products", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"product_id": {"type": "int", "index": 1, "name": "product_id", "comment": null}, "sku": {"type": "varchar", "index": 2, "name": "sku", "comment": null}, "product_name": {"type": "varchar", "index": 3, "name": "product_name", "comment": null}, "brand": {"type": "varchar", "index": 4, "name": "brand", "comment": null}, "category": {"type": "varchar", "index": 5, "name": "category", "comment": null}, "sub_category": {"type": "varchar", "index": 6, "name": "sub_category", "comment": null}, "department": {"type": "varchar", "index": 7, "name": "department", "comment": null}, "base_price_usd": {"type": "varchar", "index": 8, "name": "base_price_usd", "comment": null}, "cost_price_usd": {"type": "varchar", "index": 9, "name": "cost_price_usd", "comment": null}, "gross_margin_pct": {"type": "float", "index": 10, "name": "gross_margin_pct", "comment": null}, "weight_kg": {"type": "float", "index": 11, "name": "weight_kg", "comment": null}, "is_available": {"type": "varchar", "index": 12, "name": "is_available", "comment": null}, "stock_quantity": {"type": "int", "index": 13, "name": "stock_quantity", "comment": null}, "reorder_level": {"type": "int", "index": 14, "name": "reorder_level", "comment": null}, "supplier_name": {"type": "varchar", "index": 15, "name": "supplier_name", "comment": null}, "supplier_country": {"type": "varchar", "index": 16, "name": "supplier_country", "comment": null}, "warranty_years": {"type": "int", "index": 17, "name": "warranty_years", "comment": null}, "rating_avg": {"type": "float", "index": 18, "name": "rating_avg", "comment": null}, "review_count": {"type": "int", "index": 19, "name": "review_count", "comment": null}, "launched_date": {"type": "varchar", "index": 20, "name": "launched_date", "comment": null}, "product_url": {"type": "varchar", "index": 21, "name": "product_url", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.dbt_analytics_engineering.bronze.products"}, "source.dbt_analytics_engineering.bronze.returns": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "returns", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"return_id": {"type": "int", "index": 1, "name": "return_id", "comment": null}, "original_txn_id": {"type": "varchar", "index": 2, "name": "original_txn_id", "comment": null}, "original_order_id": {"type": "int", "index": 3, "name": "original_order_id", "comment": null}, "customer_id": {"type": "int", "index": 4, "name": "customer_id", "comment": null}, "customer_name": {"type": "varchar", "index": 5, "name": "customer_name", "comment": null}, "product_id": {"type": "int", "index": 6, "name": "product_id", "comment": null}, "product_name": {"type": "varchar", "index": 7, "name": "product_name", "comment": null}, "quantity_returned": {"type": "int", "index": 8, "name": "quantity_returned", "comment": null}, "return_date": {"type": "varchar", "index": 9, "name": "return_date", "comment": null}, "return_reason": {"type": "varchar", "index": 10, "name": "return_reason", "comment": null}, "refund_amount": {"type": "varchar", "index": 11, "name": "refund_amount", "comment": null}, "refund_method": {"type": "varchar", "index": 12, "name": "refund_method", "comment": null}, "return_channel": {"type": "varchar", "index": 13, "name": "return_channel", "comment": null}, "restocked": {"type": "varchar", "index": 14, "name": "restocked", "comment": null}, "return_status": {"type": "varchar", "index": 15, "name": "return_status", "comment": null}, "handled_by_emp_id": {"type": "int", "index": 16, "name": "handled_by_emp_id", "comment": null}, "notes": {"type": "varchar", "index": 17, "name": "notes", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.dbt_analytics_engineering.bronze.returns"}, "source.dbt_analytics_engineering.bronze.reviews": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "reviews", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"review_id": {"type": "int", "index": 1, "name": "review_id", "comment": null}, "txn_id": {"type": "varchar", "index": 2, "name": "txn_id", "comment": null}, "customer_id": {"type": "int", "index": 3, "name": "customer_id", "comment": null}, "customer_name": {"type": "varchar", "index": 4, "name": "customer_name", "comment": null}, "product_id": {"type": "int", "index": 5, "name": "product_id", "comment": null}, "product_name": {"type": "varchar", "index": 6, "name": "product_name", "comment": null}, "rating": {"type": "int", "index": 7, "name": "rating", "comment": null}, "rating_text": {"type": "varchar", "index": 8, "name": "rating_text", "comment": null}, "review_date": {"type": "varchar", "index": 9, "name": "review_date", "comment": null}, "verified_purchase": {"type": "varchar", "index": 10, "name": "verified_purchase", "comment": null}, "helpful_votes": {"type": "int", "index": 11, "name": "helpful_votes", "comment": null}, "review_channel": {"type": "varchar", "index": 12, "name": "review_channel", "comment": null}, "review_title": {"type": "varchar", "index": 13, "name": "review_title", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.dbt_analytics_engineering.bronze.reviews"}, "source.dbt_analytics_engineering.bronze.sales_transactions": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "sales_transactions", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"transaction_id": {"type": "varchar", "index": 1, "name": "transaction_id", "comment": null}, "order_id": {"type": "int", "index": 2, "name": "order_id", "comment": null}, "order_line_number": {"type": "int", "index": 3, "name": "order_line_number", "comment": null}, "order_date": {"type": "varchar", "index": 4, "name": "order_date", "comment": null}, "order_year": {"type": "int", "index": 5, "name": "order_year", "comment": null}, "order_month": {"type": "int", "index": 6, "name": "order_month", "comment": null}, "order_month_name": {"type": "varchar", "index": 7, "name": "order_month_name", "comment": null}, "order_quarter": {"type": "varchar", "index": 8, "name": "order_quarter", "comment": null}, "order_day_of_week": {"type": "varchar", "index": 9, "name": "order_day_of_week", "comment": null}, "ship_date": {"type": "varchar", "index": 10, "name": "ship_date", "comment": null}, "delivery_date": {"type": "varchar", "index": 11, "name": "delivery_date", "comment": null}, "customer_id": {"type": "int", "index": 12, "name": "customer_id", "comment": null}, "customer_full_name": {"type": "varchar", "index": 13, "name": "customer_full_name", "comment": null}, "customer_first_name": {"type": "varchar", "index": 14, "name": "customer_first_name", "comment": null}, "customer_last_name": {"type": "varchar", "index": 15, "name": "customer_last_name", "comment": null}, "customer_email": {"type": "varchar", "index": 16, "name": "customer_email", "comment": null}, "customer_phone": {"type": "varchar", "index": 17, "name": "customer_phone", "comment": null}, "customer_city": {"type": "varchar", "index": 18, "name": "customer_city", "comment": null}, "customer_state": {"type": "varchar", "index": 19, "name": "customer_state", "comment": null}, "customer_zip": {"type": "int", "index": 20, "name": "customer_zip", "comment": null}, "customer_region": {"type": "varchar", "index": 21, "name": "customer_region", "comment": null}, "customer_segment": {"type": "varchar", "index": 22, "name": "customer_segment", "comment": null}, "customer_gender": {"type": "varchar", "index": 23, "name": "customer_gender", "comment": null}, "customer_age": {"type": "int", "index": 24, "name": "customer_age", "comment": null}, "customer_age_group": {"type": "varchar", "index": 25, "name": "customer_age_group", "comment": null}, "product_id": {"type": "int", "index": 26, "name": "product_id", "comment": null}, "product_name": {"type": "varchar", "index": 27, "name": "product_name", "comment": null}, "sku": {"type": "varchar", "index": 28, "name": "sku", "comment": null}, "brand": {"type": "varchar", "index": 29, "name": "brand", "comment": null}, "category": {"type": "varchar", "index": 30, "name": "category", "comment": null}, "sub_category": {"type": "varchar", "index": 31, "name": "sub_category", "comment": null}, "department": {"type": "varchar", "index": 32, "name": "department", "comment": null}, "quantity_ordered": {"type": "int", "index": 33, "name": "quantity_ordered", "comment": null}, "unit_list_price": {"type": "varchar", "index": 34, "name": "unit_list_price", "comment": null}, "discount_pct": {"type": "float", "index": 35, "name": "discount_pct", "comment": null}, "unit_selling_price": {"type": "varchar", "index": 36, "name": "unit_selling_price", "comment": null}, "line_total_before_tax": {"type": "varchar", "index": 37, "name": "line_total_before_tax", "comment": null}, "tax_rate_pct": {"type": "float", "index": 38, "name": "tax_rate_pct", "comment": null}, "tax_amount": {"type": "varchar", "index": 39, "name": "tax_amount", "comment": null}, "line_total_with_tax": {"type": "varchar", "index": 40, "name": "line_total_with_tax", "comment": null}, "store_id": {"type": "int", "index": 41, "name": "store_id", "comment": null}, "store_name": {"type": "varchar", "index": 42, "name": "store_name", "comment": null}, "store_city": {"type": "varchar", "index": 43, "name": "store_city", "comment": null}, "store_state": {"type": "varchar", "index": 44, "name": "store_state", "comment": null}, "store_region": {"type": "varchar", "index": 45, "name": "store_region", "comment": null}, "store_type": {"type": "varchar", "index": 46, "name": "store_type", "comment": null}, "employee_id": {"type": "int", "index": 47, "name": "employee_id", "comment": null}, "employee_name": {"type": "varchar", "index": 48, "name": "employee_name", "comment": null}, "employee_job_title": {"type": "varchar", "index": 49, "name": "employee_job_title", "comment": null}, "promo_id": {"type": "int", "index": 50, "name": "promo_id", "comment": null}, "promo_name": {"type": "varchar", "index": 51, "name": "promo_name", "comment": null}, "sales_channel": {"type": "varchar", "index": 52, "name": "sales_channel", "comment": null}, "payment_method": {"type": "varchar", "index": 53, "name": "payment_method", "comment": null}, "shipping_method": {"type": "varchar", "index": 54, "name": "shipping_method", "comment": null}, "order_status": {"type": "varchar", "index": 55, "name": "order_status", "comment": null}, "is_returned": {"type": "varchar", "index": 56, "name": "is_returned", "comment": null}, "cost_price": {"type": "varchar", "index": 57, "name": "cost_price", "comment": null}, "gross_profit": {"type": "varchar", "index": 58, "name": "gross_profit", "comment": null}, "data_source": {"type": "varchar", "index": 59, "name": "data_source", "comment": null}, "record_created_ts": {"type": "datetime2", "index": 60, "name": "record_created_ts", "comment": null}, "last_modified_ts": {"type": "datetime2", "index": 61, "name": "last_modified_ts", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.dbt_analytics_engineering.bronze.sales_transactions"}, "source.dbt_analytics_engineering.bronze.stores": {"metadata": {"type": "BASE TABLE", "schema": "bronze", "name": "stores", "database": "RetailDB", "comment": null, "owner": "dbo"}, "columns": {"store_id": {"type": "int", "index": 1, "name": "store_id", "comment": null}, "store_name": {"type": "varchar", "index": 2, "name": "store_name", "comment": null}, "store_type": {"type": "varchar", "index": 3, "name": "store_type", "comment": null}, "address": {"type": "varchar", "index": 4, "name": "address", "comment": null}, "city": {"type": "varchar", "index": 5, "name": "city", "comment": null}, "state": {"type": "varchar", "index": 6, "name": "state", "comment": null}, "state_full": {"type": "varchar", "index": 7, "name": "state_full", "comment": null}, "zip_code": {"type": "int", "index": 8, "name": "zip_code", "comment": null}, "country": {"type": "varchar", "index": 9, "name": "country", "comment": null}, "region": {"type": "varchar", "index": 10, "name": "region", "comment": null}, "district": {"type": "varchar", "index": 11, "name": "district", "comment": null}, "phone": {"type": "varchar", "index": 12, "name": "phone", "comment": null}, "manager_name": {"type": "varchar", "index": 13, "name": "manager_name", "comment": null}, "opened_date": {"type": "varchar", "index": 14, "name": "opened_date", "comment": null}, "sq_footage": {"type": "int", "index": 15, "name": "sq_footage", "comment": null}, "num_employees": {"type": "int", "index": 16, "name": "num_employees", "comment": null}, "annual_rent_usd": {"type": "int", "index": 17, "name": "annual_rent_usd", "comment": null}, "is_active": {"type": "varchar", "index": 18, "name": "is_active", "comment": null}, "has_parking": {"type": "varchar", "index": 19, "name": "has_parking", "comment": null}, "has_cafe": {"type": "varchar", "index": 20, "name": "has_cafe", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.dbt_analytics_engineering.bronze.stores"}}, "errors": null}
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09.sql
new file mode 100644
index 0000000..6edc977
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ region as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customer_location"
+ group by region
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Midwest','Northeast','South','West'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b.sql
new file mode 100644
index 0000000..749c887
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ country as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customer_location"
+ group by country
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'United States','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977.sql
new file mode 100644
index 0000000..a8a6b84
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ gender as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customer_profile"
+ group by gender
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Male','Female','Non-Binary','Other','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04.sql
new file mode 100644
index 0000000..aa79757
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ is_active as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customer_segmentation"
+ group by is_active
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'True','False','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7.sql
new file mode 100644
index 0000000..a45088e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ customer_segment as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customer_segmentation"
+ group by customer_segment
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Bronze','Silver','Gold','Platinum','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47.sql
new file mode 100644
index 0000000..93c7fc6
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ preferred_channel as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customers_contact"
+ group by preferred_channel
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Mobile App','In Store','Catalog','Website','Phone Call','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_address.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_address.sql
new file mode 100644
index 0000000..2a94338
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_address.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select address
+from "RetailDB"."bronze"."int_customer_location"
+where address is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_city.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_city.sql
new file mode 100644
index 0000000..0ffc84f
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_city.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select city
+from "RetailDB"."bronze"."int_customer_location"
+where city is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_country.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_country.sql
new file mode 100644
index 0000000..d79c9b0
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_country.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select country
+from "RetailDB"."bronze"."int_customer_location"
+where country is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_region.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_region.sql
new file mode 100644
index 0000000..4fb4144
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_region.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select region
+from "RetailDB"."bronze"."int_customer_location"
+where region is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state.sql
new file mode 100644
index 0000000..21a5b7a
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select state
+from "RetailDB"."bronze"."int_customer_location"
+where state is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state_abbr.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state_abbr.sql
new file mode 100644
index 0000000..ad5002f
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state_abbr.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select state_abbr
+from "RetailDB"."bronze"."int_customer_location"
+where state_abbr is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_zip_code.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_zip_code.sql
new file mode 100644
index 0000000..97109ed
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_zip_code.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select zip_code
+from "RetailDB"."bronze"."int_customer_location"
+where zip_code is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_date_of_birth.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_date_of_birth.sql
new file mode 100644
index 0000000..1b9d13b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_date_of_birth.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select date_of_birth
+from "RetailDB"."bronze"."int_customer_profile"
+where date_of_birth is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_first_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_first_name.sql
new file mode 100644
index 0000000..b69056f
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_first_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select first_name
+from "RetailDB"."bronze"."int_customer_profile"
+where first_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_gender.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_gender.sql
new file mode 100644
index 0000000..2381fcd
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_gender.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select gender
+from "RetailDB"."bronze"."int_customer_profile"
+where gender is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_last_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_last_name.sql
new file mode 100644
index 0000000..fba7557
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_last_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select last_name
+from "RetailDB"."bronze"."int_customer_profile"
+where last_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_company.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_company.sql
new file mode 100644
index 0000000..1200398
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_company.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select company
+from "RetailDB"."bronze"."int_customer_segmentation"
+where company is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_customer_segment.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_customer_segment.sql
new file mode 100644
index 0000000..51cfcb4
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_customer_segment.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select customer_segment
+from "RetailDB"."bronze"."int_customer_segmentation"
+where customer_segment is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_is_active.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_is_active.sql
new file mode 100644
index 0000000..b025571
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_is_active.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select is_active
+from "RetailDB"."bronze"."int_customer_segmentation"
+where is_active is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_email.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_email.sql
new file mode 100644
index 0000000..77f9b2e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_email.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select email
+from "RetailDB"."bronze"."int_customers_contact"
+where email is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_phone.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_phone.sql
new file mode 100644
index 0000000..9db386a
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_phone.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select phone
+from "RetailDB"."bronze"."int_customers_contact"
+where phone is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_preferred_channel.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_preferred_channel.sql
new file mode 100644
index 0000000..54b65c7
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_preferred_channel.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select preferred_channel
+from "RetailDB"."bronze"."int_customers_contact"
+where preferred_channel is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/valid_date_format_int_customer_profile_date_of_birth.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/valid_date_format_int_customer_profile_date_of_birth.sql
new file mode 100644
index 0000000..5a17632
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/valid_date_format_int_customer_profile_date_of_birth.sql
@@ -0,0 +1,8 @@
+
+
+SELECT
+ *
+FROM "RetailDB"."bronze"."int_customer_profile"
+WHERE date_of_birth > '1900-01-01'
+ AND date_of_birth < '2100-01-01'
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_location.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_location.sql
new file mode 100644
index 0000000..aee732b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_location.sql
@@ -0,0 +1,92 @@
+-- ============================================================================
+-- Model: int_customer_location
+--
+-- Purpose:
+-- Creates a trusted customer location dataset by standardizing geographic
+-- attributes and resolving common data quality issues across customer
+-- addresses. This model corrects city name spelling errors, normalizes
+-- address formatting, validates state and ZIP code information, and
+-- standardizes country values into business-defined categories. The
+-- resulting dataset provides reliable geographic attributes for customer
+-- segmentation, regional reporting, sales analysis, and downstream
+-- dimensional models.
+--
+-- Maintainer: Ritik
+-- ============================================================================
+
+-- dbt.TitleCase is a custom function taht help me to convert string into title case
+SELECT
+ customer_id,
+
+ CASE
+ WHEN address IS NULL OR address = ''
+ THEN 'Unknown'
+
+ ELSE TRIM(dbo.TitleCase(address))
+ END as address,
+
+ CASE
+ WHEN TRIM(LOWER(city)) = 'an diego' THEN dbo.TitleCase('san diego')
+ WHEN TRIM(LOWER(city)) = 'chiago' THEN dbo.TitleCase('chicago')
+ WHEN TRIM(LOWER(city)) = 'chrlotte' THEN dbo.TitleCase('charlotte')
+ WHEN TRIM(LOWER(city)) = 'dalla' THEN dbo.TitleCase('dallas')
+ WHEN TRIM(LOWER(city)) = 'inneapolis' THEN dbo.TitleCase('minneapolis')
+ WHEN TRIM(LOWER(city)) = 'louiville' THEN dbo.TitleCase('louisville')
+ WHEN TRIM(LOWER(city)) = 'milwakee' THEN dbo.TitleCase('milwaukee')
+ WHEN TRIM(LOWER(city)) = 'mnneapolis' THEN dbo.TitleCase('minneapolis')
+ WHEN TRIM(LOWER(city)) = 'oklahoma cty' THEN dbo.TitleCase('oklahoma city')
+ WHEN TRIM(LOWER(city)) = 'ortland' THEN dbo.TitleCase('portland')
+ WHEN TRIM(LOWER(city)) = 'sa diego' THEN dbo.TitleCase('san diego')
+ WHEN TRIM(LOWER(city)) = 'san ntonio' THEN dbo.TitleCase('san antonio')
+ WHEN TRIM(LOWER(city)) = 'sn antonio' THEN dbo.TitleCase('san antonio')
+ WHEN TRIM(city) = '' THEN 'Unknown'
+ WHEN city IS NULL THEN 'Unknown'
+ ELSE dbo.TitleCase(TRIM(city))
+ END AS city,
+
+ CASE
+ WHEN TRIM(UPPER(state_abbr)) IS NULL OR TRIM(UPPER(state_abbr)) = ''
+ THEN 'Unknown'
+
+ WHEN LEN(TRIM(UPPER(state_abbr))) != 2
+ THEN 'Unknown'
+
+ ELSE TRIM(UPPER(state_abbr))
+ END as state_abbr,
+
+ CASE
+ WHEN TRIM(state_full) IS NULL OR TRIM(state_full) = ''
+ THEN 'Unknown'
+
+ ELSE TRIM(state_full)
+ END AS state,
+
+ CASE
+ WHEN zip_code IS NULL
+ THEN 0
+
+ WHEN LEN(zip_code) != 5
+ THEN 0
+
+ WHEN TRY_CAST(zip_code AS INT) IS NULL
+ THEN 0
+
+ ELSE zip_code
+ END as zip_code,
+
+ CASE
+ WHEN
+ LOWER(TRIM(country))
+ IN ('u.s.a', 'us', 'usa', 'united states')
+ THEN 'United States'
+
+ ELSE 'Unknown'
+ END as country,
+
+ CASE
+ WHEN region IS NULL OR TRIM(region) = ''
+ THEN 'Unknown'
+
+ ELSE TRIM(region)
+ END as region
+FROM "RetailDB"."bronze"."stg_customers" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_profile.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_profile.sql
new file mode 100644
index 0000000..8b2922c
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_profile.sql
@@ -0,0 +1,83 @@
+-- ============================================================================
+-- Model: int_customer_profile
+--
+-- Purpose:
+-- Creates a standardized customer profile dataset by applying business
+-- rules to personal customer attributes. This model derives first and last
+-- names from the full name, normalizes gender values into consistent
+-- categories, and converts multiple source date formats into a reliable
+-- DATE data type. The resulting dataset serves as a trusted foundation for
+-- customer demographics, segmentation, personalization, and downstream
+-- dimensional models.
+--
+-- Maintainer: Ritik
+-- ============================================================================
+
+SELECT
+ customer_id,
+ TRIM(title) as title,
+
+ CASE
+ WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 2
+ THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)
+
+ WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 1
+ THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)
+
+ END AS first_name,
+
+ PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 1) AS last_name,
+
+ CASE
+ LOWER(TRIM(gender))
+
+ WHEN 'f' THEN 'Female'
+ WHEN 'female' THEN 'Female'
+ WHEN 'm' THEN 'Male'
+ WHEN 'male' THEN 'Male'
+ WHEN 'nb' THEN 'Non-Binary'
+ WHEN 'non-binary' THEN 'Non-Binary'
+ WHEN 'other' THEN 'Other'
+ WHEN 'prefer not to say' THEN 'Other'
+ ELSE 'Unknown'
+ END as gender,
+
+
+
+
+ CASE
+ WHEN TRIM(date_of_birth) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
+
+ WHEN TRIM(date_of_birth) LIKE '[A-Z][a-z][a-z] __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
+
+ WHEN TRIM(date_of_birth) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 110)
+
+ WHEN TRIM(date_of_birth) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 105)
+
+ WHEN TRIM(date_of_birth) LIKE '____-__-__'
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
+
+ WHEN TRIM(date_of_birth) LIKE '____/__/__'
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
+
+ WHEN TRIM(date_of_birth) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 101)
+
+ WHEN TRIM(date_of_birth) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(date_of_birth), 101)
+
+ END
+
+ AS date_of_birth
+
+FROM "RetailDB"."bronze"."stg_customers" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_segmentation.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_segmentation.sql
new file mode 100644
index 0000000..18c7ec4
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_segmentation.sql
@@ -0,0 +1,96 @@
+-- ============================================================================
+-- Model: int_customer_segmentation
+--
+-- Purpose:
+-- Creates a standardized customer segmentation dataset by applying business
+-- rules to customer profile and account attributes. This model normalizes
+-- customer segments, imputes missing annual income using segment-level
+-- median values, standardizes company names and account status values, and
+-- converts inconsistent account creation dates into a reliable DATE format.
+-- The resulting dataset serves as a trusted foundation for customer
+-- segmentation, loyalty analysis, marketing analytics, and dimensional
+-- modeling.
+--
+-- Maintainer: Ritik
+-- ============================================================================
+SELECT
+ customer_id,
+ CASE
+ WHEN customer_segment IS NULL OR customer_segment = ''
+ THEN 'Unknown'
+
+ ELSE customer_segment
+ END as customer_segment,
+
+ TRY_CAST(loyalty_points AS INT) as loyalty_points,
+
+ COALESCE(
+ annual_income_usd,
+ PERCENTILE_CONT(0.5)
+ WITHIN GROUP (ORDER BY annual_income_usd)
+ OVER (PARTITION BY customer_segment)
+ ) as annual_income_usd,
+
+ CASE
+ WHEN company IS NULL OR company = ''
+ THEN 'Unknown'
+
+ WHEN TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), '')) = ''
+ THEN 'Unknown'
+
+ ELSE TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), ''))
+ END as company,
+
+ CASE
+ WHEN
+ LOWER(TRIM(is_active))
+ IN ('1', 'active', 'true', 'y', 'yes')
+ THEN 'True'
+
+ WHEN
+ LOWER(TRIM(is_active))
+ IN ('0', 'inactive', 'false', 'n', 'no')
+ THEN 'False'
+
+ ELSE 'Unknown'
+ END AS is_active,
+
+
+
+
+ CASE
+ WHEN TRIM(account_created_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date))
+
+ WHEN TRIM(account_created_date) LIKE '[A-Z][a-z][a-z] __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date))
+
+ WHEN TRIM(account_created_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(account_created_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date), 110)
+
+ WHEN TRIM(account_created_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(account_created_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date), 105)
+
+ WHEN TRIM(account_created_date) LIKE '____-__-__'
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date))
+
+ WHEN TRIM(account_created_date) LIKE '____/__/__'
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date))
+
+ WHEN TRIM(account_created_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(account_created_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date), 101)
+
+ WHEN TRIM(account_created_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(account_created_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(account_created_date), 101)
+
+ END
+
+ as account_created_date
+
+FROM "RetailDB"."bronze"."stg_customers" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customers_contact.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customers_contact.sql
new file mode 100644
index 0000000..efb590a
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customers_contact.sql
@@ -0,0 +1,134 @@
+-- ============================================================================
+-- Model: int_customers_contact
+--
+-- Purpose:
+-- Creates a trusted customer contact dataset by validating, correcting, and
+-- standardizing customer communication attributes. This model repairs common
+-- email formatting issues and domain typographical errors, transforms phone
+-- numbers into a consistent business format, and normalizes preferred
+-- communication channels into standardized business categories. The resulting
+-- dataset provides reliable contact information for customer communication,
+-- marketing campaigns, CRM operations, and downstream analytical models.
+--
+-- Maintainer: Ritik
+-- ============================================================================
+SELECT
+ customer_id,
+
+ CASE
+ WHEN email IS NULL OR TRIM(email) = '' THEN 'Unknown'
+ WHEN
+ LOWER(TRIM(email))
+ NOT LIKE '%@%'
+ THEN 'Unknown'
+
+ WHEN PATINDEX('%@%@%',
+ LOWER(TRIM(email))
+) > 0
+ THEN
+ LEFT(
+ LOWER(TRIM(email))
+,CHARINDEX('@',
+ LOWER(TRIM(email))
+) - 1)
+ + '@' +
+ REPLACE(
+ SUBSTRING(
+
+ LOWER(TRIM(email))
+,
+ CHARINDEX('@',
+ LOWER(TRIM(email))
+) + 1,
+ LEN(email)),'@','')
+ ELSE
+ CONCAT(
+ LEFT(
+ LOWER(TRIM(email))
+,CHARINDEX('@',
+ LOWER(TRIM(email))
+) - 1), '@',
+ CASE
+ WHEN RIGHT(
+
+ LOWER(TRIM(email))
+,
+ LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'yahoocom' THEN 'yahoo.com'
+
+ WHEN RIGHT(
+
+ LOWER(TRIM(email))
+,
+ LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'iclod.com' THEN 'icloud.com'
+
+ WHEN RIGHT(
+
+ LOWER(TRIM(email))
+,
+ LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'outook.com' THEN 'outlook.com'
+
+ WHEN RIGHT(
+
+ LOWER(TRIM(email))
+,
+ LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'ahoo.com' THEN 'yahoo.com'
+
+ ELSE RIGHT(
+
+ LOWER(TRIM(email))
+,
+ LEN(TRIM(email)) - CHARINDEX('@', TRIM(email)))
+ END
+ )
+ END AS email,
+
+
+
+ CASE
+ WHEN TRIM(phone) LIKE '+1__________'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 3, 3), ') ',
+ SUBSTRING(TRIM(phone), 6, 3),'-',
+ SUBSTRING(TRIM(phone),9,4))
+
+ WHEN TRIM(phone) LIKE '__________'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1 ,3), ') ',
+ SUBSTRING(TRIM(phone), 4 ,3), '-',
+ SUBSTRING(TRIM(phone), 7, 4))
+
+ WHEN TRIM(phone) LIKE '___-___-____'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',
+ SUBSTRING(TRIM(phone), 5, 3), '-',
+ SUBSTRING(TRIM(phone), 9 ,4))
+
+ WHEN TRIM(phone) LIKE '___.___.____'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',
+ SUBSTRING(TRIM(phone), 5, 3), '-',
+ SUBSTRING(TRIM(phone),9, 4))
+
+ WHEN TRIM(phone) LIKE '(___) ___-____'
+ THEN CONCAT('+1 ', SUBSTRING(TRIM(phone), 1, 14))
+
+ WHEN TRIM(phone) IS NULL OR TRIM(phone) = ''
+ THEN 'Unknown'
+
+ ELSE 'Unknown'
+ END
+ as phone,
+
+ CASE
+ LOWER(TRIM(preferred_channel))
+
+ WHEN 'app' THEN 'Mobile App'
+ WHEN 'mobile app' THEN 'Mobile App'
+ WHEN 'mobile' THEN 'Mobile App'
+ WHEN 'in store' THEN 'In Store'
+ WHEN 'in-store' THEN 'In Store'
+ WHEN 'store' THEN 'In Store'
+ WHEN 'catalog' THEN 'Catalog'
+ WHEN 'online' THEN 'Website'
+ WHEN 'web' THEN 'Website'
+ WHEN 'phone' THEN 'Phone Call'
+ ELSE 'Unknown'
+ END as preferred_channel
+
+FROM "RetailDB"."bronze"."stg_customers" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_email.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_email.sql
new file mode 100644
index 0000000..62ebb31
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_email.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select email
+from "RetailDB"."bronze"."int_employee_contact"
+where email is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_employee_id.sql
new file mode 100644
index 0000000..eca372f
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_employee_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."int_employee_contact"
+where employee_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_phone.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_phone.sql
new file mode 100644
index 0000000..dde12bd
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_phone.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select phone
+from "RetailDB"."bronze"."int_employee_contact"
+where phone is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/unique_int_employee_contact_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/unique_int_employee_contact_employee_id.sql
new file mode 100644
index 0000000..d1ecf03
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/unique_int_employee_contact_employee_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_employee_contact"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f.sql
new file mode 100644
index 0000000..1b64bfa
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ job_title as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_employee_employment"
+ group by job_title
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Account Executive','Customer Advisor','Regional Manager','Sales Associate','Sales Consultant','Sales Manager','Sales Representative','Senior Sales Associate','Store Manager'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc.sql
new file mode 100644
index 0000000..b9b6a5c
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ department as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_employee_employment"
+ group by department
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Customer Service','Management','Operations','Sales','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2.sql
new file mode 100644
index 0000000..c8c8ed6
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ performance_rating as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_employee_employment"
+ group by performance_rating
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Excellent','Good','Average','Below Average','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_employment_is_active__True__False.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_employment_is_active__True__False.sql
new file mode 100644
index 0000000..a87fc9e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_employment_is_active__True__False.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ is_active as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_employee_employment"
+ group by is_active
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'True','False'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_email.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_email.sql
new file mode 100644
index 0000000..62ebb31
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_email.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select email
+from "RetailDB"."bronze"."int_employee_contact"
+where email is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_employee_id.sql
new file mode 100644
index 0000000..eca372f
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_employee_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."int_employee_contact"
+where employee_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_phone.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_phone.sql
new file mode 100644
index 0000000..dde12bd
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_phone.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select phone
+from "RetailDB"."bronze"."int_employee_contact"
+where phone is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_annual_salary_usd.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_annual_salary_usd.sql
new file mode 100644
index 0000000..339e852
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_annual_salary_usd.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select annual_salary_usd
+from "RetailDB"."bronze"."int_employee_employment"
+where annual_salary_usd is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_commission_rate_pct.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_commission_rate_pct.sql
new file mode 100644
index 0000000..03f4104
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_commission_rate_pct.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select commission_rate_pct
+from "RetailDB"."bronze"."int_employee_employment"
+where commission_rate_pct is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_department.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_department.sql
new file mode 100644
index 0000000..4cb1df0
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_department.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select department
+from "RetailDB"."bronze"."int_employee_employment"
+where department is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_employee_id.sql
new file mode 100644
index 0000000..ccd62f3
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_employee_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."int_employee_employment"
+where employee_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_is_active.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_is_active.sql
new file mode 100644
index 0000000..7cb684b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_is_active.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select is_active
+from "RetailDB"."bronze"."int_employee_employment"
+where is_active is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_job_title.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_job_title.sql
new file mode 100644
index 0000000..e939da8
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_job_title.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select job_title
+from "RetailDB"."bronze"."int_employee_employment"
+where job_title is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_city.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_city.sql
new file mode 100644
index 0000000..0121a49
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_city.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select store_city
+from "RetailDB"."bronze"."int_employee_employment"
+where store_city is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_name.sql
new file mode 100644
index 0000000..b240ba3
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select store_name
+from "RetailDB"."bronze"."int_employee_employment"
+where store_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_employee_id.sql
new file mode 100644
index 0000000..6134930
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_employee_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."int_employee_profile"
+where employee_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_first_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_first_name.sql
new file mode 100644
index 0000000..799d40d
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_first_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select first_name
+from "RetailDB"."bronze"."int_employee_profile"
+where first_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_hire_date.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_hire_date.sql
new file mode 100644
index 0000000..4b4e517
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_hire_date.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select hire_date
+from "RetailDB"."bronze"."int_employee_profile"
+where hire_date is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_last_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_last_name.sql
new file mode 100644
index 0000000..db7c9b0
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_last_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select last_name
+from "RetailDB"."bronze"."int_employee_profile"
+where last_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1.sql
new file mode 100644
index 0000000..bdb1e34
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select store_id as from_field
+ from "RetailDB"."bronze"."int_employee_employment"
+ where store_id is not null
+),
+
+parent as (
+ select store_id as to_field
+ from "RetailDB"."bronze"."int_store_profile"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_contact_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_contact_employee_id.sql
new file mode 100644
index 0000000..d1ecf03
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_contact_employee_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_employee_contact"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_employment_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_employment_employee_id.sql
new file mode 100644
index 0000000..e6acaa7
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_employment_employee_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_employee_employment"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_profile_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_profile_employee_id.sql
new file mode 100644
index 0000000..ec3b43e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_profile_employee_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_employee_profile"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_contact.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_contact.sql
new file mode 100644
index 0000000..a6c65b8
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_contact.sql
@@ -0,0 +1,69 @@
+SELECT
+ employee_id,
+
+ CASE
+ WHEN email IS NULL OR
+
+ LOWER(TRIM(email))
+ = '' THEN 'Unknown'
+
+ WHEN email NOT LIKE '%@%'
+ THEN 'Unknown'
+
+ WHEN PATINDEX('%@%@%',
+ LOWER(TRIM(email))
+) > 0
+ THEN
+ LEFT(
+ LOWER(TRIM(email))
+, CHARINDEX('@',
+ LOWER(TRIM(email))
+) -1)
+ + '@' + REPLACE(SUBSTRING(
+ LOWER(TRIM(email))
+, CHARINDEX('@',
+ LOWER(TRIM(email))
+) +1,
+ LEN(
+ LOWER(TRIM(email))
+)), '@' ,'')
+
+ ELSE
+ LOWER(TRIM(email))
+
+
+ END as email,
+
+
+
+ CASE
+ WHEN TRIM(phone) LIKE '+1__________'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 3, 3), ') ',
+ SUBSTRING(TRIM(phone), 6, 3),'-',
+ SUBSTRING(TRIM(phone),9,4))
+
+ WHEN TRIM(phone) LIKE '__________'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1 ,3), ') ',
+ SUBSTRING(TRIM(phone), 4 ,3), '-',
+ SUBSTRING(TRIM(phone), 7, 4))
+
+ WHEN TRIM(phone) LIKE '___-___-____'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',
+ SUBSTRING(TRIM(phone), 5, 3), '-',
+ SUBSTRING(TRIM(phone), 9 ,4))
+
+ WHEN TRIM(phone) LIKE '___.___.____'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',
+ SUBSTRING(TRIM(phone), 5, 3), '-',
+ SUBSTRING(TRIM(phone),9, 4))
+
+ WHEN TRIM(phone) LIKE '(___) ___-____'
+ THEN CONCAT('+1 ', SUBSTRING(TRIM(phone), 1, 14))
+
+ WHEN TRIM(phone) IS NULL OR TRIM(phone) = ''
+ THEN 'Unknown'
+
+ ELSE 'Unknown'
+ END
+ as phone
+FROM "RetailDB"."bronze"."stg_employees" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_employment.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_employment.sql
new file mode 100644
index 0000000..3e957ed
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_employment.sql
@@ -0,0 +1,81 @@
+SELECT
+ employee_id,
+
+ CASE
+ WHEN job_title IS NULL OR job_title = '' THEN 'Unknown'
+ ELSE TRIM(job_title)
+ END as job_title,
+
+ CASE
+ WHEN department IS NULL OR department = '' THEN 'Unknown'
+ ELSE TRIM(department)
+ END as department,
+
+ CASE
+ WHEN store_id < 0 OR TRY_CONVERT(INT, store_id) IS NULL THEN NULL
+ ELSE TRY_CONVERT(INT, store_id)
+ END as store_id,
+
+ CASE
+ WHEN store_name IS NULL OR store_name = '' THEN 'Unknown'
+ ELSE TRIM(store_name)
+ END as store_name,
+
+ CASE
+ WHEN store_city IS NULL OR LEN(store_city) < 4 OR store_city = '' THEN 'Unknown'
+ ELSE TRIM(store_city)
+ END store_city,
+
+ CASE
+ WHEN annual_salary_usd IS NULL
+ OR TRY_CONVERT(DECIMAL(18,2), annual_salary_usd) IS NULL
+ OR TRY_CONVERT(DECIMAL(18,2), annual_salary_usd) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(18,2), annual_salary_usd)
+ END AS annual_salary_usd,
+
+ CASE
+ WHEN commission_rate_pct IS NULL
+ OR TRY_CONVERT(DECIMAL(4,2), commission_rate_pct) IS NULL
+ OR TRY_CONVERT(DECIMAL(4,2), commission_rate_pct) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(4,2), commission_rate_pct)
+ END AS commission_rate_pct,
+
+ CASE
+ WHEN
+ LOWER(TRIM(performance_rating))
+ IN ('excellent', 'a', '5') THEN 'Excellent'
+ WHEN
+ LOWER(TRIM(performance_rating))
+ IN ('good', 'b', '4') THEN 'Good'
+ WHEN
+ LOWER(TRIM(performance_rating))
+ IN ('average', 'c', '3') THEN 'Average'
+ WHEN
+ LOWER(TRIM(performance_rating))
+ IN ('below average', 'd', '2') THEN 'Below Average'
+ WHEN performance_rating IS NULL OR TRIM(performance_rating) = '' THEN 'Unknown'
+ ELSE 'Unknown'
+ END AS performance_rating,
+
+ CASE
+ WHEN years_employed IS NULL
+ OR TRY_CONVERT(DECIMAL(4,2), years_employed) IS NULL
+ OR TRY_CONVERT(DECIMAL(4,2), years_employed) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(4,2), TRY_CONVERT(DECIMAL(4,2), years_employed))
+ END years_employed,
+
+ CASE
+ WHEN TRY_CONVERT(INT ,manager_id) IS NULL THEN NULL
+ ELSE manager_id
+ END as manager_id,
+
+ CASE
+ WHEN
+ LOWER(TRIM(is_active))
+ IN ('active', 'y', 'yes', '1', 'true') THEN 'True'
+ WHEN
+ LOWER(TRIM(is_active))
+ IN ('terminated', 'n', 'no', '0', 'false') THEN 'False'
+ ELSE NULL
+ END AS is_active
+FROM "RetailDB"."bronze"."stg_employees" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_profile.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_profile.sql
new file mode 100644
index 0000000..26712b6
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_profile.sql
@@ -0,0 +1,47 @@
+SELECT
+ employee_id,
+
+ CASE
+ WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ','')) = 1 THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)
+ END as first_name,
+
+ PARSENAME(REPLACE(TRIM(full_name),' ','.'),1) as last_name,
+
+
+
+
+ CASE
+ WHEN TRIM(hire_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(hire_date))
+
+ WHEN TRIM(hire_date) LIKE '[A-Z][a-z][a-z] __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(hire_date))
+
+ WHEN TRIM(hire_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(hire_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(hire_date), 110)
+
+ WHEN TRIM(hire_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(hire_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(hire_date), 105)
+
+ WHEN TRIM(hire_date) LIKE '____-__-__'
+ THEN TRY_CONVERT(DATE, TRIM(hire_date))
+
+ WHEN TRIM(hire_date) LIKE '____/__/__'
+ THEN TRY_CONVERT(DATE, TRIM(hire_date))
+
+ WHEN TRIM(hire_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(hire_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(hire_date), 101)
+
+ WHEN TRIM(hire_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(hire_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(hire_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(hire_date), 101)
+
+ END
+
+ as hire_date
+FROM "RetailDB"."bronze"."stg_employees" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438.sql
new file mode 100644
index 0000000..0e08cb7
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ category as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_inventory_product"
+ group by category
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Electronics','Clothing','Kitchen','Office','Sports','Health','Beauty','Footwear','Toys','Bags','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_category.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_category.sql
new file mode 100644
index 0000000..ea5e4ad
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_category.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select category
+from "RetailDB"."bronze"."int_inventory_product"
+where category is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_inventory_snapshot_sk.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..ced2a87
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_inventory_snapshot_sk.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select inventory_snapshot_sk
+from "RetailDB"."bronze"."int_inventory_product"
+where inventory_snapshot_sk is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_id.sql
new file mode 100644
index 0000000..87895e5
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_inventory_product"
+where product_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_name.sql
new file mode 100644
index 0000000..d572485
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_name
+from "RetailDB"."bronze"."int_inventory_product"
+where product_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_sku.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_sku.sql
new file mode 100644
index 0000000..ffede74
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_sku.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select sku
+from "RetailDB"."bronze"."int_inventory_product"
+where sku is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_snapshot_date.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_snapshot_date.sql
new file mode 100644
index 0000000..d5cbe59
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_snapshot_date.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select snapshot_date
+from "RetailDB"."bronze"."int_inventory_product"
+where snapshot_date is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_stock_inventory_snapshot_sk.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_stock_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..468152c
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_stock_inventory_snapshot_sk.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select inventory_snapshot_sk
+from "RetailDB"."bronze"."int_inventory_stock"
+where inventory_snapshot_sk is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_inventory_snapshot_sk.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..5aa1f32
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_inventory_snapshot_sk.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select inventory_snapshot_sk
+from "RetailDB"."bronze"."int_inventory_valuation"
+where inventory_snapshot_sk is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_warehouse_location.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_warehouse_location.sql
new file mode 100644
index 0000000..686d657
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_warehouse_location.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select warehouse_location
+from "RetailDB"."bronze"."int_inventory_valuation"
+where warehouse_location is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d.sql
new file mode 100644
index 0000000..5d1b92a
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select product_id as from_field
+ from "RetailDB"."bronze"."int_inventory_product"
+ where product_id is not null
+),
+
+parent as (
+ select product_id as to_field
+ from "RetailDB"."bronze"."int_product_attributes"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_product_inventory_snapshot_sk.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_product_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..82bc624
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_product_inventory_snapshot_sk.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ inventory_snapshot_sk as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_inventory_product"
+where inventory_snapshot_sk is not null
+group by inventory_snapshot_sk
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_stock_inventory_snapshot_sk.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_stock_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..7efc45f
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_stock_inventory_snapshot_sk.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ inventory_snapshot_sk as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_inventory_stock"
+where inventory_snapshot_sk is not null
+group by inventory_snapshot_sk
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_valuation_inventory_snapshot_sk.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_valuation_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..7ac7098
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_valuation_inventory_snapshot_sk.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ inventory_snapshot_sk as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_inventory_valuation"
+where inventory_snapshot_sk is not null
+group by inventory_snapshot_sk
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_product.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_product.sql
new file mode 100644
index 0000000..633e9d8
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_product.sql
@@ -0,0 +1,90 @@
+SELECT
+ inventory_snapshot_sk,
+
+
+
+
+ CASE
+ WHEN TRIM(snapshot_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date))
+
+ WHEN TRIM(snapshot_date) LIKE '[A-Z][a-z][a-z] __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date))
+
+ WHEN TRIM(snapshot_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(snapshot_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 110)
+
+ WHEN TRIM(snapshot_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(snapshot_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 105)
+
+ WHEN TRIM(snapshot_date) LIKE '____-__-__'
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date))
+
+ WHEN TRIM(snapshot_date) LIKE '____/__/__'
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date))
+
+ WHEN TRIM(snapshot_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(snapshot_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 101)
+
+ WHEN TRIM(snapshot_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(snapshot_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(snapshot_date), 101)
+
+ END
+
+ as snapshot_date,
+
+ CASE
+ WHEN TRY_CONVERT(INT, product_id) IS NULL THEN NULL
+ ELSE TRY_CONVERT(INT, product_id)
+ END as product_id,
+
+ CASE
+ WHEN product_name IS NULL OR product_name = '' THEN 'Unknown'
+ ELSE TRIM(product_name)
+ END as product_name,
+
+ CASE
+ WHEN sku IS NULL OR sku = '' THEN 'Unknown'
+ ELSE TRIM(sku)
+ END as sku,
+
+ CASE
+ WHEN
+ LOWER(TRIM(category))
+ = 'electronics' THEN 'Electronics'
+ WHEN
+ LOWER(TRIM(category))
+ = 'clothing' THEN 'Clothing'
+ WHEN
+ LOWER(TRIM(category))
+ = 'kitchen' THEN 'Kitchen'
+ WHEN
+ LOWER(TRIM(category))
+ = 'office' THEN 'Office'
+ WHEN
+ LOWER(TRIM(category))
+ = 'sports' THEN 'Sports'
+ WHEN
+ LOWER(TRIM(category))
+ = 'health' THEN 'Health'
+ WHEN
+ LOWER(TRIM(category))
+ = 'beauty' THEN 'Beauty'
+ WHEN
+ LOWER(TRIM(category))
+ = 'footwear' THEN 'Footwear'
+ WHEN
+ LOWER(TRIM(category))
+ = 'toys' THEN 'Toys'
+ WHEN
+ LOWER(TRIM(category))
+ = 'bags' THEN 'Bags'
+ ELSE 'Unknown'
+ END AS category
+FROM "RetailDB"."bronze"."stg_inventory" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_stock.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_stock.sql
new file mode 100644
index 0000000..cf6ad01
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_stock.sql
@@ -0,0 +1,28 @@
+WITH inventory as
+(
+SELECT
+ inventory_snapshot_sk,
+
+ CASE
+ WHEN TRY_CONVERT(INT, stock_on_hand) IS NULL OR TRY_CONVERT(INT, stock_on_hand) < 0 THEN NULL
+ ELSE TRY_CONVERT(INT, stock_on_hand)
+ END AS stock_on_hand,
+
+ CASE
+ WHEN TRY_CONVERT(INT, stock_reserved) < 0 OR TRY_CONVERT(INT, stock_reserved) IS NULL THEN NULL
+ ELSE TRY_CONVERT(INT, stock_reserved)
+ END as stock_reserved,
+
+ CASE
+ WHEN TRY_CONVERT(INT, reorder_level) IS NULL OR TRY_CONVERT(INT, reorder_level) < 0 THEN NULL
+ ELSE TRY_CONVERT(INT, reorder_level)
+ END as reorder_level
+FROM "RetailDB"."bronze"."stg_inventory"
+)
+SELECT
+ inventory_snapshot_sk,
+ stock_on_hand,
+ stock_reserved,
+ stock_on_hand - stock_reserved AS stock_available,
+ reorder_level
+FROM inventory;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_valuation.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_valuation.sql
new file mode 100644
index 0000000..4fcd862
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_valuation.sql
@@ -0,0 +1,39 @@
+WITH inventory_valuation AS
+(
+ SELECT
+ inventory_snapshot_sk,
+ CASE
+ WHEN unit_cost LIKE '$%' THEN TRY_CONVERT(DECIMAL(10, 2), SUBSTRING(unit_cost, 2, LEN(unit_cost)))
+ ELSE TRY_CONVERT(DECIMAL(10, 2), unit_cost)
+ END as unit_cost,
+
+ CASE
+ WHEN TRY_CONVERT(DECIMAL(10,2), unit_price) IS NULL THEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(unit_price, ',', ''), '$', ''))
+ ELSE TRY_CONVERT(DECIMAL(10, 2), unit_price)
+ END as unit_price,
+
+ CASE
+ WHEN TRY_CONVERT(INT, stock_on_hand) IS NULL OR stock_on_hand < 0 THEN NULL
+ ELSE TRY_CONVERT(INT, stock_on_hand)
+ END AS stock_on_hand,
+
+ CASE
+ WHEN warehouse_location IS NULL OR warehouse_location = '' THEN 'Unknown'
+ ELSE UPPER(warehouse_location)
+ END as warehouse_location,
+
+ CASE
+ WHEN store_id IS NULL OR store_id = '' THEN NULL
+ ELSE TRY_CONVERT(INT, store_id)
+ END as store_id
+
+ FROM "RetailDB"."bronze"."stg_inventory"
+)
+SELECT
+ inventory_snapshot_sk,
+ unit_cost,
+ unit_price,
+ unit_price * stock_on_hand as inventory_value,
+ warehouse_location,
+ store_id
+FROM inventory_valuation;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf.sql
new file mode 100644
index 0000000..37ec3a9
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ department as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_product_attributes"
+ group by department
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Apparel & Sports','Books & Office','Fitness & Outdoors','Health & Beauty','Home & Garden','Technology','Toys & Games'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8.sql
new file mode 100644
index 0000000..1ee63cd
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ category as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_product_attributes"
+ group by category
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Bags','Beauty','Clothing','Electronics','Footwear','Health','Kitchen','Office','Sports','Toys'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564.sql
new file mode 100644
index 0000000..dd4ffed
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ is_available as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_product_inventory"
+ group by is_available
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Available','Not Available','Discontinued','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_brand.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_brand.sql
new file mode 100644
index 0000000..2aea810
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_brand.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select brand
+from "RetailDB"."bronze"."int_product_attributes"
+where brand is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_category.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_category.sql
new file mode 100644
index 0000000..a440309
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_category.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select category
+from "RetailDB"."bronze"."int_product_attributes"
+where category is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_department.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_department.sql
new file mode 100644
index 0000000..7e5e767
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_department.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select department
+from "RetailDB"."bronze"."int_product_attributes"
+where department is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_launched_date.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_launched_date.sql
new file mode 100644
index 0000000..04acfe4
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_launched_date.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select launched_date
+from "RetailDB"."bronze"."int_product_attributes"
+where launched_date is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_id.sql
new file mode 100644
index 0000000..3baf741
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_product_attributes"
+where product_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_name.sql
new file mode 100644
index 0000000..6704397
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_name
+from "RetailDB"."bronze"."int_product_attributes"
+where product_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sku.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sku.sql
new file mode 100644
index 0000000..a740f0e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sku.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select sku
+from "RetailDB"."bronze"."int_product_attributes"
+where sku is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sub_category.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sub_category.sql
new file mode 100644
index 0000000..a0dc30c
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sub_category.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select sub_category
+from "RetailDB"."bronze"."int_product_attributes"
+where sub_category is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_inventory_product_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_inventory_product_id.sql
new file mode 100644
index 0000000..8cf8ec5
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_inventory_product_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_product_inventory"
+where product_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_pricing_product_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_pricing_product_id.sql
new file mode 100644
index 0000000..01f5797
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_pricing_product_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_product_pricing"
+where product_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_supplier_product_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_supplier_product_id.sql
new file mode 100644
index 0000000..574a929
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_supplier_product_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_product_supplier"
+where product_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_id.sql
new file mode 100644
index 0000000..bacb036
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_attributes"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_name.sql
new file mode 100644
index 0000000..d71143e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_name.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ product_name as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_attributes"
+where product_name is not null
+group by product_name
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_sku.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_sku.sql
new file mode 100644
index 0000000..657965b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_sku.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ sku as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_attributes"
+where sku is not null
+group by sku
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_inventory_product_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_inventory_product_id.sql
new file mode 100644
index 0000000..99f6095
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_inventory_product_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_inventory"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_pricing_product_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_pricing_product_id.sql
new file mode 100644
index 0000000..06124f4
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_pricing_product_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_pricing"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_supplier_product_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_supplier_product_id.sql
new file mode 100644
index 0000000..b636747
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_supplier_product_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_supplier"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_attributes.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_attributes.sql
new file mode 100644
index 0000000..abfef17
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_attributes.sql
@@ -0,0 +1,81 @@
+SELECT
+ CASE
+ WHEN TRY_CONVERT(INT, product_id) IS NULL THEN NULL
+ ELSE TRY_CONVERT(INT, product_id)
+ END as product_id,
+
+ CASE
+ WHEN TRIM(sku) = '' OR sku IS NULL OR LEN(TRIM(sku)) != 13 THEN 'Unknown'
+ ELSE TRIM(UPPER(sku))
+ END as sku,
+
+ CASE
+ WHEN TRIM(product_name) = '' OR product_name IS NULL THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(product_name))
+ END as product_name,
+
+ CASE
+ WHEN TRIM(brand) = '' OR brand IS NULL THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(brand))
+ END as brand,
+
+ CASE
+ WHEN category IS NULL OR TRIM(category) = '' THEN 'Unknown'
+ ELSE TRIM(dbo.titleCase(category))
+ END AS category,
+
+ CASE
+ WHEN sub_category IS NULL OR TRIM(sub_category) = '' THEN 'Unknown'
+ ELSE dbo.TitleCase(TRIM(sub_category))
+ END AS sub_category,
+
+ CASE
+ WHEN department IS NULL OR TRIM(department) = '' THEN 'Unknown'
+ ELSE dbo.TitleCase(TRIM(department))
+ END AS department,
+
+
+
+
+ CASE
+ WHEN TRIM(launched_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(launched_date))
+
+ WHEN TRIM(launched_date) LIKE '[A-Z][a-z][a-z] __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(launched_date))
+
+ WHEN TRIM(launched_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(launched_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(launched_date), 110)
+
+ WHEN TRIM(launched_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(launched_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(launched_date), 105)
+
+ WHEN TRIM(launched_date) LIKE '____-__-__'
+ THEN TRY_CONVERT(DATE, TRIM(launched_date))
+
+ WHEN TRIM(launched_date) LIKE '____/__/__'
+ THEN TRY_CONVERT(DATE, TRIM(launched_date))
+
+ WHEN TRIM(launched_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(launched_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(launched_date), 101)
+
+ WHEN TRIM(launched_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(launched_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(launched_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(launched_date), 101)
+
+ END
+
+ as launched_date,
+
+ CASE
+ WHEN product_url IS NULL OR TRIM(product_url) = '' OR product_url NOT LIKE 'https://%' THEN 'Unknown'
+ ELSE REPLACE(REPLACE(
+ LOWER(TRIM(product_url))
+, CHAR(13), ''),CHAR(10), '')
+ END as product_url
+FROM "RetailDB"."bronze"."stg_products" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_inventory.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_inventory.sql
new file mode 100644
index 0000000..0c41ab0
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_inventory.sql
@@ -0,0 +1,26 @@
+SELECT
+ product_id,
+
+ CASE
+ WHEN
+ LOWER(TRIM(is_available))
+ IN ('a','y','ye','1','t','tr','in','i') THEN 'Available'
+ WHEN
+ LOWER(TRIM(is_available))
+ IN ('n','no','o','ou') THEN 'Not Available'
+ WHEN
+ LOWER(TRIM(is_available))
+ IN ('d','di') THEN 'Discontinued'
+ ELSE 'Unknown'
+ END AS is_available,
+
+ CASE
+ WHEN stock_quantity IS NULL OR TRY_CONVERT(INT , stock_quantity) IS NULL OR TRY_CONVERT(INT , stock_quantity) < 0 THEN NULL
+ ELSE TRY_CONVERT(INT , stock_quantity)
+ END AS stock_quantity,
+
+ CASE
+ WHEN reorder_level IS NULL OR TRY_CONVERT(INT , reorder_level) IS NULL OR TRY_CONVERT(INT , reorder_level) < 0 THEN NULL
+ ELSE TRY_CONVERT(INT , reorder_level)
+ END AS reorder_level
+FROM "RetailDB"."bronze"."stg_products" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_pricing.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_pricing.sql
new file mode 100644
index 0000000..8597222
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_pricing.sql
@@ -0,0 +1,21 @@
+SELECT
+ product_id,
+
+ CASE
+ WHEN base_price_usd IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', '')) IS NULL THEN NULL
+ WHEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', '')) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', ''))
+ END AS base_price_usd,
+
+ CASE
+ WHEN cost_price_usd IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', '')) IS NULL THEN NULL
+ WHEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', '')) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', ''))
+ END AS cost_price_usd,
+
+ CASE
+ WHEN gross_margin_pct IS NULL OR TRY_CONVERT(DECIMAL(5,1), gross_margin_pct) IS NULL THEN NULL
+ WHEN TRY_CONVERT(DECIMAL(5,1), gross_margin_pct) > 100 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(5,1), gross_margin_pct)
+ END AS gross_margin_pct
+FROM "RetailDB"."bronze"."stg_products" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_supplier.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_supplier.sql
new file mode 100644
index 0000000..cac4661
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_supplier.sql
@@ -0,0 +1,34 @@
+SELECT
+ product_id,
+
+ CASE
+ WHEN supplier_name IS NULL OR TRIM(supplier_name) = '' THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(supplier_name))
+ END as supplier_name,
+
+ CASE
+ WHEN supplier_country IS NULL OR TRIM(supplier_country) = '' THEN 'Unknown'
+ WHEN supplier_country = 'USA' THEN 'United States'
+ ELSE TRIM(dbo.TitleCase(supplier_country))
+ END as supplier_country,
+
+ CASE
+ WHEN TRY_CONVERT(DECIMAL(5,2), weight_kg) IS NULL OR TRY_CONVERT(DECIMAL(5,2), weight_kg) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(5,2), weight_kg)
+ END as weight_kg,
+
+ CASE
+ WHEN TRY_CONVERT(INT, warranty_years) IS NULL OR TRY_CONVERT(INT, warranty_years) < 0 OR TRY_CONVERT(INT, warranty_years) > 20 THEN NULL
+ ELSE TRY_CONVERT(INT, warranty_years)
+ END as warranty_years,
+
+ CASE
+ WHEN TRY_CONVERT(DECIMAL(3,1), rating_avg) IS NULL OR TRY_CONVERT(DECIMAL(3,1), rating_avg) < 0 OR TRY_CONVERT(DECIMAL(3,1), rating_avg) > 5 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(3,1), rating_avg)
+ END as rating_avg,
+
+ CASE
+ WHEN TRY_CONVERT(INT, review_count) IS NULL OR TRY_CONVERT(INT, review_count) < 0 THEN NULL
+ ELSE TRY_CONVERT(INT, review_count)
+ END as review_count
+FROM "RetailDB"."bronze"."stg_products" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d.sql
new file mode 100644
index 0000000..e5baf37
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ return_channel as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_return_processing"
+ group by return_channel
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Mobile App','In Store','Online','Phone Call','Catalog','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b.sql
new file mode 100644
index 0000000..89590a2
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ restocked as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_return_processing"
+ group by restocked
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Yes','No','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d.sql
new file mode 100644
index 0000000..aa549c5
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ refund_method as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_return_refund"
+ group by refund_method
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Cash','Original Payment','Store Credit'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_restocked.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_restocked.sql
new file mode 100644
index 0000000..956d623
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_restocked.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select restocked
+from "RetailDB"."bronze"."int_return_processing"
+where restocked is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_channel.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_channel.sql
new file mode 100644
index 0000000..c09d9c4
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_channel.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select return_channel
+from "RetailDB"."bronze"."int_return_processing"
+where return_channel is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_id.sql
new file mode 100644
index 0000000..1f42138
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select return_id
+from "RetailDB"."bronze"."int_return_processing"
+where return_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_reason.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_reason.sql
new file mode 100644
index 0000000..32aac6d
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_reason.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select return_reason
+from "RetailDB"."bronze"."int_return_processing"
+where return_reason is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_status.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_status.sql
new file mode 100644
index 0000000..835d224
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_status.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select return_status
+from "RetailDB"."bronze"."int_return_processing"
+where return_status is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_refund_method.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_refund_method.sql
new file mode 100644
index 0000000..66e0612
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_refund_method.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select refund_method
+from "RetailDB"."bronze"."int_return_refund"
+where refund_method is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_return_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_return_id.sql
new file mode 100644
index 0000000..fd3be0b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_return_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select return_id
+from "RetailDB"."bronze"."int_return_refund"
+where return_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_customer_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_customer_name.sql
new file mode 100644
index 0000000..1a4ccb9
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_customer_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select customer_name
+from "RetailDB"."bronze"."int_return_transaction"
+where customer_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_product_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_product_name.sql
new file mode 100644
index 0000000..b139585
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_product_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_name
+from "RetailDB"."bronze"."int_return_transaction"
+where product_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_date.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_date.sql
new file mode 100644
index 0000000..d35e95e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_date.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select return_date
+from "RetailDB"."bronze"."int_return_transaction"
+where return_date is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_id.sql
new file mode 100644
index 0000000..88deea7
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select return_id
+from "RetailDB"."bronze"."int_return_transaction"
+where return_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_processing_return_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_processing_return_id.sql
new file mode 100644
index 0000000..d71319b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_processing_return_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ return_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_return_processing"
+where return_id is not null
+group by return_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_refund_return_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_refund_return_id.sql
new file mode 100644
index 0000000..4de6356
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_refund_return_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ return_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_return_refund"
+where return_id is not null
+group by return_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_transaction_return_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_transaction_return_id.sql
new file mode 100644
index 0000000..909fb23
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_transaction_return_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ return_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_return_transaction"
+where return_id is not null
+group by return_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_processing.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_processing.sql
new file mode 100644
index 0000000..206be85
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_processing.sql
@@ -0,0 +1,72 @@
+SELECT
+ return_id,
+
+ CASE
+ WHEN return_reason IS NULL OR TRIM(return_reason) = ''
+ THEN 'Unknown'
+
+ ELSE TRIM(dbo.TitleCase(return_reason))
+ END as return_reason,
+
+ CASE
+ WHEN
+ LOWER(TRIM(return_channel))
+ IN ('app', 'mobile app', 'mobile')
+ THEN 'Mobile App'
+
+ WHEN
+ LOWER(TRIM(return_channel))
+ IN ('in store', 'in-store', 'store')
+ THEN 'In Store'
+
+ WHEN
+ LOWER(TRIM(return_channel))
+ IN ('online', 'web')
+ THEN 'Online'
+
+ WHEN
+ LOWER(TRIM(return_channel))
+ = 'phone'
+ THEN 'Phone Call'
+
+ WHEN
+ LOWER(TRIM(return_channel))
+ = 'catalog'
+ THEN 'Catalog'
+
+ ELSE 'Unknown'
+ END AS return_channel,
+
+ CASE
+ WHEN
+ LOWER(TRIM(restocked))
+ IN ('yes', 'y', '1')
+ THEN 'Yes'
+
+ WHEN
+ LOWER(TRIM(restocked))
+ IN ('no', 'n', '0')
+ THEN 'No'
+
+ ELSE 'Unknown'
+ END AS restocked,
+
+ CASE
+ WHEN return_status IS NULL
+ THEN 'Unknown'
+
+ ELSE TRIM(dbo.TitleCase(return_status))
+ END as return_status,
+
+ CASE
+ WHEN handled_by_emp_id IS NULL OR TRY_CONVERT(INT, handled_by_emp_id) IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, handled_by_emp_id)
+ END as handled_by_emp_id,
+
+ CASE
+ WHEN notes IS NULL OR LEN(TRIM(notes)) < 3 OR TRIM(notes) = '' THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(REPLACE(REPLACE(notes, CHAR(10), ''), CHAR(13), '')))
+ END as notes
+FROM "RetailDB"."bronze"."stg_returns" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_refund.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_refund.sql
new file mode 100644
index 0000000..29b6e9a
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_refund.sql
@@ -0,0 +1,14 @@
+SELECT
+ return_id,
+
+ CASE
+ WHEN TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', '')) IS NULL THEN NULL
+ WHEN refund_amount IS NULL OR TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', '')) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', ''))
+ END as refund_amount,
+
+ CASE
+ WHEN refund_method IS NULL OR TRIM(refund_method) = '' THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(refund_method))
+ END as refund_method
+FROM "RetailDB"."bronze"."stg_returns" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_transaction.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_transaction.sql
new file mode 100644
index 0000000..40a88f4
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_transaction.sql
@@ -0,0 +1,101 @@
+SELECT
+ CASE
+ WHEN TRY_CONVERT(INT, return_id) < 1 OR TRY_CONVERT(INT, return_id) IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, return_id)
+ END as return_id,
+
+ CASE
+ WHEN original_txn_id IS NULL
+ THEN NULL
+
+ WHEN UPPER(TRIM(original_txn_id)) NOT LIKE 'TXN-%'
+ THEN NULL
+
+ WHEN LEN(UPPER(TRIM(original_txn_id))) < 10
+ THEN NULL
+
+ ELSE UPPER(TRIM(original_txn_id))
+ END as original_txn_id,
+
+ CASE
+ WHEN original_order_id IS NULL OR TRY_CONVERT(INT, original_order_id) < 1 OR TRY_CONVERT(INT, original_order_id) IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, original_order_id)
+ END as original_order_id,
+
+ CASE
+ WHEN customer_id IS NULL OR TRY_CONVERT(INT, customer_id) IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, customer_id)
+ END as customer_id,
+
+ CASE
+ WHEN customer_name IS NULL OR TRIM(customer_name) = ''
+ THEN 'Unknown'
+
+ ELSE dbo.TitleCase(TRIM(customer_name))
+ END as customer_name,
+
+ CASE
+ WHEN product_id IS NULL OR TRY_CONVERT(INT, product_id) IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, product_id)
+ END as product_id,
+
+ CASE
+ WHEN product_name IS NULL OR TRIM(product_name) = ''
+ THEN 'Unknown'
+
+ ELSE dbo.TitleCase(TRIM(product_name))
+ END as product_name,
+
+ CASE
+ WHEN quantity_returned IS NULL OR TRY_CONVERT(INT, quantity_returned) IS NULL OR TRY_CONVERT(INT, quantity_returned) < 1
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, quantity_returned)
+ END as quantity_returned,
+
+
+
+
+ CASE
+ WHEN TRIM(return_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(return_date))
+
+ WHEN TRIM(return_date) LIKE '[A-Z][a-z][a-z] __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(return_date))
+
+ WHEN TRIM(return_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(return_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(return_date), 110)
+
+ WHEN TRIM(return_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(return_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(return_date), 105)
+
+ WHEN TRIM(return_date) LIKE '____-__-__'
+ THEN TRY_CONVERT(DATE, TRIM(return_date))
+
+ WHEN TRIM(return_date) LIKE '____/__/__'
+ THEN TRY_CONVERT(DATE, TRIM(return_date))
+
+ WHEN TRIM(return_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(return_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(return_date), 101)
+
+ WHEN TRIM(return_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(return_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(return_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(return_date), 101)
+
+ END
+
+ as return_date
+FROM "RetailDB"."bronze"."stg_returns" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be.sql
new file mode 100644
index 0000000..d582ba4
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ review_channel as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_review_feedback"
+ group by review_channel
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Mobile App','In Store','Online','Phone Call','Catalog','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_rating_rating__1__2__3__4__5.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_rating_rating__1__2__3__4__5.sql
new file mode 100644
index 0000000..1254650
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_rating_rating__1__2__3__4__5.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ rating as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_review_rating"
+ group by rating
+
+)
+
+select *
+from all_values
+where value_field not in (
+ '1','2','3','4','5'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_helpful_votes.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_helpful_votes.sql
new file mode 100644
index 0000000..2e15aa6
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_helpful_votes.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select helpful_votes
+from "RetailDB"."bronze"."int_review_feedback"
+where helpful_votes is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_channel.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_channel.sql
new file mode 100644
index 0000000..860d325
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_channel.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select review_channel
+from "RetailDB"."bronze"."int_review_feedback"
+where review_channel is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_id.sql
new file mode 100644
index 0000000..465872c
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select review_id
+from "RetailDB"."bronze"."int_review_feedback"
+where review_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_title.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_title.sql
new file mode 100644
index 0000000..f44eebd
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_title.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select review_title
+from "RetailDB"."bronze"."int_review_feedback"
+where review_title is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_rating_review_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_rating_review_id.sql
new file mode 100644
index 0000000..ea3dd0a
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_rating_review_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select review_id
+from "RetailDB"."bronze"."int_review_rating"
+where review_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_customer_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_customer_id.sql
new file mode 100644
index 0000000..6b5a810
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_customer_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select customer_id
+from "RetailDB"."bronze"."int_review_transaction"
+where customer_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_product_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_product_id.sql
new file mode 100644
index 0000000..7132100
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_product_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_review_transaction"
+where product_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_date.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_date.sql
new file mode 100644
index 0000000..b4f8f40
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_date.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select review_date
+from "RetailDB"."bronze"."int_review_transaction"
+where review_date is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_id.sql
new file mode 100644
index 0000000..a9af26c
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select review_id
+from "RetailDB"."bronze"."int_review_transaction"
+where review_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_txn_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_txn_id.sql
new file mode 100644
index 0000000..5024e9c
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_txn_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select txn_id
+from "RetailDB"."bronze"."int_review_transaction"
+where txn_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_ratin_43fc6b1ac0b6975ff8a259293f5028c1.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_ratin_43fc6b1ac0b6975ff8a259293f5028c1.sql
new file mode 100644
index 0000000..47bf244
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_ratin_43fc6b1ac0b6975ff8a259293f5028c1.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select review_id as from_field
+ from "RetailDB"."bronze"."int_review_rating"
+ where review_id is not null
+),
+
+parent as (
+ select review_id as to_field
+ from "RetailDB"."bronze"."int_review_feedback"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_trans_1e4130829264fa06eeb887102bf24af0.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_trans_1e4130829264fa06eeb887102bf24af0.sql
new file mode 100644
index 0000000..c6bf1cf
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_trans_1e4130829264fa06eeb887102bf24af0.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select review_id as from_field
+ from "RetailDB"."bronze"."int_review_transaction"
+ where review_id is not null
+),
+
+parent as (
+ select review_id as to_field
+ from "RetailDB"."bronze"."int_review_feedback"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_feedback_review_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_feedback_review_id.sql
new file mode 100644
index 0000000..233f117
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_feedback_review_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ review_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_review_feedback"
+where review_id is not null
+group by review_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_rating_review_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_rating_review_id.sql
new file mode 100644
index 0000000..b820a81
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_rating_review_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ review_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_review_rating"
+where review_id is not null
+group by review_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_transaction_review_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_transaction_review_id.sql
new file mode 100644
index 0000000..1801962
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_transaction_review_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ review_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_review_transaction"
+where review_id is not null
+group by review_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_feedback.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_feedback.sql
new file mode 100644
index 0000000..55c0677
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_feedback.sql
@@ -0,0 +1,41 @@
+SELECT
+ review_id,
+
+ helpful_votes,
+
+ CASE
+ WHEN
+ LOWER(TRIM(review_channel))
+ IN ('app', 'mobile app', 'mobile')
+ THEN 'Mobile App'
+
+ WHEN
+ LOWER(TRIM(review_channel))
+ IN ('in store', 'in-store', 'store')
+ THEN 'In Store'
+
+ WHEN
+ LOWER(TRIM(review_channel))
+ IN ('online', 'web')
+ THEN 'Online'
+
+ WHEN
+ LOWER(TRIM(review_channel))
+ = 'phone'
+ THEN 'Phone Call'
+
+ WHEN
+ LOWER(TRIM(review_channel))
+ = 'catalog'
+ THEN 'Catalog'
+
+ ELSE 'Unknown'
+ END AS review_channel,
+
+ CASE
+ WHEN REPLACE(REPLACE(TRIM(dbo.TitleCase(review_title)), CHAR(13), ''), CHAR(10), '') = ''
+ THEN 'Unknown'
+
+ ELSE REPLACE(REPLACE(TRIM(dbo.TitleCase(review_title)), CHAR(13), ''), CHAR(10), '')
+ END as review_title
+FROM "RetailDB"."bronze"."stg_reviews" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_rating.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_rating.sql
new file mode 100644
index 0000000..9f1f698
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_rating.sql
@@ -0,0 +1,11 @@
+SELECT
+ review_id,
+
+ CASE
+ WHEN TRY_CONVERT(INT, rating) BETWEEN 1 AND 5
+ THEN TRY_CONVERT(INT, rating)
+ ELSE NULL
+ END AS rating,
+
+ rating_text
+FROM "RetailDB"."bronze"."stg_reviews" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_transaction.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_transaction.sql
new file mode 100644
index 0000000..9adb5c7
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_transaction.sql
@@ -0,0 +1,54 @@
+SELECT
+ review_id,
+ txn_id,
+
+ customer_id,
+ customer_name,
+
+ product_id,
+ product_name,
+
+
+
+
+ CASE
+ WHEN TRIM(review_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(review_date))
+
+ WHEN TRIM(review_date) LIKE '[A-Z][a-z][a-z] __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(review_date))
+
+ WHEN TRIM(review_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(review_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(review_date), 110)
+
+ WHEN TRIM(review_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(review_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(review_date), 105)
+
+ WHEN TRIM(review_date) LIKE '____-__-__'
+ THEN TRY_CONVERT(DATE, TRIM(review_date))
+
+ WHEN TRIM(review_date) LIKE '____/__/__'
+ THEN TRY_CONVERT(DATE, TRIM(review_date))
+
+ WHEN TRIM(review_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(review_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(review_date), 101)
+
+ WHEN TRIM(review_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(review_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(review_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(review_date), 101)
+
+ END
+
+ as review_date,
+
+ CASE
+ WHEN TRIM(LOWER(verified_purchase)) IN ('1', 'y', 'yes', 'true', 'verified') THEN 'Verified'
+ WHEN TRIM(LOWER(verified_purchase)) IN ('0', 'n', 'no', 'false') THEN 'Not Verified'
+ ELSE 'Unknown'
+ END AS verified_purchase
+FROM "RetailDB"."bronze"."stg_reviews" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb.sql
new file mode 100644
index 0000000..90f7733
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ has_parking as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_store_operations"
+ group by has_parking
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'True','False','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1.sql
new file mode 100644
index 0000000..37aa520
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ has_cafe as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_store_operations"
+ group by has_cafe
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'True','False','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf.sql
new file mode 100644
index 0000000..360045d
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ is_active as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_store_operations"
+ group by is_active
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'True','False','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_address.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_address.sql
new file mode 100644
index 0000000..71565cd
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_address.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select address
+from "RetailDB"."bronze"."int_store_location"
+where address is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_city.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_city.sql
new file mode 100644
index 0000000..f1bbbba
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_city.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select city
+from "RetailDB"."bronze"."int_store_location"
+where city is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_country.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_country.sql
new file mode 100644
index 0000000..77e6e63
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_country.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select country
+from "RetailDB"."bronze"."int_store_location"
+where country is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_district.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_district.sql
new file mode 100644
index 0000000..234036e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_district.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select district
+from "RetailDB"."bronze"."int_store_location"
+where district is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_phone.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_phone.sql
new file mode 100644
index 0000000..9520e6b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_phone.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select phone
+from "RetailDB"."bronze"."int_store_location"
+where phone is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_region.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_region.sql
new file mode 100644
index 0000000..15e8244
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_region.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select region
+from "RetailDB"."bronze"."int_store_location"
+where region is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_store_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_store_id.sql
new file mode 100644
index 0000000..ced007d
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_store_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."int_store_location"
+where store_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_cafe.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_cafe.sql
new file mode 100644
index 0000000..6dd8a26
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_cafe.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select has_cafe
+from "RetailDB"."bronze"."int_store_operations"
+where has_cafe is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_parking.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_parking.sql
new file mode 100644
index 0000000..bbe711b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_parking.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select has_parking
+from "RetailDB"."bronze"."int_store_operations"
+where has_parking is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_is_active.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_is_active.sql
new file mode 100644
index 0000000..119395d
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_is_active.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select is_active
+from "RetailDB"."bronze"."int_store_operations"
+where is_active is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_store_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_store_id.sql
new file mode 100644
index 0000000..2bd1b0b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_store_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."int_store_operations"
+where store_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_manager_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_manager_name.sql
new file mode 100644
index 0000000..c076bce
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_manager_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select manager_name
+from "RetailDB"."bronze"."int_store_profile"
+where manager_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_id.sql
new file mode 100644
index 0000000..4b87bc7
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."int_store_profile"
+where store_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_name.sql
new file mode 100644
index 0000000..37542bf
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select store_name
+from "RetailDB"."bronze"."int_store_profile"
+where store_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_type.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_type.sql
new file mode 100644
index 0000000..016b947
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_type.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select store_type
+from "RetailDB"."bronze"."int_store_profile"
+where store_type is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_location_store_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_location_store_id.sql
new file mode 100644
index 0000000..b374fb4
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_location_store_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ store_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_store_location"
+where store_id is not null
+group by store_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_operations_store_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_operations_store_id.sql
new file mode 100644
index 0000000..4c7b5b5
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_operations_store_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ store_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_store_operations"
+where store_id is not null
+group by store_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_profile_store_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_profile_store_id.sql
new file mode 100644
index 0000000..da0e683
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_profile_store_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ store_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_store_profile"
+where store_id is not null
+group by store_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_location.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_location.sql
new file mode 100644
index 0000000..377cb9f
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_location.sql
@@ -0,0 +1,88 @@
+SELECT
+ store_id,
+
+ CASE
+ WHEN address IS NULL OR TRIM(address) = '' OR LEN(address) < 5 THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(address))
+ END address,
+
+ CASE
+ WHEN city IS NULL OR TRIM(city) = '' OR LEN(TRIM(city)) < 3 THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(city))
+ END as city,
+
+ CASE
+ WHEN TRIM(state) = 'California' THEN 'CA'
+ WHEN TRIM(state) = 'Texas' THEN 'TX'
+ WHEN TRIM(state) = 'Arizona' THEN 'AZ'
+ WHEN TRIM(state) = 'Colorado' THEN 'CO'
+ WHEN TRIM(state) = 'Maryland' THEN 'MD'
+ WHEN TRIM(state) = 'Wisconsin' THEN 'WI'
+ WHEN TRIM(state) = 'Illinois' THEN 'IL'
+ WHEN TRIM(state) = 'Georgia' THEN 'GA'
+ WHEN TRIM(state) = 'Tennessee' THEN 'TN'
+ WHEN TRIM(state) = 'New Mexico' THEN 'NM'
+ WHEN TRIM(state) = 'Ohio' THEN 'OH'
+ WHEN state IS NULL OR TRIM(state) = '' OR LEN(TRIM(state)) < 2 THEN 'Unknown'
+ ELSE state
+ END as state,
+
+ CASE
+ WHEN state_full IS NULL OR TRIM(state_full) = '' OR LEN(TRIM(state_full)) < 4 THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(state_full))
+ END as state_full,
+
+ CASE
+ WHEN zip_code IS NULL OR TRY_CONVERT(INT, zip_code) IS NULL OR LEN(zip_code) < 5 THEN NULL
+ ELSE TRY_CONVERT(INT, zip_code)
+ END as zip_code,
+
+ CASE
+ WHEN TRIM(LOWER(country)) IN ('us', 'usa', 'united states', 'u.s.a', 'u.s') THEN 'United States'
+ WHEN country IS NULL OR TRIM(country) = '' OR LEN(TRIM(country)) < 2 THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(country))
+ END as country,
+
+ CASE
+ WHEN region IS NULL OR TRIM(region) = '' OR LEN(TRIM(region)) < 2 THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(region))
+ END as region,
+
+ CASE
+ WHEN district IS NULL OR TRIM(district) = '' OR LEN(TRIM(district)) < 2 THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(district))
+ END as district,
+
+
+
+ CASE
+ WHEN TRIM(phone) LIKE '+1__________'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 3, 3), ') ',
+ SUBSTRING(TRIM(phone), 6, 3),'-',
+ SUBSTRING(TRIM(phone),9,4))
+
+ WHEN TRIM(phone) LIKE '__________'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1 ,3), ') ',
+ SUBSTRING(TRIM(phone), 4 ,3), '-',
+ SUBSTRING(TRIM(phone), 7, 4))
+
+ WHEN TRIM(phone) LIKE '___-___-____'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',
+ SUBSTRING(TRIM(phone), 5, 3), '-',
+ SUBSTRING(TRIM(phone), 9 ,4))
+
+ WHEN TRIM(phone) LIKE '___.___.____'
+ THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',
+ SUBSTRING(TRIM(phone), 5, 3), '-',
+ SUBSTRING(TRIM(phone),9, 4))
+
+ WHEN TRIM(phone) LIKE '(___) ___-____'
+ THEN CONCAT('+1 ', SUBSTRING(TRIM(phone), 1, 14))
+
+ WHEN TRIM(phone) IS NULL OR TRIM(phone) = ''
+ THEN 'Unknown'
+
+ ELSE 'Unknown'
+ END
+ as phone
+FROM "RetailDB"."bronze"."stg_stores" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_operations.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_operations.sql
new file mode 100644
index 0000000..1b2d71b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_operations.sql
@@ -0,0 +1,66 @@
+SELECT
+ store_id,
+
+ CASE
+ WHEN sq_footage IS NULL OR sq_footage < 0
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, sq_footage)
+ END as sq_footage,
+
+ CASE
+ WHEN num_employees IS NULL OR num_employees < 0
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, num_employees)
+ END as num_employees,
+
+ CASE
+ WHEN annual_rent_usd < 1 OR annual_rent_usd IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, annual_rent_usd)
+ END as annual_rent_usd,
+
+ CASE
+ WHEN
+ LOWER(TRIM(is_active))
+ IN ('true', 'yes', 'y', '1', 'active')
+ THEN 'True'
+
+ WHEN
+ LOWER(TRIM(is_active))
+ IN ('false', 'no', 'n', '0', 'not active')
+ THEN 'False'
+
+ ELSE 'Unknown'
+ END as is_active,
+
+ CASE
+ WHEN
+ LOWER(TRIM(has_parking))
+ IN ('true', 'yes', 'y', '1')
+ THEN 'True'
+
+ WHEN
+ LOWER(TRIM(has_parking))
+ IN ('false', 'no', 'n', '0')
+ THEN 'False'
+
+ ELSE 'Unknown'
+ END as has_parking,
+
+ CASE
+ WHEN REPLACE(REPLACE(
+ LOWER(TRIM(has_cafe))
+, CHAR(13), ''),CHAR(10), '') IN ('1', 'yes', 'y','true')
+ THEN 'True'
+
+ WHEN REPLACE(REPLACE(
+ LOWER(TRIM(has_cafe))
+, CHAR(13), ''),CHAR(10), '') IN ('0', 'no', 'n','false')
+ THEN 'False'
+
+ ELSE 'Unknown'
+ END as has_cafe
+FROM "RetailDB"."bronze"."stg_stores" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_profile.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_profile.sql
new file mode 100644
index 0000000..ae192ac
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_profile.sql
@@ -0,0 +1,56 @@
+SELECT
+ store_id,
+
+ CASE
+ WHEN manager_name IS NULL OR TRIM(manager_name) = '' OR LEN(TRIM(manager_name)) < 2 THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(manager_name))
+ END as manager_name,
+
+ CASE
+ WHEN store_name IS NULL OR LEN(TRIM(store_name)) < 3 THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(store_name))
+ END as store_name,
+
+ CASE
+ WHEN store_type IS NULL OR LEN(TRIM(store_type)) < 3 THEN 'Unknown'
+ ELSE TRIM(dbo.TitleCase(store_type))
+ END as store_type,
+
+
+
+
+ CASE
+ WHEN TRIM(opened_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(opened_date))
+
+ WHEN TRIM(opened_date) LIKE '[A-Z][a-z][a-z] __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(opened_date))
+
+ WHEN TRIM(opened_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(opened_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(opened_date), 110)
+
+ WHEN TRIM(opened_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(opened_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(opened_date), 105)
+
+ WHEN TRIM(opened_date) LIKE '____-__-__'
+ THEN TRY_CONVERT(DATE, TRIM(opened_date))
+
+ WHEN TRIM(opened_date) LIKE '____/__/__'
+ THEN TRY_CONVERT(DATE, TRIM(opened_date))
+
+ WHEN TRIM(opened_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(opened_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(opened_date), 101)
+
+ WHEN TRIM(opened_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(opened_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(opened_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(opened_date), 101)
+
+ END
+
+ as opened_date
+FROM "RetailDB"."bronze"."stg_stores" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af.sql
new file mode 100644
index 0000000..7a478d8
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ is_returned as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_transaction_status"
+ group by is_returned
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'True','False','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9.sql
new file mode 100644
index 0000000..49e0c06
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ order_status as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_transaction_status"
+ group by order_status
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Pending','Processing','Shipped','Delivered','Returned','Cancelled'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/dbt_utils_expression_is_true_i_84f8dac55d7305f09051cb16e4bca9c2.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/dbt_utils_expression_is_true_i_84f8dac55d7305f09051cb16e4bca9c2.sql
new file mode 100644
index 0000000..c7cf74a
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/dbt_utils_expression_is_true_i_84f8dac55d7305f09051cb16e4bca9c2.sql
@@ -0,0 +1,10 @@
+
+
+
+
+select
+ 1
+from "RetailDB"."bronze"."int_transaction_financial"
+
+where not(quantity_ordered quantity_ordered >= 1 and quantity_ordered <= 30)
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_financial_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_financial_transaction_id.sql
new file mode 100644
index 0000000..72839c3
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_financial_transaction_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."int_transaction_financial"
+where transaction_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_order_date.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_order_date.sql
new file mode 100644
index 0000000..1df0509
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_order_date.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select order_date
+from "RetailDB"."bronze"."int_transaction_fulfillment"
+where order_date is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_transaction_id.sql
new file mode 100644
index 0000000..6c1060e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_transaction_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."int_transaction_fulfillment"
+where transaction_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_customer_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_customer_id.sql
new file mode 100644
index 0000000..9f8214e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_customer_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select customer_id
+from "RetailDB"."bronze"."int_transaction_order"
+where customer_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_employee_id.sql
new file mode 100644
index 0000000..98cbb21
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_employee_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."int_transaction_order"
+where employee_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_order_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_order_id.sql
new file mode 100644
index 0000000..c7540bd
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_order_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select order_id
+from "RetailDB"."bronze"."int_transaction_order"
+where order_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_product_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_product_id.sql
new file mode 100644
index 0000000..3b4a255
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_product_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_transaction_order"
+where product_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_store_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_store_id.sql
new file mode 100644
index 0000000..d64973e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_store_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."int_transaction_order"
+where store_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_transaction_id.sql
new file mode 100644
index 0000000..5186dc0
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_transaction_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."int_transaction_order"
+where transaction_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_is_returned.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_is_returned.sql
new file mode 100644
index 0000000..a31151a
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_is_returned.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select is_returned
+from "RetailDB"."bronze"."int_transaction_status"
+where is_returned is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_order_status.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_order_status.sql
new file mode 100644
index 0000000..449cb1d
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_order_status.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select order_status
+from "RetailDB"."bronze"."int_transaction_status"
+where order_status is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_promo_name.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_promo_name.sql
new file mode 100644
index 0000000..bfa2215
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_promo_name.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select promo_name
+from "RetailDB"."bronze"."int_transaction_status"
+where promo_name is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_transaction_id.sql
new file mode 100644
index 0000000..570be29
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_transaction_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."int_transaction_status"
+where transaction_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_financial_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_financial_transaction_id.sql
new file mode 100644
index 0000000..72467f8
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_financial_transaction_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_transaction_financial"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_fulfillment_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_fulfillment_transaction_id.sql
new file mode 100644
index 0000000..e628681
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_fulfillment_transaction_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_transaction_fulfillment"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_order_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_order_transaction_id.sql
new file mode 100644
index 0000000..3568624
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_order_transaction_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_transaction_order"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_status_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_status_transaction_id.sql
new file mode 100644
index 0000000..283490b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_status_transaction_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_transaction_status"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_financial.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_financial.sql
new file mode 100644
index 0000000..e259b63
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_financial.sql
@@ -0,0 +1,67 @@
+WITH int_transaction_financial AS
+(
+SELECT
+ transaction_id,
+
+ CASE
+ WHEN quantity_ordered < 1
+ THEN NULL
+
+ WHEN quantity_ordered > 30
+ THEN NULL
+
+ ELSE quantity_ordered
+ END as quantity_ordered ,
+
+ CASE
+ WHEN unit_list_price IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(unit_list_price, '$', ''), ',', ''))
+ END as unit_list_price,
+
+ CASE
+ WHEN discount_pct IS NULL OR discount_pct < 0 OR discount_pct > 100
+ THEN NULL
+
+ ELSE ROUND(discount_pct, 0)
+ END as discount_pct,
+
+ CASE
+ WHEN line_total_before_tax IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_before_tax, '$', ''), ',', '')) < 0
+ THEN NULL
+
+ ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_before_tax, '$', ''), ',', ''))
+ END as line_total_before_tax,
+
+ CASE
+ WHEN tax_rate_pct IS NULL OR TRY_CONVERT(INT, ROUND(tax_rate_pct, 0)) < 0 OR TRY_CONVERT(INT, ROUND(tax_rate_pct, 0)) > 100 THEN NULL
+ ELSE TRY_CONVERT(INT, ROUND(tax_rate_pct, 0))
+ END as tax_rate_pct,
+
+ CASE
+ WHEN tax_amount IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(tax_amount, '$', ''), ',', '')) < 0
+ THEN NULL
+
+ ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(tax_amount, '$', ''), ',', ''))
+ END as tax_amount,
+
+ CASE
+ WHEN line_total_with_tax IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_with_tax, '$', ''), ',', '')) < 0
+ THEN NULL
+
+ ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_with_tax, '$', ''), ',', ''))
+ END as line_total_with_tax
+FROM "RetailDB"."bronze"."stg_transactions"
+)
+SELECT
+ transaction_id,
+ quantity_ordered,
+ unit_list_price,
+ discount_pct,
+ ROUND(unit_list_price * (1 - discount_pct/100), 2) as unit_selling_price,
+ ROUND(quantity_ordered * ROUND(unit_list_price * (1 - discount_pct/100.0), 2),2) AS line_total_before_tax,
+ tax_rate_pct,
+ tax_amount,
+ ROUND(quantity_ordered * ROUND(unit_list_price * (1 - discount_pct/100.0), 2),2) + tax_amount AS line_total_with_tax
+FROM int_transaction_financial ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_fulfillment.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_fulfillment.sql
new file mode 100644
index 0000000..3dfb6da
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_fulfillment.sql
@@ -0,0 +1,280 @@
+WITH transaction_fulfillment AS
+(
+ SELECT
+ transaction_id,
+
+
+
+
+ CASE
+ WHEN TRIM(order_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(order_date))
+
+ WHEN TRIM(order_date) LIKE '[A-Z][a-z][a-z] __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(order_date))
+
+ WHEN TRIM(order_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(order_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(order_date), 110)
+
+ WHEN TRIM(order_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(order_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(order_date), 105)
+
+ WHEN TRIM(order_date) LIKE '____-__-__'
+ THEN TRY_CONVERT(DATE, TRIM(order_date))
+
+ WHEN TRIM(order_date) LIKE '____/__/__'
+ THEN TRY_CONVERT(DATE, TRIM(order_date))
+
+ WHEN TRIM(order_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(order_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(order_date), 101)
+
+ WHEN TRIM(order_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(order_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(order_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(order_date), 101)
+
+ END
+
+ as order_date,
+
+
+
+ CASE
+ WHEN TRIM(ship_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(ship_date))
+
+ WHEN TRIM(ship_date) LIKE '[A-Z][a-z][a-z] __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(ship_date))
+
+ WHEN TRIM(ship_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(ship_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(ship_date), 110)
+
+ WHEN TRIM(ship_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(ship_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(ship_date), 105)
+
+ WHEN TRIM(ship_date) LIKE '____-__-__'
+ THEN TRY_CONVERT(DATE, TRIM(ship_date))
+
+ WHEN TRIM(ship_date) LIKE '____/__/__'
+ THEN TRY_CONVERT(DATE, TRIM(ship_date))
+
+ WHEN TRIM(ship_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(ship_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(ship_date), 101)
+
+ WHEN TRIM(ship_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(ship_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(ship_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(ship_date), 101)
+
+ END
+
+ as ship_date,
+
+
+
+ CASE
+ WHEN TRIM(delivery_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date))
+
+ WHEN TRIM(delivery_date) LIKE '[A-Z][a-z][a-z] __, ____'
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date))
+
+ WHEN TRIM(delivery_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(delivery_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date), 110)
+
+ WHEN TRIM(delivery_date) LIKE '__-__-____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(delivery_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date), 105)
+
+ WHEN TRIM(delivery_date) LIKE '____-__-__'
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date))
+
+ WHEN TRIM(delivery_date) LIKE '____/__/__'
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date))
+
+ WHEN TRIM(delivery_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(delivery_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date), 101)
+
+ WHEN TRIM(delivery_date) LIKE '__/__/____'
+ AND TRY_CONVERT(INT, LEFT(TRIM(delivery_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(delivery_date), 101)
+
+ END
+
+ as delivery_date,
+ order_month,
+
+ CASE
+ WHEN TRIM(LOWER(shipping_method)) IN ('pickup', 'in-store pickup')
+ THEN 'Store Pickup'
+
+ WHEN TRIM(LOWER(shipping_method)) IN ('overnight', 'overnight shipping')
+ THEN 'Overnight Shipping'
+
+ WHEN TRIM(LOWER(shipping_method)) IN ('same day', 'same day delivery')
+ THEN 'Same Day Delivery'
+
+ WHEN TRIM(LOWER(shipping_method)) IN ('express', 'express shipping')
+ THEN 'Express Shipping'
+
+ WHEN TRIM(LOWER(shipping_method)) IN ('standard', 'standard shipping')
+ THEN 'Standard Shipping'
+
+ WHEN TRIM(LOWER(shipping_method)) IN ('free ship', 'free shipping')
+ THEN 'Free Shipping'
+
+ ELSE TRIM(shipping_method)
+ END AS shipping_method,
+
+ CASE
+ WHEN TRIM(LOWER(sales_channel)) IN ('app', 'mobile', 'mobile app')
+ THEN 'Mobile App'
+
+ WHEN TRIM(LOWER(sales_channel)) IN ('store', 'in store', 'in-store')
+ THEN 'In Store'
+
+ WHEN TRIM(LOWER(sales_channel)) IN ('online', 'web')
+ THEN 'Website'
+
+ WHEN TRIM(LOWER(sales_channel)) IN ('phone')
+ THEN 'Phone Call'
+
+ WHEN TRIM(LOWER(sales_channel)) IN ('catalog')
+ THEN 'Catalog'
+
+ ELSE 'Unknown'
+ END AS sales_channel,
+
+ CASE TRIM(LOWER(payment_method))
+ WHEN 'debit card' THEN 'Debit Card'
+ WHEN 'credit card' THEN 'Credit Card'
+ WHEN 'google pay' THEN 'Google Pay'
+ WHEN 'apple pay' THEN 'Apple Pay'
+ WHEN 'bank transfer' THEN 'Bank Transfer'
+ WHEN 'buy now pay later' THEN 'Buy Now Pay Later'
+ WHEN 'bnpl' THEN 'Buy Now Pay Later'
+ WHEN 'gift card' THEN 'Gift Card'
+ WHEN 'paypal' THEN 'PayPal'
+ WHEN 'cash' THEN 'Cash'
+ ELSE TRIM(payment_method)
+ END AS payment_method,
+
+ TRY_CONVERT(DATE, record_created_ts) as record_created,
+ TRY_CONVERT(DATE, last_modified_ts ) as last_modified
+ FROM "RetailDB"."bronze"."stg_transactions"
+),
+order_date_cleaning AS
+(
+ SELECT
+ transaction_id,
+
+ CASE
+ WHEN order_month != MONTH(order_date)
+ THEN DATEFROMPARTS(YEAR(order_date), DAY(order_date), MONTH(order_date))
+
+ ELSE order_date
+ END AS order_date,
+
+ ship_date,
+ delivery_date,
+
+ shipping_method,
+ sales_channel,
+ payment_method,
+
+ CASE
+ WHEN record_created IS NULL
+ OR record_created NOT LIKE '____-__-__'
+ OR TRY_CONVERT(DATE, record_created) IS NULL
+ OR YEAR(record_created) < 2019
+ THEN NULL
+
+ ELSE record_created
+ END as record_created,
+
+ CASE
+ WHEN last_modified IS NULL
+ OR last_modified NOT LIKE '____-__-__'
+ OR TRY_CONVERT(DATE, last_modified) IS NULL
+ OR YEAR(last_modified) < 2019
+ THEN NULL
+
+ ELSE last_modified
+ END as last_modified
+
+ FROM transaction_fulfillment
+),
+ship_date_cleaning AS
+(
+ SELECT
+ transaction_id,
+ order_date ,
+
+ CASE
+ WHEN DATEDIFF(DAY ,order_date, ship_date) < 0
+ THEN DATEFROMPARTS(YEAR(ship_date), DAY(ship_date), MONTH(ship_date))
+
+ WHEN DATEDIFF(DAY ,order_date, ship_date) > 15
+ THEN DATEFROMPARTS(YEAR(ship_date), DAY(ship_date), MONTH(ship_date))
+
+ WHEN ship_date IS NULL
+ THEN DATEADD(DAY, 7, order_date)
+
+ ELSE ship_date
+ END as ship_date ,
+
+ delivery_date,
+ shipping_method,
+ sales_channel,
+ payment_method,
+ record_created,
+ last_modified
+ FROM order_date_cleaning
+),
+int_transaction_fulfillment AS
+(
+ SELECT
+ transaction_id,
+ order_date,
+ ship_date,
+
+ CASE
+ WHEN DATEDIFF(DAY, ship_date , delivery_date) > 17
+ THEN DATEFROMPARTS(YEAR(delivery_date), DAY(delivery_date), MONTH(delivery_date))
+
+ WHEN DATEDIFF(DAY, ship_date , delivery_date) < -15
+ THEN DATEFROMPARTS(YEAR(delivery_date), DAY(delivery_date), MONTH(delivery_date))
+
+ ELSE delivery_date
+ END as delivery_date,
+
+ shipping_method,
+ sales_channel,
+ payment_method,
+ record_created,
+ last_modified
+ FROM ship_date_cleaning
+)
+SELECT
+ transaction_id,
+ order_date,
+ ship_date,
+ delivery_date,
+ shipping_method,
+ sales_channel,
+ payment_method,
+ record_created,
+ last_modified
+FROM int_transaction_fulfillment;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_order.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_order.sql
new file mode 100644
index 0000000..7dae44e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_order.sql
@@ -0,0 +1,13 @@
+SELECT
+ transaction_id,
+ order_id,
+ customer_id,
+ product_id,
+ store_id,
+ employee_id,
+ CASE
+ WHEN order_line_number < 1 THEN NULL
+ WHEN order_line_number > 20 THEN NULL
+ ELSE order_line_number
+ END as order_line_number
+FROM "RetailDB"."bronze"."stg_transactions" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_status.sql b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_status.sql
new file mode 100644
index 0000000..4eb9e0d
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_status.sql
@@ -0,0 +1,48 @@
+SELECT
+ transaction_id,
+
+ promo_id,
+
+ CASE TRIM(LOWER(promo_name))
+ WHEN 'winter clearance' THEN 'Winter Clearance'
+ WHEN 'bundle deal' THEN 'Bundle Deal'
+ WHEN 'no promo' THEN 'No Promo'
+ WHEN 'flash sale' THEN 'Flash Sale'
+ WHEN 'black friday' THEN 'Black Friday'
+ WHEN 'holiday special' THEN 'Holiday Special'
+ WHEN 'weekend deal' THEN 'Weekend Deal'
+ WHEN 'loyalty reward' THEN 'Loyalty Reward'
+ WHEN 'cyber monday' THEN 'Cyber Monday'
+ ELSE TRIM(promo_name)
+ END AS promo_name,
+
+ CASE TRIM(LOWER(order_status))
+ WHEN 'pending' THEN 'Pending'
+ WHEN 'processing' THEN 'Processing'
+ WHEN 'shipped' THEN 'Shipped'
+ WHEN 'delivered' THEN 'Delivered'
+ WHEN 'returned' THEN 'Returned'
+ WHEN 'cancelled' THEN 'Cancelled'
+ ELSE TRIM(order_status)
+ END AS order_status,
+
+ CASE
+ WHEN TRIM(LOWER(is_returned)) IN ('yes', 'y', 'true', '1')
+ THEN 'True'
+
+ WHEN TRIM(LOWER(is_returned)) IN ('no', 'n', 'false', '0')
+ THEN 'False'
+
+ ELSE 'Unknown'
+ END AS is_returned,
+
+ CASE TRIM(LOWER(data_source))
+ WHEN 'crm' THEN 'CRM'
+ WHEN 'web' THEN 'Web'
+ WHEN 'pos' THEN 'POS'
+ WHEN 'manual' THEN 'Manual'
+ WHEN 'erp' THEN 'ERP'
+ ELSE 'Unknown'
+ END AS data_source
+
+FROM "RetailDB"."bronze"."stg_transactions" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/accepted_values_dim_date_day_type__Weekday__Weekend.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/accepted_values_dim_date_day_type__Weekday__Weekend.sql
new file mode 100644
index 0000000..2daf7e7
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/accepted_values_dim_date_day_type__Weekday__Weekend.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ day_type as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."dim_date"
+ group by day_type
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Weekday','Weekend'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/accepted_values_dim_stores_is_active__True__False__Unknown.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/accepted_values_dim_stores_is_active__True__False__Unknown.sql
new file mode 100644
index 0000000..2a50706
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/accepted_values_dim_stores_is_active__True__False__Unknown.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ is_active as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."dim_stores"
+ group by is_active
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'True','False','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_customers_customer_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_customers_customer_id.sql
new file mode 100644
index 0000000..49f4e91
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_customers_customer_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select customer_id
+from "RetailDB"."bronze"."dim_customers"
+where customer_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_date_date_day.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_date_date_day.sql
new file mode 100644
index 0000000..1d1a444
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_date_date_day.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select date_day
+from "RetailDB"."bronze"."dim_date"
+where date_day is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_employees_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_employees_employee_id.sql
new file mode 100644
index 0000000..a782184
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_employees_employee_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."dim_employees"
+where employee_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_products_product_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_products_product_id.sql
new file mode 100644
index 0000000..28629e0
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_products_product_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."dim_products"
+where product_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_stores_store_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_stores_store_id.sql
new file mode 100644
index 0000000..dbfc747
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_stores_store_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."dim_stores"
+where store_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_customers_customer_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_customers_customer_id.sql
new file mode 100644
index 0000000..6b171c4
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_customers_customer_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ customer_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."dim_customers"
+where customer_id is not null
+group by customer_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_date_date_day.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_date_date_day.sql
new file mode 100644
index 0000000..da7504b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_date_date_day.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ date_day as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."dim_date"
+where date_day is not null
+group by date_day
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_employees_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_employees_employee_id.sql
new file mode 100644
index 0000000..e321773
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_employees_employee_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."dim_employees"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_products_product_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_products_product_id.sql
new file mode 100644
index 0000000..d18a213
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_products_product_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."dim_products"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_stores_store_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_stores_store_id.sql
new file mode 100644
index 0000000..688313f
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_stores_store_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ store_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."dim_stores"
+where store_id is not null
+group by store_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_customers.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_customers.sql
new file mode 100644
index 0000000..70ae8ee
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_customers.sql
@@ -0,0 +1,31 @@
+SELECT
+ p.customer_id,
+ TRIM(CONCAT(p.title, ' ', p.first_name, ' ', p.last_name)) as customer_name,
+ p.gender,
+ p.date_of_birth,
+ c.email,
+ c.phone,
+ l.address,
+ l.zip_code,
+ l.city,
+ l.region,
+ l.state,
+ l.state_abbr,
+ l.country,
+ s.company,
+ s.customer_segment,
+ c.preferred_channel,
+ s.is_active,
+ s.loyalty_points,
+ s.annual_income_usd,
+ s.account_created_date
+FROM "RetailDB"."bronze"."int_customer_profile" as p
+
+LEFT JOIN "RetailDB"."bronze"."int_customers_contact" as c
+ ON p.customer_id = c.customer_id
+
+LEFT JOIN "RetailDB"."bronze"."int_customer_location" as l
+ ON p.customer_id = l.customer_id
+
+LEFT JOIN "RetailDB"."bronze"."int_customer_segmentation" as s
+ ON s.customer_id = p.customer_id ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_date.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_date.sql
new file mode 100644
index 0000000..f2b7fb1
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_date.sql
@@ -0,0 +1,30 @@
+WITH dates AS (
+ SELECT order_date AS date_day FROM "RetailDB"."bronze"."int_transaction_fulfillment"
+ UNION
+ SELECT ship_date AS date_day FROM "RetailDB"."bronze"."int_transaction_fulfillment"
+ UNION
+ SELECT delivery_date AS date_day FROM "RetailDB"."bronze"."int_transaction_fulfillment"
+ UNION
+ SELECT return_date AS date_day FROM "RetailDB"."bronze"."int_return_transaction"
+ UNION
+ SELECT review_date AS date_day FROM "RetailDB"."bronze"."int_review_transaction"
+ UNION
+ SELECT snapshot_date AS date_day FROM "RetailDB"."bronze"."int_inventory_product"
+)
+
+SELECT
+ date_day,
+ YEAR(date_day) AS year_number,
+ DATEPART(QUARTER, date_day) AS quarter_number,
+ MONTH(date_day) AS month_number,
+ DATENAME(MONTH, date_day) AS month_name,
+ DAY(date_day) AS day_of_month,
+ DATEPART(WEEK, date_day) AS week_number,
+ DATENAME(WEEKDAY, date_day) AS day_name,
+ DATEPART(WEEKDAY, date_day) AS day_of_week_number,
+ CASE
+ WHEN DATEPART(WEEKDAY, date_day) IN (1, 7) THEN 'Weekend'
+ ELSE 'Weekday'
+ END AS day_type
+FROM dates
+WHERE date_day IS NOT NULL;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_employees.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_employees.sql
new file mode 100644
index 0000000..440153d
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_employees.sql
@@ -0,0 +1,24 @@
+SELECT
+ p.employee_id,
+ e.store_id,
+ e.manager_id,
+ CONCAT(p.first_name, ' ', p.last_name) as employee_name,
+ e.job_title,
+ e.department,
+ e.performance_rating,
+ e.store_name,
+ e.store_city,
+ c.email,
+ c.phone,
+ e.annual_salary_usd,
+ e.commission_rate_pct,
+ e.years_employed,
+ e.is_active,
+ p.hire_date
+FROM "RetailDB"."bronze"."int_employee_profile" as p
+
+LEFT JOIN "RetailDB"."bronze"."int_employee_contact" as c
+ ON p.employee_id = c.employee_id
+
+LEFT JOIN "RetailDB"."bronze"."int_employee_employment" as e
+ ON p.employee_id = e.employee_id ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_inventory.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_inventory.sql
new file mode 100644
index 0000000..efd278c
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_inventory.sql
@@ -0,0 +1,76 @@
+-- models/marts/core/dimensions/dim_inventory.sql
+
+
+/*
+ Description: Product dimension with SCD Type 2 tracking
+ Grain: 1 row per product snapshot change
+ Load: Full refresh daily
+*/
+
+WITH product_base AS (
+ SELECT
+ p.inventory_snapshot_sk,
+ p.snapshot_date,
+ p.product_id,
+ p.product_name,
+ p.sku,
+ p.category,
+ v.unit_cost,
+ v.unit_price,
+ v.warehouse_location,
+ v.store_id
+ FROM "RetailDB"."bronze"."int_inventory_product" p
+ INNER JOIN "RetailDB"."bronze"."int_inventory_valuation" v
+ ON p.inventory_snapshot_sk = v.inventory_snapshot_sk
+),
+
+product_with_lead AS (
+ SELECT
+ *,
+ LEAD(snapshot_date) OVER (
+ PARTITION BY product_id
+ ORDER BY snapshot_date
+ ) as next_effective_date
+ FROM product_base
+)
+
+SELECT
+
+ lower(convert(varchar(50), hashbytes('md5', coalesce(convert(varchar(8000), concat(coalesce(cast(product_id as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'), '-', coalesce(cast(snapshot_date as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'))), '')), 2))
+ as product_snapshot_sk,
+
+ product_id,
+ inventory_snapshot_sk,
+ product_name,
+ sku,
+ category,
+
+ unit_cost,
+ unit_price,
+ unit_price - unit_cost as unit_margin,
+ CASE
+ WHEN unit_price = 0 OR unit_price IS NULL THEN 0
+ ELSE ROUND(((unit_price - unit_cost) / unit_price) * 100, 2)
+ END as margin_percentage,
+
+ warehouse_location,
+ store_id,
+
+ snapshot_date as effective_from_date,
+ next_effective_date as effective_to_date,
+
+ CASE
+ WHEN next_effective_date IS NULL THEN 1
+ ELSE 0
+ END as is_current_record,
+
+ CASE
+ WHEN unit_cost > unit_price THEN 1
+ ELSE 0
+ END as is_negative_margin,
+
+ GETDATE() as dbt_created_at,
+ GETDATE() as dbt_updated_at
+
+FROM product_with_lead
+WHERE snapshot_date IS NOT NULL
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_products.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_products.sql
new file mode 100644
index 0000000..d66ce8d
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_products.sql
@@ -0,0 +1,29 @@
+SELECT
+ a.product_id,
+ a.sku,
+ a.product_name,
+ a.brand,
+ a.category,
+ a.sub_category,
+ a.department,
+ a.launched_date,
+ a.product_url,
+ p.base_price_usd,
+ p.cost_price_usd,
+ p.gross_margin_pct,
+ i.is_available,
+ i.stock_quantity,
+ i.reorder_level,
+ s.supplier_name,
+ s.supplier_country,
+ s.weight_kg,
+ s.warranty_years,
+ s.rating_avg,
+ s.review_count
+FROM "RetailDB"."bronze"."int_product_attributes" AS a
+LEFT JOIN "RetailDB"."bronze"."int_product_pricing" AS p
+ ON a.product_id = p.product_id
+LEFT JOIN "RetailDB"."bronze"."int_product_inventory" AS i
+ ON a.product_id = i.product_id
+LEFT JOIN "RetailDB"."bronze"."int_product_supplier" AS s
+ ON a.product_id = s.product_id ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_stores.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_stores.sql
new file mode 100644
index 0000000..ad41676
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_stores.sql
@@ -0,0 +1,27 @@
+SELECT
+ p.store_id,
+ p.store_name,
+ p.store_type,
+ p.manager_name,
+ p.opened_date,
+ l.address,
+ l.city,
+ l.state,
+ l.state_full,
+ l.zip_code,
+ l.country,
+ l.region,
+ l.district,
+ l.phone,
+ o.sq_footage,
+ o.num_employees,
+ o.annual_rent_usd,
+ o.is_active,
+ o.has_parking,
+ o.has_cafe
+FROM "RetailDB"."bronze"."int_store_profile" AS p
+LEFT JOIN "RetailDB"."bronze"."int_store_location" AS l
+ ON p.store_id = l.store_id
+LEFT JOIN "RetailDB"."bronze"."int_store_operations" AS o
+ ON p.store_id = o.store_id
+WHERE p.store_id IS NOT NULL;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_inventory__23893e91b105c3a3eb88f6f15e255939.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_inventory__23893e91b105c3a3eb88f6f15e255939.sql
new file mode 100644
index 0000000..750ea1c
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_inventory__23893e91b105c3a3eb88f6f15e255939.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ is_reorder_needed as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."fct_inventory_snapshot"
+ group by is_reorder_needed
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Yes','No','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_reviews_rating__1__2__3__4__5.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_reviews_rating__1__2__3__4__5.sql
new file mode 100644
index 0000000..901b1b2
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_reviews_rating__1__2__3__4__5.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ rating as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."fct_reviews"
+ group by rating
+
+)
+
+select *
+from all_values
+where value_field not in (
+ '1','2','3','4','5'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_2f1962838dd9c36ea4131242fea3d0bc.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_2f1962838dd9c36ea4131242fea3d0bc.sql
new file mode 100644
index 0000000..8c8de5b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_2f1962838dd9c36ea4131242fea3d0bc.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ order_status as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."fct_sales"
+ group by order_status
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'Pending','Processing','Shipped','Delivered','Returned','Cancelled'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_is_returned__True__False__Unknown.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_is_returned__True__False__Unknown.sql
new file mode 100644
index 0000000..a78674e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_is_returned__True__False__Unknown.sql
@@ -0,0 +1,22 @@
+
+
+
+
+with all_values as (
+
+ select
+ is_returned as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."fct_sales"
+ group by is_returned
+
+)
+
+select *
+from all_values
+where value_field not in (
+ 'True','False','Unknown'
+)
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_inventory_snapshot_inventory_snapshot_sk.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_inventory_snapshot_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..79da811
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_inventory_snapshot_inventory_snapshot_sk.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select inventory_snapshot_sk
+from "RetailDB"."bronze"."fct_inventory_snapshot"
+where inventory_snapshot_sk is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_returns_return_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_returns_return_id.sql
new file mode 100644
index 0000000..5236a00
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_returns_return_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select return_id
+from "RetailDB"."bronze"."fct_returns"
+where return_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_reviews_review_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_reviews_review_id.sql
new file mode 100644
index 0000000..1d6d1cf
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_reviews_review_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select review_id
+from "RetailDB"."bronze"."fct_reviews"
+where review_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_sales_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_sales_transaction_id.sql
new file mode 100644
index 0000000..4f75128
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_sales_transaction_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."fct_sales"
+where transaction_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_a85547c523583fbdd44be03535a973e7.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_a85547c523583fbdd44be03535a973e7.sql
new file mode 100644
index 0000000..db030c5
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_a85547c523583fbdd44be03535a973e7.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select product_id as from_field
+ from "RetailDB"."bronze"."fct_inventory_snapshot"
+ where product_id is not null
+),
+
+parent as (
+ select product_id as to_field
+ from "RetailDB"."bronze"."dim_products"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_e092b716d25a1f43bded7d16734205ce.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_e092b716d25a1f43bded7d16734205ce.sql
new file mode 100644
index 0000000..f01b162
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_e092b716d25a1f43bded7d16734205ce.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select store_id as from_field
+ from "RetailDB"."bronze"."fct_inventory_snapshot"
+ where store_id is not null
+),
+
+parent as (
+ select store_id as to_field
+ from "RetailDB"."bronze"."dim_stores"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_returns_4b0b88fd1c561269f4101b4413f12311.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_returns_4b0b88fd1c561269f4101b4413f12311.sql
new file mode 100644
index 0000000..9d98cfa
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_returns_4b0b88fd1c561269f4101b4413f12311.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select customer_id as from_field
+ from "RetailDB"."bronze"."fct_returns"
+ where customer_id is not null
+),
+
+parent as (
+ select customer_id as to_field
+ from "RetailDB"."bronze"."dim_customers"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_returns_91349d3e2c12325ccfc03946d8ff971f.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_returns_91349d3e2c12325ccfc03946d8ff971f.sql
new file mode 100644
index 0000000..ea0f6c6
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_returns_91349d3e2c12325ccfc03946d8ff971f.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select handled_by_emp_id as from_field
+ from "RetailDB"."bronze"."fct_returns"
+ where handled_by_emp_id is not null
+),
+
+parent as (
+ select employee_id as to_field
+ from "RetailDB"."bronze"."dim_employees"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_returns_d03a04199cfd458a77fb3989a5d004b5.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_returns_d03a04199cfd458a77fb3989a5d004b5.sql
new file mode 100644
index 0000000..711f96e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_returns_d03a04199cfd458a77fb3989a5d004b5.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select product_id as from_field
+ from "RetailDB"."bronze"."fct_returns"
+ where product_id is not null
+),
+
+parent as (
+ select product_id as to_field
+ from "RetailDB"."bronze"."dim_products"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_reviews_5d845207c26ff66dc7c5e2776ced1340.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_reviews_5d845207c26ff66dc7c5e2776ced1340.sql
new file mode 100644
index 0000000..5b7ace9
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_reviews_5d845207c26ff66dc7c5e2776ced1340.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select product_id as from_field
+ from "RetailDB"."bronze"."fct_reviews"
+ where product_id is not null
+),
+
+parent as (
+ select product_id as to_field
+ from "RetailDB"."bronze"."dim_products"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_reviews_dfd7af2b5edbe1ad909757c1b3796195.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_reviews_dfd7af2b5edbe1ad909757c1b3796195.sql
new file mode 100644
index 0000000..1c0d01b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_reviews_dfd7af2b5edbe1ad909757c1b3796195.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select customer_id as from_field
+ from "RetailDB"."bronze"."fct_reviews"
+ where customer_id is not null
+),
+
+parent as (
+ select customer_id as to_field
+ from "RetailDB"."bronze"."dim_customers"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_63946367e83a1d38b527bcd41e3c9240.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_63946367e83a1d38b527bcd41e3c9240.sql
new file mode 100644
index 0000000..d29b34b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_63946367e83a1d38b527bcd41e3c9240.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select product_id as from_field
+ from "RetailDB"."bronze"."fct_sales"
+ where product_id is not null
+),
+
+parent as (
+ select product_id as to_field
+ from "RetailDB"."bronze"."dim_products"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_8088231b0d03c7f74d7137fac6fca2b4.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_8088231b0d03c7f74d7137fac6fca2b4.sql
new file mode 100644
index 0000000..e331207
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_8088231b0d03c7f74d7137fac6fca2b4.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select customer_id as from_field
+ from "RetailDB"."bronze"."fct_sales"
+ where customer_id is not null
+),
+
+parent as (
+ select customer_id as to_field
+ from "RetailDB"."bronze"."dim_customers"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_b79062f83580756dcc556e71bddab94b.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_b79062f83580756dcc556e71bddab94b.sql
new file mode 100644
index 0000000..c5d7b9f
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_b79062f83580756dcc556e71bddab94b.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select employee_id as from_field
+ from "RetailDB"."bronze"."fct_sales"
+ where employee_id is not null
+),
+
+parent as (
+ select employee_id as to_field
+ from "RetailDB"."bronze"."dim_employees"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_store_id__store_id__ref_dim_stores_.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_store_id__store_id__ref_dim_stores_.sql
new file mode 100644
index 0000000..d1a8de9
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_store_id__store_id__ref_dim_stores_.sql
@@ -0,0 +1,25 @@
+
+
+
+
+with child as (
+ select store_id as from_field
+ from "RetailDB"."bronze"."fct_sales"
+ where store_id is not null
+),
+
+parent as (
+ select store_id as to_field
+ from "RetailDB"."bronze"."dim_stores"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_inventory_snapshot_inventory_snapshot_sk.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_inventory_snapshot_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..981ffab
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_inventory_snapshot_inventory_snapshot_sk.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ inventory_snapshot_sk as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."fct_inventory_snapshot"
+where inventory_snapshot_sk is not null
+group by inventory_snapshot_sk
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_returns_return_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_returns_return_id.sql
new file mode 100644
index 0000000..75632b4
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_returns_return_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ return_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."fct_returns"
+where return_id is not null
+group by return_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_reviews_review_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_reviews_review_id.sql
new file mode 100644
index 0000000..5c6de67
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_reviews_review_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ review_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."fct_reviews"
+where review_id is not null
+group by review_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_sales_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_sales_transaction_id.sql
new file mode 100644
index 0000000..8f55ebb
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_sales_transaction_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."fct_sales"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_inventory_snapshot.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_inventory_snapshot.sql
new file mode 100644
index 0000000..a577d6d
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_inventory_snapshot.sql
@@ -0,0 +1,27 @@
+SELECT
+ p.inventory_snapshot_sk,
+ p.snapshot_date,
+ p.product_id,
+ v.store_id,
+ p.sku,
+ p.product_name,
+ p.category,
+ s.stock_on_hand,
+ s.stock_reserved,
+ s.stock_available,
+ s.reorder_level,
+ v.unit_cost,
+ v.unit_price,
+ v.inventory_value,
+ v.warehouse_location,
+ CASE
+ WHEN s.stock_available IS NULL OR s.reorder_level IS NULL THEN 'Unknown'
+ WHEN s.stock_available <= s.reorder_level THEN 'Yes'
+ ELSE 'No'
+ END AS is_reorder_needed
+FROM "RetailDB"."bronze"."int_inventory_product" AS p
+LEFT JOIN "RetailDB"."bronze"."int_inventory_stock" AS s
+ ON p.inventory_snapshot_sk = s.inventory_snapshot_sk
+LEFT JOIN "RetailDB"."bronze"."int_inventory_valuation" AS v
+ ON p.inventory_snapshot_sk = v.inventory_snapshot_sk
+WHERE p.inventory_snapshot_sk IS NOT NULL;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_returns.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_returns.sql
new file mode 100644
index 0000000..9f46694
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_returns.sql
@@ -0,0 +1,22 @@
+SELECT
+ t.return_id,
+ t.original_txn_id,
+ t.original_order_id,
+ t.customer_id,
+ t.product_id,
+ t.quantity_returned,
+ t.return_date,
+ p.return_reason,
+ p.return_channel,
+ p.restocked,
+ p.return_status,
+ p.handled_by_emp_id,
+ p.notes,
+ r.refund_amount,
+ r.refund_method
+FROM "RetailDB"."bronze"."int_return_transaction" AS t
+LEFT JOIN "RetailDB"."bronze"."int_return_processing" AS p
+ ON t.return_id = p.return_id
+LEFT JOIN "RetailDB"."bronze"."int_return_refund" AS r
+ ON t.return_id = r.return_id
+WHERE t.return_id IS NOT NULL;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_reviews.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_reviews.sql
new file mode 100644
index 0000000..2cd5780
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_reviews.sql
@@ -0,0 +1,18 @@
+SELECT
+ t.review_id,
+ t.txn_id,
+ t.customer_id,
+ t.product_id,
+ t.review_date,
+ t.verified_purchase,
+ r.rating,
+ r.rating_text,
+ f.helpful_votes,
+ f.review_channel,
+ f.review_title
+FROM "RetailDB"."bronze"."int_review_transaction" AS t
+LEFT JOIN "RetailDB"."bronze"."int_review_rating" AS r
+ ON t.review_id = r.review_id
+LEFT JOIN "RetailDB"."bronze"."int_review_feedback" AS f
+ ON t.review_id = f.review_id
+WHERE t.review_id IS NOT NULL;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_sales.sql b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_sales.sql
new file mode 100644
index 0000000..fb6e0f8
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/marts/core/facts/fct_sales.sql
@@ -0,0 +1,35 @@
+SELECT
+ o.transaction_id,
+ o.order_id,
+ o.order_line_number,
+ o.customer_id,
+ o.product_id,
+ o.store_id,
+ o.employee_id,
+ f.order_date,
+ f.ship_date,
+ f.delivery_date,
+ f.shipping_method,
+ f.sales_channel,
+ f.payment_method,
+ s.promo_id,
+ s.promo_name,
+ s.order_status,
+ s.is_returned,
+ s.data_source,
+ m.quantity_ordered,
+ m.unit_list_price,
+ m.discount_pct,
+ m.unit_selling_price,
+ m.line_total_before_tax,
+ m.tax_rate_pct,
+ m.tax_amount,
+ m.line_total_with_tax
+FROM "RetailDB"."bronze"."int_transaction_order" AS o
+LEFT JOIN "RetailDB"."bronze"."int_transaction_fulfillment" AS f
+ ON o.transaction_id = f.transaction_id
+LEFT JOIN "RetailDB"."bronze"."int_transaction_status" AS s
+ ON o.transaction_id = s.transaction_id
+LEFT JOIN "RetailDB"."bronze"."int_transaction_financial" AS m
+ ON o.transaction_id = m.transaction_id
+WHERE o.transaction_id IS NOT NULL;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/Customers/stg_customers.sql b/target/compiled/dbt_analytics_engineering/models/staging/Customers/stg_customers.sql
new file mode 100644
index 0000000..4961fb2
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/Customers/stg_customers.sql
@@ -0,0 +1,27 @@
+SELECT
+ customer_id
+ ,title
+ ,first_name
+ ,last_name
+ ,full_name
+ ,gender
+ ,date_of_birth
+ ,age
+ ,email
+ ,phone
+ ,address
+ ,city
+ ,state
+ ,state_abbr
+ ,state_full
+ ,zip_code
+ ,country
+ ,region
+ ,customer_segment
+ ,loyalty_points
+ ,is_active
+ ,account_created_date
+ ,preferred_channel
+ ,annual_income_usd
+ ,company
+FROM "RetailDB"."bronze"."customers";
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/Employees/stg_employees.sql b/target/compiled/dbt_analytics_engineering/models/staging/Employees/stg_employees.sql
new file mode 100644
index 0000000..0aed011
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/Employees/stg_employees.sql
@@ -0,0 +1,20 @@
+SELECT
+ employee_id
+ ,first_name
+ ,last_name
+ ,full_name
+ ,email
+ ,phone
+ ,job_title
+ ,department
+ ,store_id
+ ,store_name
+ ,store_city
+ ,hire_date
+ ,years_employed
+ ,annual_salary_usd
+ ,commission_rate_pct
+ ,is_active
+ ,performance_rating
+ ,manager_id
+FROM "RetailDB"."bronze"."employees";
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/Inventory/stg_inventory.sql b/target/compiled/dbt_analytics_engineering/models/staging/Inventory/stg_inventory.sql
new file mode 100644
index 0000000..b6b0783
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/Inventory/stg_inventory.sql
@@ -0,0 +1,21 @@
+SELECT
+
+ lower(convert(varchar(50), hashbytes('md5', coalesce(convert(varchar(8000), concat(coalesce(cast(snapshot_date as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'), '-', coalesce(cast(product_id as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'), '-', coalesce(cast(store_id as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'))), '')), 2))
+ AS inventory_snapshot_sk,
+
+ snapshot_date,
+ product_id,
+ product_name,
+ sku,
+ category,
+ stock_on_hand,
+ stock_reserved,
+ stock_available,
+ reorder_level,
+ unit_cost,
+ unit_price,
+ inventory_value,
+ warehouse_location,
+ store_id
+
+FROM "RetailDB"."bronze"."inventory_snapshots";
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/Products/stg_products.sql b/target/compiled/dbt_analytics_engineering/models/staging/Products/stg_products.sql
new file mode 100644
index 0000000..15d48d2
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/Products/stg_products.sql
@@ -0,0 +1,23 @@
+SELECT
+ product_id
+ ,sku
+ ,product_name
+ ,brand
+ ,category
+ ,sub_category
+ ,department
+ ,base_price_usd
+ ,cost_price_usd
+ ,gross_margin_pct
+ ,weight_kg
+ ,is_available
+ ,stock_quantity
+ ,reorder_level
+ ,supplier_name
+ ,supplier_country
+ ,warranty_years
+ ,rating_avg
+ ,review_count
+ ,launched_date
+ ,product_url
+FROM "RetailDB"."bronze"."products" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/Returns/stg_returns.sql b/target/compiled/dbt_analytics_engineering/models/staging/Returns/stg_returns.sql
new file mode 100644
index 0000000..ba759c5
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/Returns/stg_returns.sql
@@ -0,0 +1,19 @@
+SELECT
+ return_id
+ ,original_txn_id
+ ,original_order_id
+ ,customer_id
+ ,customer_name
+ ,product_id
+ ,product_name
+ ,quantity_returned
+ ,return_date
+ ,return_reason
+ ,refund_amount
+ ,refund_method
+ ,return_channel
+ ,restocked
+ ,return_status
+ ,handled_by_emp_id
+ ,notes
+FROM "RetailDB"."bronze"."returns" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/Reviews/stg_reviews.sql b/target/compiled/dbt_analytics_engineering/models/staging/Reviews/stg_reviews.sql
new file mode 100644
index 0000000..f14e825
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/Reviews/stg_reviews.sql
@@ -0,0 +1,15 @@
+SELECT
+ review_id
+ ,txn_id
+ ,customer_id
+ ,customer_name
+ ,product_id
+ ,product_name
+ ,rating
+ ,rating_text
+ ,review_date
+ ,verified_purchase
+ ,helpful_votes
+ ,review_channel
+ ,review_title
+FROM "RetailDB"."bronze"."reviews" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/Stores/stg_stores.sql b/target/compiled/dbt_analytics_engineering/models/staging/Stores/stg_stores.sql
new file mode 100644
index 0000000..97d50ee
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/Stores/stg_stores.sql
@@ -0,0 +1,22 @@
+SELECT
+ store_id
+ ,store_name
+ ,store_type
+ ,address
+ ,city
+ ,state
+ ,state_full
+ ,zip_code
+ ,country
+ ,region
+ ,district
+ ,phone
+ ,manager_name
+ ,opened_date
+ ,sq_footage
+ ,num_employees
+ ,annual_rent_usd
+ ,is_active
+ ,has_parking
+ ,has_cafe
+FROM "RetailDB"."bronze"."stores" ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/Transactions/stg_transactions.sql b/target/compiled/dbt_analytics_engineering/models/staging/Transactions/stg_transactions.sql
new file mode 100644
index 0000000..ebb59fb
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/Transactions/stg_transactions.sql
@@ -0,0 +1,74 @@
+SELECT
+ transaction_id
+ ,rn
+ ,order_id
+ ,order_line_number
+ ,order_date
+ ,order_year
+ ,order_month
+ ,order_month_name
+ ,order_quarter
+ ,order_day_of_week
+ ,ship_date
+ ,delivery_date
+ ,customer_id
+ ,customer_full_name
+ ,customer_first_name
+ ,customer_last_name
+ ,customer_email
+ ,customer_phone
+ ,customer_city
+ ,customer_state
+ ,customer_zip
+ ,customer_region
+ ,customer_segment
+ ,customer_gender
+ ,customer_age
+ ,customer_age_group
+ ,product_id
+ ,product_name
+ ,sku
+ ,brand
+ ,category
+ ,sub_category
+ ,department
+ ,quantity_ordered
+ ,unit_list_price
+ ,discount_pct
+ ,unit_selling_price
+ ,line_total_before_tax
+ ,tax_rate_pct
+ ,tax_amount
+ ,line_total_with_tax
+ ,store_id
+ ,store_name
+ ,store_city
+ ,store_state
+ ,store_region
+ ,store_type
+ ,employee_id
+ ,employee_name
+ ,employee_job_title
+ ,promo_id
+ ,promo_name
+ ,sales_channel
+ ,payment_method
+ ,shipping_method
+ ,order_status
+ ,is_returned
+ ,cost_price
+ ,gross_profit
+ ,data_source
+ ,record_created_ts
+ ,last_modified_ts
+FROM
+(
+SELECT
+ ROW_NUMBER() OVER(
+ PARTITION BY transaction_id
+ ORDER BY transaction_id
+ ) AS rn,
+ *
+FROM "RetailDB"."bronze"."sales_transactions"
+WHERE transaction_id IS NOT NULL
+)t WHERE rn = 1;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_customers_customer_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_customers_customer_id.sql
new file mode 100644
index 0000000..be3bb37
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_customers_customer_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select customer_id
+from "RetailDB"."bronze"."stg_customers"
+where customer_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_employees_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_employees_employee_id.sql
new file mode 100644
index 0000000..d2714ef
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_employees_employee_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."stg_employees"
+where employee_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_inventory_snapshot_sk.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..13608ed
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_inventory_snapshot_sk.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select inventory_snapshot_sk
+from "RetailDB"."bronze"."stg_inventory"
+where inventory_snapshot_sk is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_product_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_product_id.sql
new file mode 100644
index 0000000..e313730
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_product_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."stg_inventory"
+where product_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_snapshot_date.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_snapshot_date.sql
new file mode 100644
index 0000000..9076e66
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_snapshot_date.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select snapshot_date
+from "RetailDB"."bronze"."stg_inventory"
+where snapshot_date is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_product_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_product_id.sql
new file mode 100644
index 0000000..fe6d399
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_product_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."stg_products"
+where product_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_sku.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_sku.sql
new file mode 100644
index 0000000..f498c8e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_sku.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select sku
+from "RetailDB"."bronze"."stg_products"
+where sku is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_returns_return_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_returns_return_id.sql
new file mode 100644
index 0000000..e3f9f2b
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_returns_return_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select return_id
+from "RetailDB"."bronze"."stg_returns"
+where return_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_reviews_review_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_reviews_review_id.sql
new file mode 100644
index 0000000..73b7a46
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_reviews_review_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select review_id
+from "RetailDB"."bronze"."stg_reviews"
+where review_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_stores_store_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_stores_store_id.sql
new file mode 100644
index 0000000..26d2d8e
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_stores_store_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."stg_stores"
+where store_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_order_line_number.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_order_line_number.sql
new file mode 100644
index 0000000..3d8e96a
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_order_line_number.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select order_line_number
+from "RetailDB"."bronze"."stg_transactions"
+where order_line_number is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_transaction_id.sql
new file mode 100644
index 0000000..4178ccc
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_transaction_id.sql
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."stg_transactions"
+where transaction_id is null
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_customers_customer_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_customers_customer_id.sql
new file mode 100644
index 0000000..06ad813
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_customers_customer_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ customer_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_customers"
+where customer_id is not null
+group by customer_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_employees_employee_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_employees_employee_id.sql
new file mode 100644
index 0000000..191076d
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_employees_employee_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_employees"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_inventory_inventory_snapshot_sk.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_inventory_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..acb31f1
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_inventory_inventory_snapshot_sk.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ inventory_snapshot_sk as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_inventory"
+where inventory_snapshot_sk is not null
+group by inventory_snapshot_sk
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_products_product_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_products_product_id.sql
new file mode 100644
index 0000000..14a01bd
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_products_product_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_products"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_returns_return_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_returns_return_id.sql
new file mode 100644
index 0000000..69fc512
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_returns_return_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ return_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_returns"
+where return_id is not null
+group by return_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_reviews_review_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_reviews_review_id.sql
new file mode 100644
index 0000000..2823229
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_reviews_review_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ review_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_reviews"
+where review_id is not null
+group by review_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_stores_store_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_stores_store_id.sql
new file mode 100644
index 0000000..d4d9597
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_stores_store_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ store_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_stores"
+where store_id is not null
+group by store_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_transactions_transaction_id.sql b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_transactions_transaction_id.sql
new file mode 100644
index 0000000..e082670
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_transactions_transaction_id.sql
@@ -0,0 +1,14 @@
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_transactions"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
diff --git a/target/compiled/dbt_analytics_engineering/tests/singular/customer_age_validation.sql b/target/compiled/dbt_analytics_engineering/tests/singular/customer_age_validation.sql
new file mode 100644
index 0000000..53414eb
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/tests/singular/customer_age_validation.sql
@@ -0,0 +1,5 @@
+SELECT
+ *
+FROM "RetailDB"."bronze"."int_customer_profile"
+WHEREdate_of_birth NOT LIKE '____-__-__'
+ OR date_of_birth IS NULL ;
\ No newline at end of file
diff --git a/target/compiled/dbt_analytics_engineering/tests/singular/valid_zip_code.sql b/target/compiled/dbt_analytics_engineering/tests/singular/valid_zip_code.sql
new file mode 100644
index 0000000..e6a18c7
--- /dev/null
+++ b/target/compiled/dbt_analytics_engineering/tests/singular/valid_zip_code.sql
@@ -0,0 +1,5 @@
+SELECT *
+FROM "RetailDB"."bronze"."int_customer_location"
+WHERE zip_code IS NULL
+ OR LEN(CAST(zip_code AS VARCHAR(10))) <> 5
+ OR TRY_CAST(zip_code AS INT) IS NULL
\ No newline at end of file
diff --git a/target/dbt-lsp.log b/target/dbt-lsp.log
new file mode 100644
index 0000000..83e3179
--- /dev/null
+++ b/target/dbt-lsp.log
@@ -0,0 +1,374 @@
+==================== 2026-07-09T16:17:58.003256Z | 00000000-0000-0000-0000-000000000000 ====================
+==================== 2026-07-09T16:17:58.023340Z | aa88e1d0-5de0-4564-9c71-d61517d39956 ====================
+16:17:58.026598 [info ]: Starting dbt LSP server
+16:17:58.026664 [info ]: Connecting to LSP client on port 8000
+16:17:58.029808 [info ]: Successfully connected to LSP client
+16:17:58.029899 [info ]: Creating LSP service...
+16:17:58.284333 [info ]: Creating LSP server...
+16:17:58.284366 [info ]: Starting LSP server...
+16:19:22.732984 [info ]: Loading ~/.dbt/profiles.yml
+16:19:23.345686 [info ]: Loading ~/.dbt/profiles.yml
+16:19:23.896352 [info ]: Loading ~/.dbt/profiles.yml
+16:19:24.280072 [info ]: Loading ~/.dbt/profiles.yml
+16:19:25.668989 [info ]: Loading ~/.dbt/profiles.yml
+16:19:26.212467 [info ]: Loading ~/.dbt/profiles.yml
+16:19:26.714879 [info ]: Loading ~/.dbt/profiles.yml
+16:19:27.183251 [info ]: Loading ~/.dbt/profiles.yml
+16:19:27.692724 [info ]: Loading ~/.dbt/profiles.yml
+16:19:28.150766 [info ]: Loading ~/.dbt/profiles.yml
+16:19:30.193016 [info ]: Loading ~/.dbt/profiles.yml
+16:19:30.893502 [info ]: Loading ~/.dbt/profiles.yml
+16:19:31.866960 [info ]: Loading ~/.dbt/profiles.yml
+16:19:32.304061 [info ]: Loading ~/.dbt/profiles.yml
+16:19:32.779427 [info ]: Loading ~/.dbt/profiles.yml
+16:19:33.867486 [info ]: Loading ~/.dbt/profiles.yml
+16:20:21.937569 [info ]: Loading ~/.dbt/profiles.yml
+16:20:23.049609 [info ]: Loading ~/.dbt/profiles.yml
+16:22:50.114669 [info ]: Loading ~/.dbt/profiles.yml
+16:22:50.627604 [info ]: Loading ~/.dbt/profiles.yml
+16:22:51.157615 [info ]: Loading ~/.dbt/profiles.yml
+16:22:51.688925 [info ]: Loading ~/.dbt/profiles.yml
+16:22:52.262451 [info ]: Loading ~/.dbt/profiles.yml
+16:22:52.769701 [info ]: Loading ~/.dbt/profiles.yml
+16:22:53.284837 [info ]: Loading ~/.dbt/profiles.yml
+16:22:53.738981 [info ]: Loading ~/.dbt/profiles.yml
+16:22:54.224462 [info ]: Loading ~/.dbt/profiles.yml
+16:22:54.729739 [info ]: Loading ~/.dbt/profiles.yml
+16:22:55.259236 [info ]: Loading ~/.dbt/profiles.yml
+16:22:55.806415 [info ]: Loading ~/.dbt/profiles.yml
+16:22:56.251730 [info ]: Loading ~/.dbt/profiles.yml
+16:22:56.768980 [info ]: Loading ~/.dbt/profiles.yml
+16:22:57.274028 [info ]: Loading ~/.dbt/profiles.yml
+16:22:57.760426 [info ]: Loading ~/.dbt/profiles.yml
+16:22:58.298804 [info ]: Loading ~/.dbt/profiles.yml
+16:22:58.795836 [info ]: Loading ~/.dbt/profiles.yml
+16:22:59.313463 [info ]: Loading ~/.dbt/profiles.yml
+16:22:59.831512 [info ]: Loading ~/.dbt/profiles.yml
+16:23:00.407074 [info ]: Loading ~/.dbt/profiles.yml
+16:23:00.822581 [info ]: Loading ~/.dbt/profiles.yml
+16:23:01.319487 [info ]: Loading ~/.dbt/profiles.yml
+16:23:01.829740 [info ]: Loading ~/.dbt/profiles.yml
+16:23:02.424639 [info ]: Loading ~/.dbt/profiles.yml
+16:23:35.064335 [info ]: Loading ~/.dbt/profiles.yml
+16:23:35.570744 [info ]: Loading ~/.dbt/profiles.yml
+16:23:36.248011 [info ]: Loading ~/.dbt/profiles.yml
+16:23:36.747724 [info ]: Loading ~/.dbt/profiles.yml
+16:23:37.260986 [info ]: Loading ~/.dbt/profiles.yml
+16:23:37.766211 [info ]: Loading ~/.dbt/profiles.yml
+16:23:38.270959 [info ]: Loading ~/.dbt/profiles.yml
+16:23:38.776640 [info ]: Loading ~/.dbt/profiles.yml
+16:23:39.300193 [info ]: Loading ~/.dbt/profiles.yml
+16:23:39.799572 [info ]: Loading ~/.dbt/profiles.yml
+16:23:40.314204 [info ]: Loading ~/.dbt/profiles.yml
+16:23:40.697225 [info ]: Loading ~/.dbt/profiles.yml
+16:23:42.755912 [info ]: Loading ~/.dbt/profiles.yml
+16:23:43.464613 [info ]: Loading ~/.dbt/profiles.yml
+16:23:43.966243 [info ]: Loading ~/.dbt/profiles.yml
+16:23:44.477407 [info ]: Loading ~/.dbt/profiles.yml
+16:23:45.000809 [info ]: Loading ~/.dbt/profiles.yml
+16:23:45.498620 [info ]: Loading ~/.dbt/profiles.yml
+16:23:46.010442 [info ]: Loading ~/.dbt/profiles.yml
+16:23:46.567083 [info ]: Loading ~/.dbt/profiles.yml
+16:23:46.997451 [info ]: Loading ~/.dbt/profiles.yml
+16:23:47.513252 [info ]: Loading ~/.dbt/profiles.yml
+16:23:48.025219 [info ]: Loading ~/.dbt/profiles.yml
+16:23:48.514232 [info ]: Loading ~/.dbt/profiles.yml
+16:23:49.030114 [info ]: Loading ~/.dbt/profiles.yml
+16:23:49.511216 [info ]: Loading ~/.dbt/profiles.yml
+16:23:50.014064 [info ]: Loading ~/.dbt/profiles.yml
+16:23:50.533765 [info ]: Loading ~/.dbt/profiles.yml
+16:23:51.130147 [info ]: Loading ~/.dbt/profiles.yml
+16:23:51.631220 [info ]: Loading ~/.dbt/profiles.yml
+16:23:52.147227 [info ]: Loading ~/.dbt/profiles.yml
+16:23:52.651841 [info ]: Loading ~/.dbt/profiles.yml
+16:23:53.142843 [info ]: Loading ~/.dbt/profiles.yml
+16:23:53.643644 [info ]: Loading ~/.dbt/profiles.yml
+16:23:54.158177 [info ]: Loading ~/.dbt/profiles.yml
+16:23:54.651131 [info ]: Loading ~/.dbt/profiles.yml
+16:23:55.471249 [info ]: Loading ~/.dbt/profiles.yml
+16:23:55.972874 [info ]: Loading ~/.dbt/profiles.yml
+16:23:56.659500 [info ]: Loading ~/.dbt/profiles.yml
+16:24:19.788845 [info ]: Loading ~/.dbt/profiles.yml
+16:24:20.272873 [info ]: Loading ~/.dbt/profiles.yml
+16:24:20.774020 [info ]: Loading ~/.dbt/profiles.yml
+16:24:21.285340 [info ]: Loading ~/.dbt/profiles.yml
+16:24:21.789954 [info ]: Loading ~/.dbt/profiles.yml
+16:24:22.291960 [info ]: Loading ~/.dbt/profiles.yml
+16:24:22.792270 [info ]: Loading ~/.dbt/profiles.yml
+16:24:23.295596 [info ]: Loading ~/.dbt/profiles.yml
+16:24:23.794002 [info ]: Loading ~/.dbt/profiles.yml
+16:24:24.235395 [info ]: Loading ~/.dbt/profiles.yml
+16:31:07.337886 [info ]: Loading ~/.dbt/profiles.yml
+==================== 2026-07-09T16:33:49.499975Z | 00000000-0000-0000-0000-000000000000 ====================
+==================== 2026-07-09T16:33:49.500401Z | e7ce7b37-e9b2-41b5-a810-1fad30baaa9e ====================
+16:33:49.500441 [info ]: Starting dbt LSP server
+16:33:49.500473 [info ]: Connecting to LSP client on port 8000
+16:33:49.501109 [info ]: Successfully connected to LSP client
+16:33:49.501182 [info ]: Creating LSP service...
+16:33:49.644582 [info ]: Creating LSP server...
+16:33:49.644615 [info ]: Starting LSP server...
+==================== 2026-07-20T15:38:37.654977Z | 00000000-0000-0000-0000-000000000000 ====================
+==================== 2026-07-20T15:38:37.668087Z | 49572796-16e7-43a7-9b10-1195835fbf8f ====================
+15:38:37.669128 [info ]: Starting dbt LSP server
+15:38:37.669177 [info ]: Connecting to LSP client on port 8000
+15:38:37.670481 [info ]: Successfully connected to LSP client
+15:38:37.670540 [info ]: Creating LSP service...
+15:38:37.949875 [info ]: Creating LSP server...
+15:38:37.949963 [info ]: Starting LSP server...
+15:38:38.826112 [info ]: Loading ~/.dbt/profiles.yml
+15:38:53.343783 [info ]: Loading ~/.dbt/profiles.yml
+15:39:19.341909 [info ]: Loading ~/.dbt/profiles.yml
+15:40:31.889666 [info ]: Loading ~/.dbt/profiles.yml
+15:41:46.657545 [info ]: Loading ~/.dbt/profiles.yml
+15:42:43.958117 [info ]: Loading ~/.dbt/profiles.yml
+15:43:07.159560 [info ]: Loading ~/.dbt/profiles.yml
+15:43:07.687316 [info ]: Loading ~/.dbt/profiles.yml
+15:43:08.218866 [info ]: Loading ~/.dbt/profiles.yml
+15:43:08.766380 [info ]: Loading ~/.dbt/profiles.yml
+15:43:09.991105 [info ]: Loading ~/.dbt/profiles.yml
+15:43:10.504466 [info ]: Loading ~/.dbt/profiles.yml
+15:43:10.800179 [info ]: Loading ~/.dbt/profiles.yml
+15:43:11.365237 [info ]: Loading ~/.dbt/profiles.yml
+15:43:11.827224 [info ]: Loading ~/.dbt/profiles.yml
+15:43:12.292690 [info ]: Loading ~/.dbt/profiles.yml
+15:43:29.595498 [info ]: Loading ~/.dbt/profiles.yml
+15:43:30.156353 [info ]: Loading ~/.dbt/profiles.yml
+15:43:31.098165 [info ]: Loading ~/.dbt/profiles.yml
+15:43:31.811333 [info ]: Loading ~/.dbt/profiles.yml
+15:43:32.506111 [info ]: Loading ~/.dbt/profiles.yml
+15:44:02.507480 [info ]: Loading ~/.dbt/profiles.yml
+15:44:41.261568 [info ]: Loading ~/.dbt/profiles.yml
+15:44:55.710382 [info ]: Loading ~/.dbt/profiles.yml
+15:44:56.213099 [info ]: Loading ~/.dbt/profiles.yml
+15:44:56.734147 [info ]: Loading ~/.dbt/profiles.yml
+15:44:57.120283 [info ]: Loading ~/.dbt/profiles.yml
+15:44:57.848723 [info ]: Loading ~/.dbt/profiles.yml
+15:44:58.389704 [info ]: Loading ~/.dbt/profiles.yml
+15:44:58.856914 [info ]: Loading ~/.dbt/profiles.yml
+15:44:59.504713 [info ]: Loading ~/.dbt/profiles.yml
+15:45:17.443020 [info ]: Loading ~/.dbt/profiles.yml
+15:45:17.936164 [info ]: Loading ~/.dbt/profiles.yml
+15:45:18.728263 [info ]: Loading ~/.dbt/profiles.yml
+15:45:19.259139 [info ]: Loading ~/.dbt/profiles.yml
+15:45:19.647730 [info ]: Loading ~/.dbt/profiles.yml
+15:45:47.501079 [info ]: Loading ~/.dbt/profiles.yml
+15:45:48.374711 [info ]: Loading ~/.dbt/profiles.yml
+15:47:31.432186 [info ]: Loading ~/.dbt/profiles.yml
+15:47:54.307082 [info ]: Loading ~/.dbt/profiles.yml
+15:47:54.810738 [info ]: Loading ~/.dbt/profiles.yml
+15:47:55.324007 [info ]: Loading ~/.dbt/profiles.yml
+15:47:55.594487 [info ]: Loading ~/.dbt/profiles.yml
+15:47:56.378906 [info ]: Loading ~/.dbt/profiles.yml
+15:47:57.444799 [info ]: Loading ~/.dbt/profiles.yml
+15:47:57.976497 [info ]: Loading ~/.dbt/profiles.yml
+15:47:58.662363 [info ]: Loading ~/.dbt/profiles.yml
+15:48:06.156130 [info ]: Loading ~/.dbt/profiles.yml
+15:48:06.764434 [info ]: Loading ~/.dbt/profiles.yml
+15:48:07.583688 [info ]: Loading ~/.dbt/profiles.yml
+15:48:08.102435 [info ]: Loading ~/.dbt/profiles.yml
+15:48:08.891778 [info ]: Loading ~/.dbt/profiles.yml
+15:49:02.286526 [info ]: Loading ~/.dbt/profiles.yml
+15:49:33.951408 [info ]: Loading ~/.dbt/profiles.yml
+15:50:05.938006 [info ]: Loading ~/.dbt/profiles.yml
+15:50:40.639036 [info ]: Loading ~/.dbt/profiles.yml
+15:53:41.657643 [info ]: Loading ~/.dbt/profiles.yml
+15:54:19.947033 [info ]: Loading ~/.dbt/profiles.yml
+15:54:54.913914 [info ]: Loading ~/.dbt/profiles.yml
+15:56:21.815468 [info ]: Loading ~/.dbt/profiles.yml
+15:57:11.752294 [info ]: Loading ~/.dbt/profiles.yml
+15:58:14.352389 [info ]: Loading ~/.dbt/profiles.yml
+15:59:49.966376 [info ]: Loading ~/.dbt/profiles.yml
+==================== 2026-07-20T16:07:15.373521Z | 00000000-0000-0000-0000-000000000000 ====================
+==================== 2026-07-20T16:07:15.380491Z | c19d71c6-1670-4f1b-bc85-65f276bcea07 ====================
+16:07:15.380568 [info ]: Starting dbt LSP server
+16:07:15.380600 [info ]: Connecting to LSP client on port 8000
+16:07:15.381161 [info ]: Successfully connected to LSP client
+16:07:15.381202 [info ]: Creating LSP service...
+16:07:15.643602 [info ]: Creating LSP server...
+16:07:15.643658 [info ]: Starting LSP server...
+16:07:15.960034 [info ]: Loading ~/.dbt/profiles.yml
+16:07:16.203103 [info ]: Loading ~/.dbt/profiles.yml
+16:08:13.617912 [info ]: Loading ~/.dbt/profiles.yml
+16:08:21.977781 [info ]: Loading ~/.dbt/profiles.yml
+16:09:08.788448 [info ]: Loading ~/.dbt/profiles.yml
+16:09:59.491024 [info ]: Loading ~/.dbt/profiles.yml
+16:10:13.862277 [info ]: Loading ~/.dbt/profiles.yml
+16:10:25.004172 [info ]: Loading ~/.dbt/profiles.yml
+16:10:44.212879 [info ]: Loading ~/.dbt/profiles.yml
+16:10:58.195857 [info ]: Loading ~/.dbt/profiles.yml
+16:11:42.990671 [info ]: Loading ~/.dbt/profiles.yml
+16:11:51.519183 [info ]: Loading ~/.dbt/profiles.yml
+16:12:41.245548 [info ]: Loading ~/.dbt/profiles.yml
+16:12:41.846923 [info ]: Loading ~/.dbt/profiles.yml
+16:12:42.349000 [info ]: Loading ~/.dbt/profiles.yml
+16:12:42.733252 [info ]: Loading ~/.dbt/profiles.yml
+16:12:43.283628 [info ]: Loading ~/.dbt/profiles.yml
+16:12:43.847560 [info ]: Loading ~/.dbt/profiles.yml
+16:12:44.287065 [info ]: Loading ~/.dbt/profiles.yml
+16:12:44.829042 [info ]: Loading ~/.dbt/profiles.yml
+16:12:45.213966 [info ]: Loading ~/.dbt/profiles.yml
+16:12:45.813444 [info ]: Loading ~/.dbt/profiles.yml
+16:12:53.186540 [info ]: Loading ~/.dbt/profiles.yml
+16:12:53.459449 [info ]: Loading ~/.dbt/profiles.yml
+16:12:53.775093 [info ]: Loading ~/.dbt/profiles.yml
+16:12:54.358324 [info ]: Loading ~/.dbt/profiles.yml
+16:12:54.830903 [info ]: Loading ~/.dbt/profiles.yml
+16:12:55.467475 [info ]: Loading ~/.dbt/profiles.yml
+16:14:02.797476 [info ]: Loading ~/.dbt/profiles.yml
+16:14:50.649474 [info ]: Loading ~/.dbt/profiles.yml
+16:15:21.907428 [info ]: Loading ~/.dbt/profiles.yml
+16:15:40.195564 [info ]: Loading ~/.dbt/profiles.yml
+16:16:30.846583 [info ]: Loading ~/.dbt/profiles.yml
+16:16:38.250582 [info ]: Loading ~/.dbt/profiles.yml
+16:16:58.232503 [info ]: Loading ~/.dbt/profiles.yml
+16:18:21.947951 [info ]: Loading ~/.dbt/profiles.yml
+16:19:06.043386 [info ]: Loading ~/.dbt/profiles.yml
+16:21:06.722028 [info ]: Loading ~/.dbt/profiles.yml
+16:21:32.562243 [info ]: Loading ~/.dbt/profiles.yml
+16:21:33.064369 [info ]: Loading ~/.dbt/profiles.yml
+16:21:33.565944 [info ]: Loading ~/.dbt/profiles.yml
+16:21:33.949539 [info ]: Loading ~/.dbt/profiles.yml
+16:21:34.465215 [info ]: Loading ~/.dbt/profiles.yml
+16:21:34.767374 [info ]: Loading ~/.dbt/profiles.yml
+16:21:35.509680 [info ]: Loading ~/.dbt/profiles.yml
+16:21:36.020233 [info ]: Loading ~/.dbt/profiles.yml
+16:21:36.690016 [info ]: Loading ~/.dbt/profiles.yml
+16:21:39.390363 [info ]: Loading ~/.dbt/profiles.yml
+16:21:39.885150 [info ]: Loading ~/.dbt/profiles.yml
+16:21:40.385004 [info ]: Loading ~/.dbt/profiles.yml
+16:21:40.769416 [info ]: Loading ~/.dbt/profiles.yml
+16:21:41.124243 [info ]: Loading ~/.dbt/profiles.yml
+16:21:41.588657 [info ]: Loading ~/.dbt/profiles.yml
+16:21:42.264165 [info ]: Loading ~/.dbt/profiles.yml
+16:21:42.839218 [info ]: Loading ~/.dbt/profiles.yml
+16:22:10.936619 [info ]: Loading ~/.dbt/profiles.yml
+16:22:26.637108 [info ]: Loading ~/.dbt/profiles.yml
+16:23:09.685235 [info ]: Loading ~/.dbt/profiles.yml
+16:24:09.916683 [info ]: Loading ~/.dbt/profiles.yml
+16:24:31.438317 [info ]: Loading ~/.dbt/profiles.yml
+16:24:55.788937 [info ]: Loading ~/.dbt/profiles.yml
+16:25:07.696125 [info ]: Loading ~/.dbt/profiles.yml
+16:25:12.856904 [info ]: Loading ~/.dbt/profiles.yml
+16:25:18.729896 [info ]: Loading ~/.dbt/profiles.yml
+16:25:26.348823 [info ]: Loading ~/.dbt/profiles.yml
+16:28:44.034865 [info ]: Loading ~/.dbt/profiles.yml
+16:29:04.901499 [info ]: Loading ~/.dbt/profiles.yml
+16:30:09.801205 [info ]: Loading ~/.dbt/profiles.yml
+16:30:37.193289 [info ]: Loading ~/.dbt/profiles.yml
+16:30:37.699812 [info ]: Loading ~/.dbt/profiles.yml
+16:30:38.200579 [info ]: Loading ~/.dbt/profiles.yml
+16:30:38.879265 [info ]: Loading ~/.dbt/profiles.yml
+16:30:39.586959 [info ]: Loading ~/.dbt/profiles.yml
+16:30:40.279842 [info ]: Loading ~/.dbt/profiles.yml
+16:30:40.793682 [info ]: Loading ~/.dbt/profiles.yml
+16:30:41.304185 [info ]: Loading ~/.dbt/profiles.yml
+16:30:41.871931 [info ]: Loading ~/.dbt/profiles.yml
+16:30:55.011630 [info ]: Loading ~/.dbt/profiles.yml
+16:30:55.768638 [info ]: Loading ~/.dbt/profiles.yml
+16:30:56.103008 [info ]: Loading ~/.dbt/profiles.yml
+16:30:56.500637 [info ]: Loading ~/.dbt/profiles.yml
+16:30:57.008007 [info ]: Loading ~/.dbt/profiles.yml
+16:30:57.731243 [info ]: Loading ~/.dbt/profiles.yml
+16:31:28.884859 [info ]: Loading ~/.dbt/profiles.yml
+16:31:29.267884 [info ]: Loading ~/.dbt/profiles.yml
+16:31:29.777454 [info ]: Loading ~/.dbt/profiles.yml
+16:31:30.192424 [info ]: Loading ~/.dbt/profiles.yml
+16:31:30.693215 [info ]: Loading ~/.dbt/profiles.yml
+16:31:31.204284 [info ]: Loading ~/.dbt/profiles.yml
+16:31:31.694689 [info ]: Loading ~/.dbt/profiles.yml
+16:31:32.130156 [info ]: Loading ~/.dbt/profiles.yml
+16:31:32.655620 [info ]: Loading ~/.dbt/profiles.yml
+16:31:45.545412 [info ]: Loading ~/.dbt/profiles.yml
+16:31:46.296590 [info ]: Loading ~/.dbt/profiles.yml
+16:31:47.178132 [info ]: Loading ~/.dbt/profiles.yml
+16:31:47.877893 [info ]: Loading ~/.dbt/profiles.yml
+16:32:21.513093 [info ]: Loading ~/.dbt/profiles.yml
+16:32:31.281435 [info ]: Loading ~/.dbt/profiles.yml
+16:32:35.123793 [info ]: Loading ~/.dbt/profiles.yml
+16:32:45.570986 [info ]: Loading ~/.dbt/profiles.yml
+16:33:24.207701 [info ]: Loading ~/.dbt/profiles.yml
+16:33:40.345124 [info ]: Loading ~/.dbt/profiles.yml
+16:33:51.322233 [info ]: Loading ~/.dbt/profiles.yml
+16:35:50.272859 [info ]: Loading ~/.dbt/profiles.yml
+16:36:22.721868 [info ]: Loading ~/.dbt/profiles.yml
+16:36:29.662417 [info ]: Loading ~/.dbt/profiles.yml
+16:36:33.457991 [info ]: Loading ~/.dbt/profiles.yml
+16:36:53.336215 [info ]: Loading ~/.dbt/profiles.yml
+16:37:24.294025 [info ]: Loading ~/.dbt/profiles.yml
+16:37:48.800143 [info ]: Loading ~/.dbt/profiles.yml
+16:37:52.117054 [info ]: Loading ~/.dbt/profiles.yml
+16:38:03.433234 [info ]: Loading ~/.dbt/profiles.yml
+16:38:16.637214 [info ]: Loading ~/.dbt/profiles.yml
+16:39:15.516831 [info ]: Loading ~/.dbt/profiles.yml
+16:39:42.323997 [info ]: Loading ~/.dbt/profiles.yml
+16:40:26.408808 [info ]: Loading ~/.dbt/profiles.yml
+16:40:32.871094 [info ]: Loading ~/.dbt/profiles.yml
+16:41:31.073411 [info ]: Loading ~/.dbt/profiles.yml
+16:41:48.815604 [info ]: Loading ~/.dbt/profiles.yml
+16:42:11.302652 [info ]: Loading ~/.dbt/profiles.yml
+16:42:38.178771 [info ]: Loading ~/.dbt/profiles.yml
+16:42:46.481608 [info ]: Loading ~/.dbt/profiles.yml
+16:42:53.370378 [info ]: Loading ~/.dbt/profiles.yml
+16:43:51.340650 [info ]: Loading ~/.dbt/profiles.yml
+16:44:17.033783 [info ]: Loading ~/.dbt/profiles.yml
+16:45:13.260001 [info ]: Loading ~/.dbt/profiles.yml
+16:45:21.112101 [info ]: Loading ~/.dbt/profiles.yml
+16:45:40.102048 [info ]: Loading ~/.dbt/profiles.yml
+16:45:52.265770 [info ]: Loading ~/.dbt/profiles.yml
+16:46:02.338597 [info ]: Loading ~/.dbt/profiles.yml
+16:47:43.330583 [info ]: Loading ~/.dbt/profiles.yml
+16:47:54.108161 [info ]: Loading ~/.dbt/profiles.yml
+16:47:56.538146 [info ]: Loading ~/.dbt/profiles.yml
+16:50:08.746051 [info ]: Loading ~/.dbt/profiles.yml
+16:50:36.590450 [info ]: Loading ~/.dbt/profiles.yml
+16:50:49.061161 [info ]: Loading ~/.dbt/profiles.yml
+16:50:59.919603 [info ]: Loading ~/.dbt/profiles.yml
+16:51:09.245308 [info ]: Loading ~/.dbt/profiles.yml
+16:51:12.708642 [info ]: Loading ~/.dbt/profiles.yml
+16:51:27.126844 [info ]: Loading ~/.dbt/profiles.yml
+16:51:40.909330 [info ]: Loading ~/.dbt/profiles.yml
+16:51:54.417973 [info ]: Loading ~/.dbt/profiles.yml
+16:52:31.262499 [info ]: Loading ~/.dbt/profiles.yml
+16:52:49.505235 [info ]: Loading ~/.dbt/profiles.yml
+16:53:23.405149 [info ]: Loading ~/.dbt/profiles.yml
+16:53:36.332798 [info ]: Loading ~/.dbt/profiles.yml
+16:53:41.457678 [info ]: Loading ~/.dbt/profiles.yml
+16:54:07.906868 [info ]: Loading ~/.dbt/profiles.yml
+16:54:48.255662 [info ]: Loading ~/.dbt/profiles.yml
+16:54:48.810042 [info ]: Loading ~/.dbt/profiles.yml
+16:54:49.491919 [info ]: Loading ~/.dbt/profiles.yml
+16:54:50.216110 [info ]: Loading ~/.dbt/profiles.yml
+16:54:50.975511 [info ]: Loading ~/.dbt/profiles.yml
+16:54:51.424090 [info ]: Loading ~/.dbt/profiles.yml
+16:54:51.940374 [info ]: Loading ~/.dbt/profiles.yml
+16:54:52.679008 [info ]: Loading ~/.dbt/profiles.yml
+16:55:05.418151 [info ]: Loading ~/.dbt/profiles.yml
+16:55:05.724842 [info ]: Loading ~/.dbt/profiles.yml
+16:55:06.477973 [info ]: Loading ~/.dbt/profiles.yml
+16:55:07.349402 [info ]: Loading ~/.dbt/profiles.yml
+16:55:07.868834 [info ]: Loading ~/.dbt/profiles.yml
+16:55:17.641370 [info ]: Loading ~/.dbt/profiles.yml
+16:56:44.413116 [info ]: Loading ~/.dbt/profiles.yml
+16:57:01.258742 [info ]: Loading ~/.dbt/profiles.yml
+==================== 2026-07-21T02:33:01.475594Z | 00000000-0000-0000-0000-000000000000 ====================
+==================== 2026-07-21T02:33:01.482193Z | fa103890-c69a-45ac-a746-cd6a219818b2 ====================
+02:33:01.482589 [info ]: Starting dbt LSP server
+02:33:01.482643 [info ]: Connecting to LSP client on port 8000
+02:33:01.483450 [info ]: Successfully connected to LSP client
+02:33:01.483506 [info ]: Creating LSP service...
+02:33:01.766612 [info ]: Creating LSP server...
+02:33:01.766670 [info ]: Starting LSP server...
+02:33:01.942695 [info ]: Loading ~/.dbt/profiles.yml
+02:33:08.497563 [info ]: Loading ~/.dbt/profiles.yml
+02:33:12.579491 [info ]: Loading ~/.dbt/profiles.yml
+==================== 2026-07-21T02:35:37.463130Z | 00000000-0000-0000-0000-000000000000 ====================
+==================== 2026-07-21T02:35:37.463507Z | 5f6e82b9-1f46-4d1d-afe1-ce1a509fa1ce ====================
+02:35:37.463542 [info ]: Starting dbt LSP server
+02:35:37.463579 [info ]: Connecting to LSP client on port 8000
+02:35:37.464075 [info ]: Successfully connected to LSP client
+02:35:37.464117 [info ]: Creating LSP service...
+02:35:37.610909 [info ]: Creating LSP server...
+02:35:37.610976 [info ]: Starting LSP server...
+02:35:37.632922 [info ]: Loading ~/.dbt/profiles.yml
+02:35:37.635508 [info ]: Loading ~/.dbt/profiles.yml
+02:35:37.638048 [info ]: Loading ~/.dbt/profiles.yml
diff --git a/target/graph.gpickle b/target/graph.gpickle
new file mode 100644
index 0000000..fd8576b
Binary files /dev/null and b/target/graph.gpickle differ
diff --git a/target/graph_summary.json b/target/graph_summary.json
new file mode 100644
index 0000000..8092c47
--- /dev/null
+++ b/target/graph_summary.json
@@ -0,0 +1 @@
+{"_invocation_id": "4b7dfad9-8a8f-4544-b80b-a3a9d85ef979", "linked": {"0": {"name": "source.dbt_analytics_engineering.bronze.customers", "type": "source", "succ": [12]}, "1": {"name": "source.dbt_analytics_engineering.bronze.employees", "type": "source", "succ": [13]}, "2": {"name": "source.dbt_analytics_engineering.bronze.inventory_snapshots", "type": "source", "succ": [11]}, "3": {"name": "source.dbt_analytics_engineering.bronze.products", "type": "source", "succ": [9]}, "4": {"name": "source.dbt_analytics_engineering.bronze.returns", "type": "source", "succ": [15]}, "5": {"name": "source.dbt_analytics_engineering.bronze.reviews", "type": "source", "succ": [10]}, "6": {"name": "source.dbt_analytics_engineering.bronze.sales_transactions", "type": "source", "succ": [14]}, "7": {"name": "source.dbt_analytics_engineering.bronze.stores", "type": "source", "succ": [8]}, "8": {"name": "model.dbt_analytics_engineering.stg_stores", "type": "model", "succ": [36, 37, 67, 68, 69]}, "9": {"name": "model.dbt_analytics_engineering.stg_products", "type": "model", "succ": [16, 17, 29, 30, 31, 81, 80]}, "10": {"name": "model.dbt_analytics_engineering.stg_reviews", "type": "model", "succ": [34, 35, 54, 94, 164]}, "11": {"name": "model.dbt_analytics_engineering.stg_inventory", "type": "model", "succ": [18, 19, 25, 26, 27, 28, 85]}, "12": {"name": "model.dbt_analytics_engineering.stg_customers", "type": "model", "succ": [21, 22, 89, 91, 87, 90]}, "13": {"name": "model.dbt_analytics_engineering.stg_employees", "type": "model", "succ": [23, 24, 71, 72, 73]}, "14": {"name": "model.dbt_analytics_engineering.stg_transactions", "type": "model", "succ": [38, 39, 40, 58, 191, 192, 216]}, "15": {"name": "model.dbt_analytics_engineering.stg_returns", "type": "model", "succ": [20, 32, 33, 162, 163]}, "16": {"name": "model.dbt_analytics_engineering.int_product_pricing", "type": "model", "succ": [46, 47, 79]}, "17": {"name": "model.dbt_analytics_engineering.int_product_supplier", "type": "model", "succ": [48, 49, 79]}, "18": {"name": "model.dbt_analytics_engineering.int_inventory_stock", "type": "model", "succ": [41, 42]}, "19": {"name": "model.dbt_analytics_engineering.int_inventory_valuation", "type": "model", "succ": [43, 44, 45, 84]}, "20": {"name": "model.dbt_analytics_engineering.int_return_refund", "type": "model", "succ": [50, 51, 52, 53]}, "21": {"name": "test.dbt_analytics_engineering.unique_stg_customers_customer_id.c7614daada", "type": "test"}, "22": {"name": "test.dbt_analytics_engineering.not_null_stg_customers_customer_id.e2cfb1f9aa", "type": "test"}, "23": {"name": "test.dbt_analytics_engineering.unique_stg_employees_employee_id.db72478d64", "type": "test"}, "24": {"name": "test.dbt_analytics_engineering.not_null_stg_employees_employee_id.7f6f73d15b", "type": "test"}, "25": {"name": "test.dbt_analytics_engineering.unique_stg_inventory_inventory_snapshot_sk.424f04d53c", "type": "test"}, "26": {"name": "test.dbt_analytics_engineering.not_null_stg_inventory_inventory_snapshot_sk.54b4a35ec9", "type": "test"}, "27": {"name": "test.dbt_analytics_engineering.not_null_stg_inventory_snapshot_date.f47349bb98", "type": "test"}, "28": {"name": "test.dbt_analytics_engineering.not_null_stg_inventory_product_id.065830936a", "type": "test"}, "29": {"name": "test.dbt_analytics_engineering.not_null_stg_products_product_id.6373b0acf3", "type": "test"}, "30": {"name": "test.dbt_analytics_engineering.unique_stg_products_product_id.7d950a1467", "type": "test"}, "31": {"name": "test.dbt_analytics_engineering.not_null_stg_products_sku.a9d39174ce", "type": "test"}, "32": {"name": "test.dbt_analytics_engineering.unique_stg_returns_return_id.c2232dee8a", "type": "test"}, "33": {"name": "test.dbt_analytics_engineering.not_null_stg_returns_return_id.8e8e7cd8be", "type": "test"}, "34": {"name": "test.dbt_analytics_engineering.unique_stg_reviews_review_id.9b6c259f3c", "type": "test"}, "35": {"name": "test.dbt_analytics_engineering.not_null_stg_reviews_review_id.943b8fc3e4", "type": "test"}, "36": {"name": "test.dbt_analytics_engineering.unique_stg_stores_store_id.2e80d074c2", "type": "test"}, "37": {"name": "test.dbt_analytics_engineering.not_null_stg_stores_store_id.ebecf07ec6", "type": "test"}, "38": {"name": "test.dbt_analytics_engineering.unique_stg_transactions_transaction_id.ee9a78a396", "type": "test"}, "39": {"name": "test.dbt_analytics_engineering.not_null_stg_transactions_transaction_id.1d00a8e2e4", "type": "test"}, "40": {"name": "test.dbt_analytics_engineering.not_null_stg_transactions_order_line_number.abd883623b", "type": "test"}, "41": {"name": "test.dbt_analytics_engineering.unique_int_inventory_stock_inventory_snapshot_sk.9d7117fc4c", "type": "test"}, "42": {"name": "test.dbt_analytics_engineering.not_null_int_inventory_stock_inventory_snapshot_sk.ff913462e4", "type": "test"}, "43": {"name": "test.dbt_analytics_engineering.unique_int_inventory_valuation_inventory_snapshot_sk.2d586ef9af", "type": "test"}, "44": {"name": "test.dbt_analytics_engineering.not_null_int_inventory_valuation_inventory_snapshot_sk.036a80c28a", "type": "test"}, "45": {"name": "test.dbt_analytics_engineering.not_null_int_inventory_valuation_warehouse_location.835673fed9", "type": "test"}, "46": {"name": "test.dbt_analytics_engineering.unique_int_product_pricing_product_id.1ba68cde3a", "type": "test"}, "47": {"name": "test.dbt_analytics_engineering.not_null_int_product_pricing_product_id.fadb03a63d", "type": "test"}, "48": {"name": "test.dbt_analytics_engineering.unique_int_product_supplier_product_id.3e37319263", "type": "test"}, "49": {"name": "test.dbt_analytics_engineering.not_null_int_product_supplier_product_id.19984a84be", "type": "test"}, "50": {"name": "test.dbt_analytics_engineering.unique_int_return_refund_return_id.1904e0149a", "type": "test"}, "51": {"name": "test.dbt_analytics_engineering.not_null_int_return_refund_return_id.0a7f23f19b", "type": "test"}, "52": {"name": "test.dbt_analytics_engineering.not_null_int_return_refund_refund_method.83f1b9cc4e", "type": "test"}, "53": {"name": "test.dbt_analytics_engineering.accepted_values_int_return_refund_refund_method__Cash__Original_Payment__Store_Credit.c4762af53a", "type": "test"}, "54": {"name": "model.dbt_analytics_engineering.int_review_rating", "type": "model", "succ": [55, 56, 57]}, "55": {"name": "test.dbt_analytics_engineering.unique_int_review_rating_review_id.fb244f2642", "type": "test"}, "56": {"name": "test.dbt_analytics_engineering.not_null_int_review_rating_review_id.c8fa2eb4d0", "type": "test"}, "57": {"name": "test.dbt_analytics_engineering.accepted_values_int_review_rating_rating__1__2__3__4__5.fa6071f8df", "type": "test"}, "58": {"name": "model.dbt_analytics_engineering.int_transaction_order", "type": "model", "succ": [59, 60, 61, 62, 63, 64, 65]}, "59": {"name": "test.dbt_analytics_engineering.unique_int_transaction_order_transaction_id.7ef27eea80", "type": "test"}, "60": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_order_transaction_id.ce8ae051e2", "type": "test"}, "61": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_order_order_id.402e3d5af3", "type": "test"}, "62": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_order_customer_id.ad17338ea9", "type": "test"}, "63": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_order_product_id.e1c83e6b81", "type": "test"}, "64": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_order_store_id.a5a31f4088", "type": "test"}, "65": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_order_employee_id.12d68f00f2", "type": "test"}, "66": {"name": "model.dbt_analytics_engineering.dim_stores", "type": "model", "succ": [76, 77, 78]}, "67": {"name": "model.dbt_analytics_engineering.int_store_profile", "type": "model", "succ": [66, 106, 107, 108, 109, 110, 132]}, "68": {"name": "model.dbt_analytics_engineering.int_store_location", "type": "model", "succ": [66, 111, 112, 113, 114, 115, 116, 117, 118]}, "69": {"name": "model.dbt_analytics_engineering.int_store_operations", "type": "model", "succ": [66, 183, 184, 185, 186, 187, 188, 189, 190]}, "70": {"name": "model.dbt_analytics_engineering.dim_employees", "type": "model", "succ": [74, 75]}, "71": {"name": "model.dbt_analytics_engineering.int_employee_profile", "type": "model", "succ": [70, 95, 96, 97, 98, 99]}, "72": {"name": "model.dbt_analytics_engineering.int_employee_contact", "type": "model", "succ": [70, 119, 120, 121, 122]}, "73": {"name": "model.dbt_analytics_engineering.int_employee_employment", "type": "model", "succ": [70, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139]}, "74": {"name": "test.dbt_analytics_engineering.unique_dim_employees_employee_id.79828c8f30", "type": "test"}, "75": {"name": "test.dbt_analytics_engineering.not_null_dim_employees_employee_id.ef83a0c291", "type": "test"}, "76": {"name": "test.dbt_analytics_engineering.unique_dim_stores_store_id.0479724a85", "type": "test"}, "77": {"name": "test.dbt_analytics_engineering.not_null_dim_stores_store_id.e93781bc63", "type": "test"}, "78": {"name": "test.dbt_analytics_engineering.accepted_values_dim_stores_is_active__True__False__Unknown.35f5206575", "type": "test"}, "79": {"name": "model.dbt_analytics_engineering.dim_products", "type": "model", "succ": [82, 83]}, "80": {"name": "model.dbt_analytics_engineering.int_product_attributes", "type": "model", "succ": [79, 144, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161]}, "81": {"name": "model.dbt_analytics_engineering.int_product_inventory", "type": "model", "succ": [79, 123, 124, 125]}, "82": {"name": "test.dbt_analytics_engineering.unique_dim_products_product_id.ef7b2a9985", "type": "test"}, "83": {"name": "test.dbt_analytics_engineering.not_null_dim_products_product_id.c8aba288d1", "type": "test"}, "84": {"name": "model.dbt_analytics_engineering.dim_inventory", "type": "model"}, "85": {"name": "model.dbt_analytics_engineering.int_inventory_product", "type": "model", "succ": [84, 140, 141, 142, 143, 144, 145, 146, 147, 148]}, "86": {"name": "test.dbt_analytics_engineering.valid_zip_code", "type": "test"}, "87": {"name": "model.dbt_analytics_engineering.int_customer_location", "type": "model", "succ": [86, 88, 202, 203, 204, 205, 206, 207, 208, 209, 210]}, "88": {"name": "model.dbt_analytics_engineering.dim_customers", "type": "model", "succ": [92, 93]}, "89": {"name": "model.dbt_analytics_engineering.int_customer_profile", "type": "model", "succ": [88, 193, 194, 195, 196]}, "90": {"name": "model.dbt_analytics_engineering.int_customers_contact", "type": "model", "succ": [88, 224, 225, 226, 227]}, "91": {"name": "model.dbt_analytics_engineering.int_customer_segmentation", "type": "model", "succ": [88, 197, 198, 199, 200, 201]}, "92": {"name": "test.dbt_analytics_engineering.unique_dim_customers_customer_id.15c9f1e2fd", "type": "test"}, "93": {"name": "test.dbt_analytics_engineering.not_null_dim_customers_customer_id.dd91cd1c8d", "type": "test"}, "94": {"name": "model.dbt_analytics_engineering.int_review_transaction", "type": "model", "succ": [100, 101, 102, 103, 104, 105]}, "95": {"name": "test.dbt_analytics_engineering.unique_int_employee_profile_employee_id.a5993c7dd6", "type": "test"}, "96": {"name": "test.dbt_analytics_engineering.not_null_int_employee_profile_employee_id.b0a9f39539", "type": "test"}, "97": {"name": "test.dbt_analytics_engineering.not_null_int_employee_profile_first_name.1ecad5e479", "type": "test"}, "98": {"name": "test.dbt_analytics_engineering.not_null_int_employee_profile_last_name.580f17b21c", "type": "test"}, "99": {"name": "test.dbt_analytics_engineering.not_null_int_employee_profile_hire_date.7ee99bcf22", "type": "test"}, "100": {"name": "test.dbt_analytics_engineering.unique_int_review_transaction_review_id.ace040f037", "type": "test"}, "101": {"name": "test.dbt_analytics_engineering.not_null_int_review_transaction_review_id.36ac118ba9", "type": "test"}, "102": {"name": "test.dbt_analytics_engineering.not_null_int_review_transaction_txn_id.b153953529", "type": "test"}, "103": {"name": "test.dbt_analytics_engineering.not_null_int_review_transaction_customer_id.296d834f24", "type": "test"}, "104": {"name": "test.dbt_analytics_engineering.not_null_int_review_transaction_product_id.980062fb89", "type": "test"}, "105": {"name": "test.dbt_analytics_engineering.not_null_int_review_transaction_review_date.2e4911b1c8", "type": "test"}, "106": {"name": "test.dbt_analytics_engineering.unique_int_store_profile_store_id.d293596622", "type": "test"}, "107": {"name": "test.dbt_analytics_engineering.not_null_int_store_profile_store_id.bb3e17dcc3", "type": "test"}, "108": {"name": "test.dbt_analytics_engineering.not_null_int_store_profile_manager_name.7e1eb48b5b", "type": "test"}, "109": {"name": "test.dbt_analytics_engineering.not_null_int_store_profile_store_name.440ba3db70", "type": "test"}, "110": {"name": "test.dbt_analytics_engineering.not_null_int_store_profile_store_type.1533baa047", "type": "test"}, "111": {"name": "test.dbt_analytics_engineering.unique_int_store_location_store_id.708c011d5e", "type": "test"}, "112": {"name": "test.dbt_analytics_engineering.not_null_int_store_location_store_id.1a1692bb1e", "type": "test"}, "113": {"name": "test.dbt_analytics_engineering.not_null_int_store_location_address.0ce7c5738d", "type": "test"}, "114": {"name": "test.dbt_analytics_engineering.not_null_int_store_location_city.52cb5206b2", "type": "test"}, "115": {"name": "test.dbt_analytics_engineering.not_null_int_store_location_country.bf81137315", "type": "test"}, "116": {"name": "test.dbt_analytics_engineering.not_null_int_store_location_region.10b1faa762", "type": "test"}, "117": {"name": "test.dbt_analytics_engineering.not_null_int_store_location_district.29150f3093", "type": "test"}, "118": {"name": "test.dbt_analytics_engineering.not_null_int_store_location_phone.2b5ee0a89d", "type": "test"}, "119": {"name": "test.dbt_analytics_engineering.unique_int_employee_contact_employee_id.062a8592c6", "type": "test"}, "120": {"name": "test.dbt_analytics_engineering.not_null_int_employee_contact_employee_id.6831e85930", "type": "test"}, "121": {"name": "test.dbt_analytics_engineering.not_null_int_employee_contact_email.e8efeefd4a", "type": "test"}, "122": {"name": "test.dbt_analytics_engineering.not_null_int_employee_contact_phone.7457f56eb1", "type": "test"}, "123": {"name": "test.dbt_analytics_engineering.unique_int_product_inventory_product_id.732744fd20", "type": "test"}, "124": {"name": "test.dbt_analytics_engineering.not_null_int_product_inventory_product_id.9b12ada6b4", "type": "test"}, "125": {"name": "test.dbt_analytics_engineering.accepted_values_int_product_inventory_is_available__Available__Not_Available__Discontinued__Unknown.6fb8d64f81", "type": "test"}, "126": {"name": "test.dbt_analytics_engineering.unique_int_employee_employment_employee_id.349cd9d024", "type": "test"}, "127": {"name": "test.dbt_analytics_engineering.not_null_int_employee_employment_employee_id.4b317cafdf", "type": "test"}, "128": {"name": "test.dbt_analytics_engineering.not_null_int_employee_employment_job_title.6b190a9a12", "type": "test"}, "129": {"name": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_job_title__Account_Executive__Customer_Advisor__Regional_Manager__Sales_Associate__Sales_Consultant__Sales_Manager__Sales_Representative__Senior_Sales_Associate__Store_Manager.5a26b81538", "type": "test"}, "130": {"name": "test.dbt_analytics_engineering.not_null_int_employee_employment_department.7be8a16615", "type": "test"}, "131": {"name": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_department__Customer_Service__Management__Operations__Sales__Unknown.a347d6218f", "type": "test"}, "132": {"name": "test.dbt_analytics_engineering.relationships_int_employee_employment_store_id__store_id__ref_int_store_profile_.1941f5b907", "type": "test"}, "133": {"name": "test.dbt_analytics_engineering.not_null_int_employee_employment_store_name.f651f514ac", "type": "test"}, "134": {"name": "test.dbt_analytics_engineering.not_null_int_employee_employment_store_city.6cc8b5a1a2", "type": "test"}, "135": {"name": "test.dbt_analytics_engineering.not_null_int_employee_employment_annual_salary_usd.5061dbe7e6", "type": "test"}, "136": {"name": "test.dbt_analytics_engineering.not_null_int_employee_employment_commission_rate_pct.35495fa9d9", "type": "test"}, "137": {"name": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_performance_rating__Excellent__Good__Average__Below_Average__Unknown.3755c7561e", "type": "test"}, "138": {"name": "test.dbt_analytics_engineering.not_null_int_employee_employment_is_active.cc4cfb1aec", "type": "test"}, "139": {"name": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_is_active__True__False.7b923c6da0", "type": "test"}, "140": {"name": "test.dbt_analytics_engineering.unique_int_inventory_product_inventory_snapshot_sk.08e50afdaf", "type": "test"}, "141": {"name": "test.dbt_analytics_engineering.not_null_int_inventory_product_inventory_snapshot_sk.9c74fa15eb", "type": "test"}, "142": {"name": "test.dbt_analytics_engineering.not_null_int_inventory_product_snapshot_date.f7776ecf58", "type": "test"}, "143": {"name": "test.dbt_analytics_engineering.not_null_int_inventory_product_product_id.b039ccc8f4", "type": "test"}, "144": {"name": "test.dbt_analytics_engineering.relationships_int_inventory_product_product_id__product_id__ref_int_product_attributes_.96b32ae525", "type": "test"}, "145": {"name": "test.dbt_analytics_engineering.not_null_int_inventory_product_product_name.b1cc316d19", "type": "test"}, "146": {"name": "test.dbt_analytics_engineering.not_null_int_inventory_product_sku.38fee3ca77", "type": "test"}, "147": {"name": "test.dbt_analytics_engineering.not_null_int_inventory_product_category.3b4559e898", "type": "test"}, "148": {"name": "test.dbt_analytics_engineering.accepted_values_int_inventory_product_category__Electronics__Clothing__Kitchen__Office__Sports__Health__Beauty__Footwear__Toys__Bags__Unknown.fd70912290", "type": "test"}, "149": {"name": "test.dbt_analytics_engineering.unique_int_product_attributes_product_id.8584b57f27", "type": "test"}, "150": {"name": "test.dbt_analytics_engineering.not_null_int_product_attributes_product_id.d317fe9f5c", "type": "test"}, "151": {"name": "test.dbt_analytics_engineering.unique_int_product_attributes_sku.46fd7012d5", "type": "test"}, "152": {"name": "test.dbt_analytics_engineering.not_null_int_product_attributes_sku.4d167f66ec", "type": "test"}, "153": {"name": "test.dbt_analytics_engineering.unique_int_product_attributes_product_name.ccc7fc48bd", "type": "test"}, "154": {"name": "test.dbt_analytics_engineering.not_null_int_product_attributes_product_name.ab95611d88", "type": "test"}, "155": {"name": "test.dbt_analytics_engineering.not_null_int_product_attributes_brand.c1dd65709d", "type": "test"}, "156": {"name": "test.dbt_analytics_engineering.not_null_int_product_attributes_category.39f4905b43", "type": "test"}, "157": {"name": "test.dbt_analytics_engineering.accepted_values_int_product_attributes_category__Bags__Beauty__Clothing__Electronics__Footwear__Health__Kitchen__Office__Sports__Toys.07ebbdc1f6", "type": "test"}, "158": {"name": "test.dbt_analytics_engineering.not_null_int_product_attributes_sub_category.ec1e5bef03", "type": "test"}, "159": {"name": "test.dbt_analytics_engineering.not_null_int_product_attributes_department.fad95d1e4c", "type": "test"}, "160": {"name": "test.dbt_analytics_engineering.accepted_values_int_product_attributes_department__Apparel_Sports__Books_Office__Fitness_Outdoors__Health_Beauty__Home_Garden__Technology__Toys_Games.2b64b418f6", "type": "test"}, "161": {"name": "test.dbt_analytics_engineering.not_null_int_product_attributes_launched_date.7175feb482", "type": "test"}, "162": {"name": "model.dbt_analytics_engineering.int_return_processing", "type": "model", "succ": [165, 166, 167, 168, 169, 170, 171, 172]}, "163": {"name": "model.dbt_analytics_engineering.int_return_transaction", "type": "model", "succ": [173, 174, 175, 176, 177]}, "164": {"name": "model.dbt_analytics_engineering.int_review_feedback", "type": "model", "succ": [178, 179, 180, 181, 182]}, "165": {"name": "test.dbt_analytics_engineering.unique_int_return_processing_return_id.7f07242ef7", "type": "test"}, "166": {"name": "test.dbt_analytics_engineering.not_null_int_return_processing_return_id.70a41fc821", "type": "test"}, "167": {"name": "test.dbt_analytics_engineering.not_null_int_return_processing_return_reason.def074cf28", "type": "test"}, "168": {"name": "test.dbt_analytics_engineering.not_null_int_return_processing_return_channel.4e70d8cedb", "type": "test"}, "169": {"name": "test.dbt_analytics_engineering.accepted_values_int_return_processing_return_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.5fccc869d9", "type": "test"}, "170": {"name": "test.dbt_analytics_engineering.not_null_int_return_processing_restocked.a169aa3d70", "type": "test"}, "171": {"name": "test.dbt_analytics_engineering.accepted_values_int_return_processing_restocked__Yes__No__Unknown.bcf59a1e1f", "type": "test"}, "172": {"name": "test.dbt_analytics_engineering.not_null_int_return_processing_return_status.6d8d37f1d3", "type": "test"}, "173": {"name": "test.dbt_analytics_engineering.unique_int_return_transaction_return_id.28ded58b95", "type": "test"}, "174": {"name": "test.dbt_analytics_engineering.not_null_int_return_transaction_return_id.163631358b", "type": "test"}, "175": {"name": "test.dbt_analytics_engineering.not_null_int_return_transaction_customer_name.da820b6e0e", "type": "test"}, "176": {"name": "test.dbt_analytics_engineering.not_null_int_return_transaction_product_name.973039b798", "type": "test"}, "177": {"name": "test.dbt_analytics_engineering.not_null_int_return_transaction_return_date.0ceaab3215", "type": "test"}, "178": {"name": "test.dbt_analytics_engineering.unique_int_review_feedback_review_id.abd37c25ad", "type": "test"}, "179": {"name": "test.dbt_analytics_engineering.not_null_int_review_feedback_review_id.7319c6feb3", "type": "test"}, "180": {"name": "test.dbt_analytics_engineering.not_null_int_review_feedback_review_channel.e637eee1d6", "type": "test"}, "181": {"name": "test.dbt_analytics_engineering.accepted_values_int_review_feedback_review_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.e21453d669", "type": "test"}, "182": {"name": "test.dbt_analytics_engineering.not_null_int_review_feedback_review_title.4b5134c5ca", "type": "test"}, "183": {"name": "test.dbt_analytics_engineering.unique_int_store_operations_store_id.2018d3ff75", "type": "test"}, "184": {"name": "test.dbt_analytics_engineering.not_null_int_store_operations_store_id.4e3985d8f2", "type": "test"}, "185": {"name": "test.dbt_analytics_engineering.not_null_int_store_operations_is_active.b4ed4559d5", "type": "test"}, "186": {"name": "test.dbt_analytics_engineering.accepted_values_int_store_operations_is_active__True__False__Unknown.298394908a", "type": "test"}, "187": {"name": "test.dbt_analytics_engineering.not_null_int_store_operations_has_parking.94fffde25b", "type": "test"}, "188": {"name": "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_parking__True__False__Unknown.3728409db2", "type": "test"}, "189": {"name": "test.dbt_analytics_engineering.not_null_int_store_operations_has_cafe.6ebade018d", "type": "test"}, "190": {"name": "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_cafe__True__False__Unknown.b02c35a29d", "type": "test"}, "191": {"name": "model.dbt_analytics_engineering.int_transaction_fulfillment", "type": "model", "succ": [211, 212, 213]}, "192": {"name": "model.dbt_analytics_engineering.int_transaction_financial", "type": "model", "succ": [214, 215]}, "193": {"name": "test.dbt_analytics_engineering.not_null_int_customer_profile_first_name.601ca24c11", "type": "test"}, "194": {"name": "test.dbt_analytics_engineering.not_null_int_customer_profile_last_name.406eccd58c", "type": "test"}, "195": {"name": "test.dbt_analytics_engineering.not_null_int_customer_profile_gender.f510f79209", "type": "test"}, "196": {"name": "test.dbt_analytics_engineering.accepted_values_int_customer_profile_gender__Male__Female__Non_Binary__Other__Unknown.68b6d3ed48", "type": "test"}, "197": {"name": "test.dbt_analytics_engineering.not_null_int_customer_segmentation_customer_segment.491592cc63", "type": "test"}, "198": {"name": "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_customer_segment__Bronze__Silver__Gold__Platinum__Unknown.08c611db09", "type": "test"}, "199": {"name": "test.dbt_analytics_engineering.not_null_int_customer_segmentation_company.828a751ca9", "type": "test"}, "200": {"name": "test.dbt_analytics_engineering.not_null_int_customer_segmentation_is_active.6eae5bb04d", "type": "test"}, "201": {"name": "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_is_active__True__False__Unknown.a740e8b8b9", "type": "test"}, "202": {"name": "test.dbt_analytics_engineering.not_null_int_customer_location_address.0477470aa5", "type": "test"}, "203": {"name": "test.dbt_analytics_engineering.not_null_int_customer_location_city.8e1a6a4cee", "type": "test"}, "204": {"name": "test.dbt_analytics_engineering.not_null_int_customer_location_state_abbr.15ac178793", "type": "test"}, "205": {"name": "test.dbt_analytics_engineering.not_null_int_customer_location_state.f7b75af023", "type": "test"}, "206": {"name": "test.dbt_analytics_engineering.not_null_int_customer_location_zip_code.a7263a9e3a", "type": "test"}, "207": {"name": "test.dbt_analytics_engineering.not_null_int_customer_location_country.39087bf4f2", "type": "test"}, "208": {"name": "test.dbt_analytics_engineering.accepted_values_int_customer_location_country__United_States__Unknown.86cb2451d3", "type": "test"}, "209": {"name": "test.dbt_analytics_engineering.not_null_int_customer_location_region.bb382037e2", "type": "test"}, "210": {"name": "test.dbt_analytics_engineering.accepted_values_int_customer_location_region__Midwest__Northeast__South__West.941ae25bfa", "type": "test"}, "211": {"name": "test.dbt_analytics_engineering.unique_int_transaction_fulfillment_transaction_id.19535076ac", "type": "test"}, "212": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_transaction_id.6074867dc7", "type": "test"}, "213": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_order_date.2248138cc0", "type": "test"}, "214": {"name": "test.dbt_analytics_engineering.unique_int_transaction_financial_transaction_id.9f42b7645d", "type": "test"}, "215": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_financial_transaction_id.b0c6238393", "type": "test"}, "216": {"name": "model.dbt_analytics_engineering.int_transaction_status", "type": "model", "succ": [217, 218, 219, 220, 221, 222, 223]}, "217": {"name": "test.dbt_analytics_engineering.unique_int_transaction_status_transaction_id.5a928112d7", "type": "test"}, "218": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_status_transaction_id.307f36c18d", "type": "test"}, "219": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_status_promo_name.73af556bae", "type": "test"}, "220": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_status_order_status.e2edc43658", "type": "test"}, "221": {"name": "test.dbt_analytics_engineering.accepted_values_int_transaction_status_order_status__Pending__Processing__Shipped__Delivered__Returned__Cancelled.d3263719c7", "type": "test"}, "222": {"name": "test.dbt_analytics_engineering.not_null_int_transaction_status_is_returned.68242f5dfd", "type": "test"}, "223": {"name": "test.dbt_analytics_engineering.accepted_values_int_transaction_status_is_returned__True__False__Unknown.fcbf6be4ad", "type": "test"}, "224": {"name": "test.dbt_analytics_engineering.not_null_int_customers_contact_email.7b842fa5e7", "type": "test"}, "225": {"name": "test.dbt_analytics_engineering.not_null_int_customers_contact_phone.fe6527d505", "type": "test"}, "226": {"name": "test.dbt_analytics_engineering.not_null_int_customers_contact_preferred_channel.ab818846a7", "type": "test"}, "227": {"name": "test.dbt_analytics_engineering.accepted_values_int_customers_contact_preferred_channel__Mobile_App__In_Store__Catalog__Website__Phone_Call__Unknown.1735c0ec9c", "type": "test"}}}
\ No newline at end of file
diff --git a/target/index.html b/target/index.html
new file mode 100644
index 0000000..7b26446
--- /dev/null
+++ b/target/index.html
@@ -0,0 +1,3 @@
+
dbt Docs
diff --git a/target/manifest.json b/target/manifest.json
new file mode 100644
index 0000000..9262cdc
--- /dev/null
+++ b/target/manifest.json
@@ -0,0 +1 @@
+{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v12.json", "dbt_version": "1.11.11", "generated_at": "2026-09-27T03:59:09.276346Z", "invocation_id": "4b7dfad9-8a8f-4544-b80b-a3a9d85ef979", "invocation_started_at": "2026-06-24T02:58:38.606710+00:00", "env": {}, "project_name": "dbt_analytics_engineering", "project_id": "da4e22192264a6e6394d2d9d2cc64911", "user_id": "0afda76d-cecc-476b-a492-9f57a9a3dfb6", "send_anonymous_usage_stats": true, "adapter_type": "sqlserver", "quoting": {"database": true, "schema": true, "identifier": true, "column": null}, "run_started_at": "2026-06-24T02:58:38.607159+00:00"}, "nodes": {"model.dbt_analytics_engineering.stg_stores": {"database": "RetailDB", "schema": "bronze", "name": "stg_stores", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "staging/Stores/stg_stores.sql", "original_file_path": "models/staging/Stores/stg_stores.sql", "unique_id": "model.dbt_analytics_engineering.stg_stores", "fqn": ["dbt_analytics_engineering", "staging", "Stores", "stg_stores"], "alias": "stg_stores", "checksum": {"name": "sha256", "checksum": "d591932013c7888386e36c7f4c42ac376c5d4f8f6cbd82b660d4c3ea5b7b68b3"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["staging", "bronze"], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["staging", "bronze"], "description": "Raw retail store dataset containing location, operational, and infrastructure\nattributes. Profiling identified inconsistent state representations, malformed\nphone numbers, invalid ZIP codes and heterogeneous boolean encodings for\noperational flags. The staging model preserves source attributes while\nenabling store-level standardization.\n", "columns": {"store_id": {"name": "store_id", "description": "Unique store identifier used as the primary key for store-level joins and\noperational reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "store_name": {"name": "store_name", "description": "Store display name. Profiling applied title-case normalization and minimum\nlength checks to remove malformed values.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "state": {"name": "state", "description": "Raw state attribute from the store source feed. Profiling found mixed\nfull-name and abbreviated values; downstream transformations produce\n`state`-normalized columns (`state_full`, `state_abbr`) for analytical use.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "zip_code": {"name": "zip_code", "description": "Store ZIP/postal code. Profiling identified non-numeric values and\ninvalid lengths; numeric validation and length checks are applied during\nstandardization.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/staging/_stg__retail__models.yml", "build_path": null, "unrendered_config": {"materialized": "view", "tags": ["staging", "bronze"]}, "created_at": 1782269923.1466022, "relation_name": "\"RetailDB\".\"bronze\".\"stg_stores\"", "raw_code": "SELECT \n store_id\n ,store_name\n ,store_type\n ,address\n ,city\n ,state\n ,state_full\n ,zip_code\n ,country\n ,region\n ,district\n ,phone\n ,manager_name\n ,opened_date\n ,sq_footage\n ,num_employees\n ,annual_rent_usd\n ,is_active\n ,has_parking\n ,has_cafe\nFROM {{ source('bronze', 'stores') }} ;", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["bronze", "stores"]], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["source.dbt_analytics_engineering.bronze.stores"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/Stores/stg_stores.sql", "compiled": true, "compiled_code": "SELECT \n store_id\n ,store_name\n ,store_type\n ,address\n ,city\n ,state\n ,state_full\n ,zip_code\n ,country\n ,region\n ,district\n ,phone\n ,manager_name\n ,opened_date\n ,sq_footage\n ,num_employees\n ,annual_rent_usd\n ,is_active\n ,has_parking\n ,has_cafe\nFROM \"RetailDB\".\"bronze\".\"stores\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["store_id"], "time_spine": null}, "model.dbt_analytics_engineering.stg_products": {"database": "RetailDB", "schema": "bronze", "name": "stg_products", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "staging/Products/stg_products.sql", "original_file_path": "models/staging/Products/stg_products.sql", "unique_id": "model.dbt_analytics_engineering.stg_products", "fqn": ["dbt_analytics_engineering", "staging", "Products", "stg_products"], "alias": "stg_products", "checksum": {"name": "sha256", "checksum": "b6baa93703b105a7fa502bc5d6d4e0f7bf4901897415d38fc277c6a499b03e9e"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["staging", "bronze"], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["staging", "bronze"], "description": "Raw product master dataset as ingested into the Bronze layer. Profiling\nfound malformed product identifiers, inconsistent SKU casing and formats,\nmixed pricing representations, and variable availability encodings. This\nstaging model preserves source attributes while applying light structural\nnormalization to enable downstream product standardization.\n", "columns": {"product_id": {"name": "product_id", "description": "Unique product-level business identifier. Profiling identified malformed\nand non-numeric product_id values; defensive integer conversion is\nrecommended. This field is expected to be the primary business key for\nproduct-level joins.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "sku": {"name": "sku", "description": "Stock-keeping unit identifier. Source SKUs may contain inconsistent casing,\nleading/trailing whitespace, and variable lengths. Upstream profiling\nnormalized SKUs to uppercase and trimmed patterns to improve joinability.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_name": {"name": "product_name", "description": "Standardized product name after title-case normalization and whitespace\ncleanup. Source product names exhibited inconsistent formatting and\npartial truncation.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "base_price_usd": {"name": "base_price_usd", "description": "Base selling price expressed in USD. Profiling identified currency symbols,\nthousands separators, negative values and malformed decimals; defensive\nnumeric parsing was applied downstream.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "cost_price_usd": {"name": "cost_price_usd", "description": "Product cost price in USD. Used for margin analysis; profiling flagged\nmismatches versus transaction-level cost references. Consumers should\nreconcile with silver-level product pricing where available.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_available": {"name": "is_available", "description": "Inventory / availability indicator sourced from product feeds. Profiling\nconsolidated numerous availability encodings into a small set of\ncanonical values (Available / Not Available / Discontinued / Unknown).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/staging/_stg__retail__models.yml", "build_path": null, "unrendered_config": {"materialized": "view", "tags": ["staging", "bronze"]}, "created_at": 1782269923.1386385, "relation_name": "\"RetailDB\".\"bronze\".\"stg_products\"", "raw_code": "SELECT \n product_id\n ,sku\n ,product_name\n ,brand\n ,category\n ,sub_category\n ,department\n ,base_price_usd\n ,cost_price_usd\n ,gross_margin_pct\n ,weight_kg\n ,is_available\n ,stock_quantity\n ,reorder_level\n ,supplier_name\n ,supplier_country\n ,warranty_years\n ,rating_avg\n ,review_count\n ,launched_date\n ,product_url\nFROM {{ source('bronze', 'products') }} ;", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["bronze", "products"]], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["source.dbt_analytics_engineering.bronze.products"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/Products/stg_products.sql", "compiled": true, "compiled_code": "SELECT \n product_id\n ,sku\n ,product_name\n ,brand\n ,category\n ,sub_category\n ,department\n ,base_price_usd\n ,cost_price_usd\n ,gross_margin_pct\n ,weight_kg\n ,is_available\n ,stock_quantity\n ,reorder_level\n ,supplier_name\n ,supplier_country\n ,warranty_years\n ,rating_avg\n ,review_count\n ,launched_date\n ,product_url\nFROM \"RetailDB\".\"bronze\".\"products\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["product_id"], "time_spine": null}, "model.dbt_analytics_engineering.stg_reviews": {"database": "RetailDB", "schema": "bronze", "name": "stg_reviews", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "staging/Reviews/stg_reviews.sql", "original_file_path": "models/staging/Reviews/stg_reviews.sql", "unique_id": "model.dbt_analytics_engineering.stg_reviews", "fqn": ["dbt_analytics_engineering", "staging", "Reviews", "stg_reviews"], "alias": "stg_reviews", "checksum": {"name": "sha256", "checksum": "f485f526d81c5afdaa647b334724c59f910568968ae9088faf46a9f9b9b41543"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["staging", "bronze"], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["staging", "bronze"], "description": "Raw customer review dataset containing ratings, review text, and engagement\nmetrics. Profiling found inconsistent rating encodings, malformed dates,\nmixed verification indicators and duplicate review identifiers which must\nbe handled downstream.\n", "columns": {"review_id": {"name": "review_id", "description": "Unique review identifier. Profiling detected duplicates and structural\nanomalies; deduplication and structural validation are required downstream.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "rating": {"name": "rating", "description": "Numeric customer rating. Profiling determined the accepted business range\nis 1 through 5; values outside this range were nullified or flagged.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "verified_purchase": {"name": "verified_purchase", "description": "Purchase verification indicator (raw). Profiling normalized multiple\nboolean-like encodings ('1','0','yes','no','verified') into canonical\nvalues; downstream layers perform the mapping to 'Verified' / 'Not Verified' / 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/staging/_stg__retail__models.yml", "build_path": null, "unrendered_config": {"materialized": "view", "tags": ["staging", "bronze"]}, "created_at": 1782269923.144531, "relation_name": "\"RetailDB\".\"bronze\".\"stg_reviews\"", "raw_code": "SELECT\n review_id\n ,txn_id\n ,customer_id\n ,customer_name\n ,product_id\n ,product_name\n ,rating\n ,rating_text\n ,review_date\n ,verified_purchase\n ,helpful_votes\n ,review_channel\n ,review_title\nFROM {{ source('bronze', 'reviews') }} ;", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["bronze", "reviews"]], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["source.dbt_analytics_engineering.bronze.reviews"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/Reviews/stg_reviews.sql", "compiled": true, "compiled_code": "SELECT\n review_id\n ,txn_id\n ,customer_id\n ,customer_name\n ,product_id\n ,product_name\n ,rating\n ,rating_text\n ,review_date\n ,verified_purchase\n ,helpful_votes\n ,review_channel\n ,review_title\nFROM \"RetailDB\".\"bronze\".\"reviews\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["review_id"], "time_spine": null}, "model.dbt_analytics_engineering.stg_inventory": {"database": "RetailDB", "schema": "bronze", "name": "stg_inventory", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "staging/Inventory/stg_inventory.sql", "original_file_path": "models/staging/Inventory/stg_inventory.sql", "unique_id": "model.dbt_analytics_engineering.stg_inventory", "fqn": ["dbt_analytics_engineering", "staging", "Inventory", "stg_inventory"], "alias": "stg_inventory", "checksum": {"name": "sha256", "checksum": "7c6493a5ca0c606830bc7021e32f39c1d97be77f7ad8bd56c8f1e803cca6ee8b"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["staging", "bronze"], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["staging", "bronze"], "description": "Staging model for inventory snapshot data. Profiling identified mixed date\nformats, malformed product identifiers, negative stock quantities and\ninconsistent warehouse mappings. The model includes a generated surrogate\nkey to represent inventory snapshot grain.\n", "columns": {"inventory_snapshot_sk": {"name": "inventory_snapshot_sk", "description": "Generated surrogate key for inventory snapshot grain derived from\nsnapshot_date, product_id and store_id. This key is deterministic and\nintended to provide a stable row identifier for deduplication and\njoins.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "snapshot_date": {"name": "snapshot_date", "description": "Inventory snapshot date normalized to ISO 8601. Profiling showed mixed\nregional date formats; conditional parsing and defensive handling were\napplied during standardization.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "Product identifier referenced in inventory snapshots. Profiling identified\nmalformed and non-numeric product IDs; downstream validation against the\nproduct dimension is recommended.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/staging/_stg__retail__models.yml", "build_path": null, "unrendered_config": {"materialized": "view", "tags": ["staging", "bronze"]}, "created_at": 1782269923.1344094, "relation_name": "\"RetailDB\".\"bronze\".\"stg_inventory\"", "raw_code": "SELECT\n {{ dbt_utils.generate_surrogate_key([\n 'snapshot_date',\n 'product_id',\n 'store_id'\n ]) }} AS inventory_snapshot_sk,\n\n snapshot_date,\n product_id,\n product_name,\n sku,\n category,\n stock_on_hand,\n stock_reserved,\n stock_available,\n reorder_level,\n unit_cost,\n unit_price,\n inventory_value,\n warehouse_location,\n store_id\n\nFROM {{ source('bronze', 'inventory_snapshots') }};", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["bronze", "inventory_snapshots"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.generate_surrogate_key"], "nodes": ["source.dbt_analytics_engineering.bronze.inventory_snapshots"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/Inventory/stg_inventory.sql", "compiled": true, "compiled_code": "SELECT\n \n lower(convert(varchar(50), hashbytes('md5', coalesce(convert(varchar(8000), concat(coalesce(cast(snapshot_date as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'), '-', coalesce(cast(product_id as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'), '-', coalesce(cast(store_id as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'))), '')), 2))\n AS inventory_snapshot_sk,\n\n snapshot_date,\n product_id,\n product_name,\n sku,\n category,\n stock_on_hand,\n stock_reserved,\n stock_available,\n reorder_level,\n unit_cost,\n unit_price,\n inventory_value,\n warehouse_location,\n store_id\n\nFROM \"RetailDB\".\"bronze\".\"inventory_snapshots\";", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["inventory_snapshot_sk"], "time_spine": null}, "model.dbt_analytics_engineering.stg_customers": {"database": "RetailDB", "schema": "bronze", "name": "stg_customers", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "staging/Customers/stg_customers.sql", "original_file_path": "models/staging/Customers/stg_customers.sql", "unique_id": "model.dbt_analytics_engineering.stg_customers", "fqn": ["dbt_analytics_engineering", "staging", "Customers", "stg_customers"], "alias": "stg_customers", "checksum": {"name": "sha256", "checksum": "bc090830a87a0f0916e02d06b0e261412f355146c449d7261ca280c137f1ad3c"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["staging", "bronze"], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["staging", "bronze"], "description": "Staging model for the customer master dataset that exposes raw customer\ninformation from the Bronze layer in a standardized dbt model structure.\nThis model preserves the original source values without applying business\ntransformations or data cleansing. Its primary purpose is to provide a\nconsistent interface for downstream models while documenting the data\nquality issues identified during source profiling at the column level.\nData standardization, validation, and business rule implementation are\nintentionally deferred to subsequent transformation layers.\n", "columns": {"customer_id": {"name": "customer_id", "description": "Unique customer identifier sourced from the customer master table. This field\nserves as the primary business key or surrogate key used to uniquely identify\ncustomer records across source and downstream systems. The value is expected\nto be unique and non-null for all records, ensuring entity integrity and\nsupporting reliable customer-level analysis, data integration, and reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "title": {"name": "title", "description": "Customer title or honorific prefix (for example, NULL,Dr.,Mr.,Mrs.,Ms.,Prof.)\nsourced from customer master data. This field contain leading and\ntrailing whitespace, inconsistent formatting, capitalization variations, and\nnull values. Standardization is required to ensure consistent reporting\nand downstream data consumption.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "first_name": {"name": "first_name", "description": "Customer first name captured from source customer records. This field \ncontain leading and trailing whitespace, inconsistent capitalization, null\nvalues, and formatting discrepancies. In certain cases, the value not\nalign with the corresponding component of full_name due to data quality\nissues, source system inconsistencies, or manual entry errors.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "last_name": {"name": "last_name", "description": "Customer last name captured from source customer records. This field \ncontain leading and trailing whitespace, inconsistent capitalization, null\nvalues, and formatting discrepancies. Some records exhibit mismatches\nbetween last_name and the surname component extracted from full_name due to\nsource data quality issues or inconsistent customer master records.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "full_name": {"name": "full_name", "description": "Customer full name derived from source customer records. This field contain\nleading and trailing whitespace, inconsistent capitalization, formatting\nvariations, and data quality issues. In some records, the value not align\nwith the concatenated combination of title, first_name, and last_name due to\nsource system inconsistencies, data entry errors, or incomplete customer\ninformation. Data validation and standardization should be applied to ensure\nconsistency across customer identity attributes.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "gender": {"name": "gender", "description": "Customer gender information captured from source customer records. This field\nexhibits data quality challenges including null values, leading and trailing\nwhitespace, inconsistent capitalization, and non-standardized gender\nrepresentations. Equivalent gender categories stored in multiple\nformats (e.g., 'F', 'Female', 'FEMALE', 'M', 'Male', 'MALE', 'NB',\n'Non-Binary', 'Other', and 'Prefer not to say'). Data cleansing and\nnormalization should be applied to establish a consistent set of gender\nvalues for analytical and reporting purposes.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "date_of_birth": {"name": "date_of_birth", "description": "Customer date of birth captured from source customer records. This field\ncontains multiple date formats, mixed regional date conventions, locale\nambiguity, inconsistent separators, malformed date values, and ambiguous\nmonth/day ordering. Source values were profiled, classified, and standardized\ninto ISO date format using pattern-based parsing and error-handling logic.\nAmbiguous dates were resolved according to dataset-level format analysis and\nestablished business rules to support consistent analytical reporting and\ndownstream data consumption.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "age": {"name": "age", "description": "Customer age attribute captured from source records. Source values\ncontain missing data, invalid ages, and inconsistencies with the associated\ndate_of_birth value. For analytical consistency, age should be derived from\nthe standardized date_of_birth field rather than relying on the raw source\nattribute, ensuring accurate customer demographic reporting and segmentation.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "email": {"name": "email", "description": "Customer email address captured from source customer records. Source values\ncontain inconsistent casing, leading and trailing whitespace, malformed\nemail structures, duplicate '@' symbols, domain spelling errors, and other\ninvalid representations. Email values were standardized through case\nnormalization, whitespace removal, domain correction, and structural\nvalidation to ensure consistent customer identification, communication, and\ndownstream analytical reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "phone": {"name": "phone", "description": "Customer phone number captured from source customer records. Source values\ncontain inconsistent formatting, structural variations, invalid digit\ngroupings, incomplete phone numbers, and malformed representations. Phone\nnumbers were profiled, parsed, validated, and standardized into the canonical\nUS format '+1 (AAA) BBB-CCCC'. Records failing structural validation were\nflagged as invalid to ensure consistent customer contact information and\ndownstream analytical reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "address": {"name": "address", "description": "Customer street address captured from source customer records. Source values\ncontain inconsistent formatting, structural variations, and wrong address information.\nand This field contain leading and trailing whitespace.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "city": {"name": "city", "description": "Customer city name captured from source customer records. Source values\ncontain inconsistent formatting, structural variations, incomplete address\n information, and malformed representations.\nCity values were profiled, parsed, validated, and standardized into the\ncanonical US format 'Anytown'. Records failing structural validation were\nflagged as invalid to ensure consistent customer address information and\ndownstream analytical reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "state": {"name": "state", "description": "Customer state name captured from source customer records. Source values \ncontain full-state names, inconsistent capitalization, misspellings, and\nmixed representations (abbreviations vs full names). During profiling the\nstate attribute was found to be semantically redundant relative to the\nderived and standardized `state_abbr` and `state_full` attributes maintained\nin the final model. Downstream workflows should prefer `state_abbr` or\n`state_full` for reliable geographic joins and reporting; `state` is retained\nhere to preserve source-system fidelity but contain malformed or\ninconsistent values.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "state_abbr": {"name": "state_abbr", "description": "Canonical two-letter U.S. state abbreviation derived from the source `state`\nattribute. Values were normalized to uppercase two-character abbreviations\n(for example, 'CA', 'TX', 'NY'). Profiling identified mixed input formats and\nmisspellings; transformation logic defensively maps known variants and\nleaves unknown values null to avoid incorrect geographic attribution.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "state_full": {"name": "state_full", "description": "Canonical full-state name (for example, 'California', 'Texas', 'New York')\nderived from the source `state` attribute. This column is normalized to\ntitle case and used for human-readable reporting where full names are\npreferred.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "zip_code": {"name": "zip_code", "description": "Postal code / ZIP code captured from source customer records. Profiling\nidentified non-numeric characters, incorrect lengths, and missing values.\nThe transformation includes numeric validation and minimum-length checks;\nmalformed values are flagged as invalid or nullified depending on severity.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "country": {"name": "country", "description": "Customer country attribute standardized to common country names (for example,\n('United States'). Profiling detected mixed abbreviations ('US', 'USA', 'U.S.'),\ninconsistent casing, and missing values. The canonical value is used for\nregional analysis and currency assumptions.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "region": {"name": "region", "description": "Higher-level regional classification derived from geographic attributes\n(for example, 'West', 'South', 'Midwest', etc.). Region values were computed from\nstandardized state information and used to support aggregated regional\nanalysis. Records with unresolved state mappings may have null region values.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_segment": {"name": "customer_segment", "description": "Customer segmentation attribute (for example, Bronze, Gold, Platinum, Silver).\nProfiling revealed inconsistent category labels and legacy codes; the\ntransformation maps common variants to a small canonical set and preserves\nunknown values for later review.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "loyalty_points": {"name": "loyalty_points", "description": "Numeric loyalty program balance captured from source systems. Profiling\nidentified negative and non-numeric representations; defensive numeric\nparsing and non-negative enforcement were applied. Invalid values are\nnullified to prevent incorrect downstream aggregations.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_active": {"name": "is_active", "description": "Operational indicator reflecting whether the customer account is currently\nactive. Source values used heterogeneous boolean encodings (for example,\n'1', '0', 'Y', 'N', 'true', 'false', etc.). Transformation normalizes values to\nTrue / False / Unknown categories to support active-customer analyses.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "account_created_date": {"name": "account_created_date", "description": "ISO-standardized timestamp representing when the customer account was created.\nProfiling identified mixed date formats and timezone ambiguity; values were\nparsed using pattern-aware parsing logic with invalid or ambiguous dates\nnullified rather than imputed.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "preferred_channel": {"name": "preferred_channel", "description": "Customer's preferred contact or marketing channel (for example, APP, Catalog,\nin-store, Mobile App, Online, Web, etc.). Profiling showed semantic drift and varied\nabbreviations; mapping rules consolidate the dominant variants into a\ncontrolled vocabulary.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "annual_income_usd": {"name": "annual_income_usd", "description": "Customer annual income expressed in USD. Profiling identified currency\nsymbol contamination, comma separators, and negative or non-numeric values.\nDefensive currency parsing and non-negative enforcement were applied; invalid\nrepresentations are nullified to avoid skewing income-based segmentations.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company": {"name": "company", "description": "Customer company affiliation when provided. Values were profiled for\ninconsistent casing, abbreviations, and truncation; transformation includes\nwhitespace cleanup and title-case normalization.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/staging/_stg__retail__models.yml", "build_path": null, "unrendered_config": {"materialized": "view", "tags": ["staging", "bronze"]}, "created_at": 1782269923.1220536, "relation_name": "\"RetailDB\".\"bronze\".\"stg_customers\"", "raw_code": "SELECT\n customer_id\n ,title\n ,first_name\n ,last_name\n ,full_name\n ,gender\n ,date_of_birth\n ,age\n ,email\n ,phone\n ,address\n ,city\n ,state\n ,state_abbr\n ,state_full\n ,zip_code\n ,country\n ,region\n ,customer_segment\n ,loyalty_points\n ,is_active\n ,account_created_date\n ,preferred_channel\n ,annual_income_usd\n ,company\nFROM {{ source('bronze', 'customers') }};", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["bronze", "customers"]], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["source.dbt_analytics_engineering.bronze.customers"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/Customers/stg_customers.sql", "compiled": true, "compiled_code": "SELECT\n customer_id\n ,title\n ,first_name\n ,last_name\n ,full_name\n ,gender\n ,date_of_birth\n ,age\n ,email\n ,phone\n ,address\n ,city\n ,state\n ,state_abbr\n ,state_full\n ,zip_code\n ,country\n ,region\n ,customer_segment\n ,loyalty_points\n ,is_active\n ,account_created_date\n ,preferred_channel\n ,annual_income_usd\n ,company\nFROM \"RetailDB\".\"bronze\".\"customers\";", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["customer_id"], "time_spine": null}, "model.dbt_analytics_engineering.stg_employees": {"database": "RetailDB", "schema": "bronze", "name": "stg_employees", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "staging/Employees/stg_employees.sql", "original_file_path": "models/staging/Employees/stg_employees.sql", "unique_id": "model.dbt_analytics_engineering.stg_employees", "fqn": ["dbt_analytics_engineering", "staging", "Employees", "stg_employees"], "alias": "stg_employees", "checksum": {"name": "sha256", "checksum": "a0a7d69777dbb0768b7e98840f12623ae3d179c1b71e8ed4e0cdf67860947ae6"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["staging", "bronze"], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["staging", "bronze"], "description": "Raw employee master dataset containing identity, contact, organizational,\ncompensation and managerial attributes. Profiling surfaced malformed emails,\ninconsistent phone formats, mixed date ecosystems, and invalid numeric\ncompensation values. This staging model preserves source attributes for\ndownstream normalization.\n", "columns": {"employee_id": {"name": "employee_id", "description": "Unique employee identifier used for joinability with transaction and\nstore tables. Profiling validated this identifier as the natural key and\nrecommended enforcing uniqueness at downstream stages.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "first_name": {"name": "first_name", "description": "Customer first name captured from source customer records. This field\ncontains inconsistent casing (mixed uppercase, lowercase, and title case),\nleading and trailing whitespace, and formatting discrepancies. Profiling \nidentified no null values, ensuring complete coverage for this attribute.\nStandardization and whitespace trimming are required to establish a \nconsistent format for downstream analytical reporting and personalization.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "last_name": {"name": "last_name", "description": "Employee last name captured from source records. This field exhibits \ninconsistent casing, including mixed uppercase, lowercase, and title case \nrepresentations, as well as leading and trailing whitespace. Profiling \nconfirms there are no null values in this field. Standardizing the \ncasing and removing whitespace is required to ensure reliable \nemployee-level identification and reporting in downstream models.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "full_name": {"name": "full_name", "description": "Employee full name derived from concatenated source records. This field \ncontains inconsistent casing (mixed uppercase, lowercase, and title case) \nand significant leading and trailing whitespace. To ensure data \nconsistency for reporting and directory services, this field is \nstandardized through whitespace removal and title-case normalization. \nIt serves as a primary display attribute, and its alignment with \nthe individual `first_name` and `last_name` components is verified to \nensure identity accuracy.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "email": {"name": "email", "description": "Employee email address captured from source records. Profiling identified\nsignificant data quality challenges, including malformed domain structures,\nduplicate '@' symbols, and inconsistent casing (mixed uppercase and \nlowercase). To ensure data integrity, defensive cleaning\u2014including \ncase normalization, whitespace trimming, and structural pattern validation\u2014is \napplied during downstream transformations to facilitate reliable internal \ncommunications and employee identification. \n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "phone": {"name": "phone", "description": "Employee contact phone number. Source data contains highly inconsistent \nformatting, including varied separators (dots, hyphens, parentheses) and \nmissing area codes or digit groupings. To ensure reliable contact \ninformation, all values are parsed, validated, and normalized into the \ncanonical US format '+1 (AAA) BBB-CCCC'. Records that fail to meet this \nstructure are flagged as invalid to maintain high data quality for \ndownstream reporting and operational use. \n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "job_title": {"name": "job_title", "description": "Official employee job title. This field is highly standardized, \nfeaturing consistent title-case formatting with no leading or \ntrailing whitespace. Data profiling confirms that these values are \nclean and ready for immediate use in organizational reporting, \nresource allocation, and workforce analytics without the need for \nfurther transformation.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "department": {"name": "department", "description": "Organizational department classification. The values in this field are \nwell-structured, adhering to consistent title-case formatting with \nno leading or trailing whitespace. The data is validated as clean, \nreliable, and ready for direct use in downstream workforce segmentation \nand departmental reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "store_id": {"name": "store_id", "description": "Unique identifier for the retail store where the employee is currently \nassigned. This field is consistently formatted and requires no \ncleansing or structural transformation. Please note that this column \nnaturally contains duplicate values, as multiple employees are assigned \nto the same store location. It is suitable for use as a foreign key \nwhen joining with the stores dimension for operational or regional \nreporting[cite: 1].\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "store_name": {"name": "store_name", "description": "Official retail store display name. The data is well-structured and \nfollows consistent title-case formatting, requiring no cleansing. \nThe values incorporate store location and format identifiers (e.g., \n'Flagship', 'Express', 'Pop-Up', 'Outlet', 'Standard'). As a \nstandardized dimension, this field is reliable for store-level \naggregation and performance comparison across different store tiers.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "store_city": {"name": "store_city", "description": "The city location of the retail store where the employee is assigned. \nThe data is presented in a clean, standardized format, utilizing \nconsistent title-case capitalization with no leading or trailing \nwhitespace. This field is reliable for geographic filtering and \nregional store-performance analysis without requiring further \ntransformation. \n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "hire_date": {"name": "hire_date", "description": "Employee hire date captured from source systems. The raw data exhibits \nsignificant complexity, including multiple date formats, varied \nregional conventions (e.g., month/day ordering), inconsistent \nseparators, and full-text month naming variations. To ensure \nanalytical integrity, these values have been parsed, validated, and \nnormalized into the ISO 8601 format (YYYY-MM-DD). Ambiguous dates were \nresolved using pattern-based parsing and established business logic to \nsupport reliable downstream temporal analysis and workforce reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "years_employed": {"name": "years_employed", "description": "Employee tenure represented as a numeric value. The current integer \nformat fails to capture fractional periods, such as employees with \npartial-year experience (e.g., 6 years and 7 months). Additionally, \nprofiling indicates that values for inactive employees are inconsistent \nor inaccurate. This column is being refactored to a decimal (float) \nformat to ensure precision for tenure-based reporting, and validation \nlogic is being implemented to correct calculations for both active and \ninactive personnel.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "annual_salary_usd": {"name": "annual_salary_usd", "description": "Annual base salary of the employee expressed in USD. The data is \nclean, consistently formatted as integers, and requires no structural \ntransformation or cleansing. This field is validated for accuracy \nand is ready for immediate use in compensation analysis, budgeting, \nand workforce cost reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "commission_rate_pct": {"name": "commission_rate_pct", "description": "Employee commission rate expressed as a percentage. The source data \ncontains mixed numeric types (integers and decimals) due to \ninconsistent formatting across systems. To ensure mathematical \naccuracy for payroll and performance incentive calculations, this \nfield is cast to a uniform decimal data type. No additional \ncategorical or structural transformation is required; the focus \nis solely on maintaining precision for commission-based reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_active": {"name": "is_active", "description": "Operational status indicator reflecting whether an employee is currently \nactive within the organization. The source data contains heterogeneous \nencodings, including boolean-like values ('1', 'Y', 'Yes'), negative \nindicators ('N', 'No'), and status descriptors ('Active', 'Terminated'). \nTo support consistent workforce analysis, this field is normalized to a \nstandard boolean (True/False) format. All ambiguous or non-standard \nrepresentations are mapped during transformation to ensure reliable \nreporting on headcount and active personnel.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "performance_rating": {"name": "performance_rating", "description": "Employee performance appraisal rating. Profiling identified significant\ninconsistencies, including a mix of numeric grades (2-5), character \ngrades (A-D), and descriptive text (e.g., 'Excellent', 'Average'). \nAdditionally, missing values are currently represented by nulls or \ninconsistent labels. This field requires a standardization mapping \nto a uniform scale, with 'Unknown' used as the canonical value for \nmissing or invalid records to ensure reliable performance-based \nsegmentation and talent analytics.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "manager_id": {"name": "manager_id", "description": "Identifier of the employee's direct supervisor. The data is largely \nconsistent; however, this field contains null values for top-level \nmanagement or executive roles, as these individuals do not report to \nanother manager within the organizational hierarchy. This column is \nsuitable for use in recursive queries or self-joins to map the \nreporting structure and organizational tree.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/staging/_stg__retail__models.yml", "build_path": null, "unrendered_config": {"materialized": "view", "tags": ["staging", "bronze"]}, "created_at": 1782269923.131136, "relation_name": "\"RetailDB\".\"bronze\".\"stg_employees\"", "raw_code": "SELECT\n employee_id\n ,first_name\n ,last_name\n ,full_name\n ,email\n ,phone\n ,job_title\n ,department\n ,store_id\n ,store_name\n ,store_city\n ,hire_date\n ,years_employed\n ,annual_salary_usd\n ,commission_rate_pct\n ,is_active\n ,performance_rating\n ,manager_id\nFROM {{ source('bronze', 'employees') }};", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["bronze", "employees"]], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["source.dbt_analytics_engineering.bronze.employees"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/Employees/stg_employees.sql", "compiled": true, "compiled_code": "SELECT\n employee_id\n ,first_name\n ,last_name\n ,full_name\n ,email\n ,phone\n ,job_title\n ,department\n ,store_id\n ,store_name\n ,store_city\n ,hire_date\n ,years_employed\n ,annual_salary_usd\n ,commission_rate_pct\n ,is_active\n ,performance_rating\n ,manager_id\nFROM \"RetailDB\".\"bronze\".\"employees\";", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["employee_id"], "time_spine": null}, "model.dbt_analytics_engineering.stg_transactions": {"database": "RetailDB", "schema": "bronze", "name": "stg_transactions", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "staging/Transactions/stg_transactions.sql", "original_file_path": "models/staging/Transactions/stg_transactions.sql", "unique_id": "model.dbt_analytics_engineering.stg_transactions", "fqn": ["dbt_analytics_engineering", "staging", "Transactions", "stg_transactions"], "alias": "stg_transactions", "checksum": {"name": "sha256", "checksum": "3b83364de1609885dff61717f7c0ea546e0c483a7df101698c77cc61bc46aa67"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["staging", "bronze"], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["staging", "bronze"], "description": "Raw sales transaction dataset preserving source-level order, customer,\nproduct, store and employee attributes. Profiling exposed multi-format dates,\ncurrency-formatted numeric strings, negative financial values, duplicate\ntransaction identifiers and inconsistent categorical encodings. This staging\nmodel mirrors the Bronze input and serves as the ingestion point for\nchronological and financial standardization.\n", "columns": {"transaction_id": {"name": "transaction_id", "description": "Raw transaction identifier originating from source systems. Profiling\nidentified duplicate `transaction_id` values in the Bronze layer; deduplication\noccurs downstream. This field should be considered the primary identifier\nfor transaction records within this model.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "order_line_number": {"name": "order_line_number", "description": "Line number within the parent order. Profiling enforced a valid business\nrange (1-20) and flagged out-of-range values as invalid. This column is\nused as part of the compound key with `transaction_id` at later stages.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "Customer reference captured with the transaction. Profiling detected nulls\nand orphaned values; referential validation against the customers dimension\nis performed in downstream layers.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "Product reference associated with the transaction. Profiling identified\nmalformed and null product references; downstream joins to product\ndimensions are used for validation and cross-checking.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_list_price": {"name": "unit_list_price", "description": "Catalog price field captured as a source string. Profiling found currency\nsymbols and thousands separators; downstream cleaning converts this to a\ndecimal USD representation.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "line_total_with_tax": {"name": "line_total_with_tax", "description": "Final line total including tax. Profiling performed cross-validation with\nrecalculated totals derived from quantity and unit pricing; discrepancies\nwere flagged for corrective logic in the Silver layer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/staging/_stg__retail__models.yml", "build_path": null, "unrendered_config": {"materialized": "view", "tags": ["staging", "bronze"]}, "created_at": 1782269923.1504343, "relation_name": "\"RetailDB\".\"bronze\".\"stg_transactions\"", "raw_code": "SELECT \n transaction_id\n ,rn\n ,order_id\n ,order_line_number\n ,order_date\n ,order_year\n ,order_month\n ,order_month_name\n ,order_quarter\n ,order_day_of_week\n ,ship_date\n ,delivery_date\n ,customer_id\n ,customer_full_name\n ,customer_first_name\n ,customer_last_name\n ,customer_email\n ,customer_phone\n ,customer_city\n ,customer_state\n ,customer_zip\n ,customer_region\n ,customer_segment\n ,customer_gender\n ,customer_age\n ,customer_age_group\n ,product_id\n ,product_name\n ,sku\n ,brand\n ,category\n ,sub_category\n ,department\n ,quantity_ordered\n ,unit_list_price\n ,discount_pct\n ,unit_selling_price\n ,line_total_before_tax\n ,tax_rate_pct\n ,tax_amount\n ,line_total_with_tax\n ,store_id\n ,store_name\n ,store_city\n ,store_state\n ,store_region\n ,store_type\n ,employee_id\n ,employee_name\n ,employee_job_title\n ,promo_id\n ,promo_name\n ,sales_channel\n ,payment_method\n ,shipping_method\n ,order_status\n ,is_returned\n ,cost_price\n ,gross_profit\n ,data_source\n ,record_created_ts\n ,last_modified_ts\nFROM \n(\nSELECT \n ROW_NUMBER() OVER(\n PARTITION BY transaction_id\n ORDER BY transaction_id\n ) AS rn,\n *\nFROM {{ source('bronze', 'sales_transactions') }}\nWHERE transaction_id IS NOT NULL \n)t WHERE rn = 1;", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["bronze", "sales_transactions"]], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["source.dbt_analytics_engineering.bronze.sales_transactions"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/Transactions/stg_transactions.sql", "compiled": true, "compiled_code": "SELECT \n transaction_id\n ,rn\n ,order_id\n ,order_line_number\n ,order_date\n ,order_year\n ,order_month\n ,order_month_name\n ,order_quarter\n ,order_day_of_week\n ,ship_date\n ,delivery_date\n ,customer_id\n ,customer_full_name\n ,customer_first_name\n ,customer_last_name\n ,customer_email\n ,customer_phone\n ,customer_city\n ,customer_state\n ,customer_zip\n ,customer_region\n ,customer_segment\n ,customer_gender\n ,customer_age\n ,customer_age_group\n ,product_id\n ,product_name\n ,sku\n ,brand\n ,category\n ,sub_category\n ,department\n ,quantity_ordered\n ,unit_list_price\n ,discount_pct\n ,unit_selling_price\n ,line_total_before_tax\n ,tax_rate_pct\n ,tax_amount\n ,line_total_with_tax\n ,store_id\n ,store_name\n ,store_city\n ,store_state\n ,store_region\n ,store_type\n ,employee_id\n ,employee_name\n ,employee_job_title\n ,promo_id\n ,promo_name\n ,sales_channel\n ,payment_method\n ,shipping_method\n ,order_status\n ,is_returned\n ,cost_price\n ,gross_profit\n ,data_source\n ,record_created_ts\n ,last_modified_ts\nFROM \n(\nSELECT \n ROW_NUMBER() OVER(\n PARTITION BY transaction_id\n ORDER BY transaction_id\n ) AS rn,\n *\nFROM \"RetailDB\".\"bronze\".\"sales_transactions\"\nWHERE transaction_id IS NOT NULL \n)t WHERE rn = 1;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["transaction_id"], "time_spine": null}, "model.dbt_analytics_engineering.stg_returns": {"database": "RetailDB", "schema": "bronze", "name": "stg_returns", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "staging/Returns/stg_returns.sql", "original_file_path": "models/staging/Returns/stg_returns.sql", "unique_id": "model.dbt_analytics_engineering.stg_returns", "fqn": ["dbt_analytics_engineering", "staging", "Returns", "stg_returns"], "alias": "stg_returns", "checksum": {"name": "sha256", "checksum": "a20c28a5d5051ced7955c7519862ef92b5d98902a64900bbdc5d2c2f36aed17f"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["staging", "bronze"], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["staging", "bronze"], "description": "Raw returns dataset containing return events and refund metadata. Profiling\nrevealed heterogeneous return channels, malformed identifiers, inconsistent\nmonetary formats, and missing product/customer references. This staging\nmodel preserves the source-level return events and supports downstream\nrefund and return reconciliation.\n", "columns": {"return_id": {"name": "return_id", "description": "Unique return-event identifier. Profiling validated structural integrity\nand recommended this field be treated as the primary key for return\nrecords.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "original_txn_id": {"name": "original_txn_id", "description": "Reference to the original transaction that the return relates to. Profiling\nfound missing or malformed references; downstream reconciliation should\nattempt to resolve orphaned returns.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refund_amount": {"name": "refund_amount", "description": "Refund monetary amount. Source values contained currency symbols and\nformatting inconsistencies; the pipeline defends with numeric parsing and\nnegative-value validation.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/staging/_stg__retail__models.yml", "build_path": null, "unrendered_config": {"materialized": "view", "tags": ["staging", "bronze"]}, "created_at": 1782269923.1414843, "relation_name": "\"RetailDB\".\"bronze\".\"stg_returns\"", "raw_code": "SELECT \n return_id\n ,original_txn_id\n ,original_order_id\n ,customer_id\n ,customer_name\n ,product_id\n ,product_name\n ,quantity_returned\n ,return_date\n ,return_reason\n ,refund_amount\n ,refund_method\n ,return_channel\n ,restocked\n ,return_status\n ,handled_by_emp_id\n ,notes\nFROM {{ source('bronze', 'returns') }} ;", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["bronze", "returns"]], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["source.dbt_analytics_engineering.bronze.returns"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/Returns/stg_returns.sql", "compiled": true, "compiled_code": "SELECT \n return_id\n ,original_txn_id\n ,original_order_id\n ,customer_id\n ,customer_name\n ,product_id\n ,product_name\n ,quantity_returned\n ,return_date\n ,return_reason\n ,refund_amount\n ,refund_method\n ,return_channel\n ,restocked\n ,return_status\n ,handled_by_emp_id\n ,notes\nFROM \"RetailDB\".\"bronze\".\"returns\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["return_id"], "time_spine": null}, "model.dbt_analytics_engineering.int_product_pricing": {"database": "RetailDB", "schema": "bronze", "name": "int_product_pricing", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Products/int_product_pricing.sql", "original_file_path": "models/intermediate/Products/int_product_pricing.sql", "unique_id": "model.dbt_analytics_engineering.int_product_pricing", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "int_product_pricing"], "alias": "int_product_pricing", "checksum": {"name": "sha256", "checksum": "05fa755320579d3a3fb6398f4266497cd12eecb79e94ca41891bd36b96410071"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Extracts, cleanses, and maps high-precision margin attributes for retail products. The model programmatically \nscrubs text strings to remove currency markers and grouping commas, casts metrics to financial data types, \nand validates maximum threshold boundaries.\n", "columns": {"product_id": {"name": "product_id", "description": "Unique product tracking identifier.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "base_price_usd": {"name": "base_price_usd", "description": "The standardized retail sticker price (MSRP) for the product. \n**Transformation Logic:** Cleanses complex text currency strings by stripping embedded commas (',') and \ndollar symbols ('$') before casting to high-precision DECIMAL(10,2). Values below zero default to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "cost_price_usd": {"name": "cost_price_usd", "description": "The vendor procurement cost price for the product item. \n**Transformation Logic:** Cleanses text strings by stripping commas and dollar markers before casting to \nhigh-precision DECIMAL(10,2). Negative outliers resolve to NULL to avoid skewing gross profit statistics.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "gross_margin_pct": {"name": "gross_margin_pct", "description": "The recorded margin percentage tier. Cast to DECIMAL(5,1) for accuracy. Implements a critical data \nquality safety filter: if the value exceeds 100% (a logical pricing error) or falls below 0%, it is \nautomatically coerced to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Products/_int_products_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1782278236.2839737, "relation_name": "\"RetailDB\".\"bronze\".\"int_product_pricing\"", "raw_code": "SELECT\n product_id,\n \n CASE \n WHEN base_price_usd IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', '')) IS NULL THEN NULL\n WHEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', '')) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', ''))\n END AS base_price_usd,\n\n CASE \n WHEN cost_price_usd IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', '')) IS NULL THEN NULL\n WHEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', '')) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', ''))\n END AS cost_price_usd,\n\n CASE \n WHEN gross_margin_pct IS NULL OR TRY_CONVERT(DECIMAL(5,1), gross_margin_pct) IS NULL THEN NULL\n WHEN TRY_CONVERT(DECIMAL(5,1), gross_margin_pct) > 100 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(5,1), gross_margin_pct)\n END AS gross_margin_pct\nFROM {{ ref('stg_products') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_products", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.stg_products"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_pricing.sql", "compiled": true, "compiled_code": "SELECT\n product_id,\n \n CASE \n WHEN base_price_usd IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', '')) IS NULL THEN NULL\n WHEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', '')) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', ''))\n END AS base_price_usd,\n\n CASE \n WHEN cost_price_usd IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', '')) IS NULL THEN NULL\n WHEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', '')) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', ''))\n END AS cost_price_usd,\n\n CASE \n WHEN gross_margin_pct IS NULL OR TRY_CONVERT(DECIMAL(5,1), gross_margin_pct) IS NULL THEN NULL\n WHEN TRY_CONVERT(DECIMAL(5,1), gross_margin_pct) > 100 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(5,1), gross_margin_pct)\n END AS gross_margin_pct\nFROM \"RetailDB\".\"bronze\".\"stg_products\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["product_id"], "time_spine": null}, "model.dbt_analytics_engineering.int_product_supplier": {"database": "RetailDB", "schema": "bronze", "name": "int_product_supplier", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Products/int_product_supplier.sql", "original_file_path": "models/intermediate/Products/int_product_supplier.sql", "unique_id": "model.dbt_analytics_engineering.int_product_supplier", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "int_product_supplier"], "alias": "int_product_supplier", "checksum": {"name": "sha256", "checksum": "f9a7a465763495198e741858ebdaa237b551743bc8741e1a66b6282e5293cab9"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Enriches corporate items with standardized logistical profiles, supplier names, and product reviews. \nThe model handles geographic inconsistencies, applies specific operational upper/lower ceilings on scale rankings, \nand structures logistical integers.\n", "columns": {"product_id": {"name": "product_id", "description": "Unique product tracking identifier.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "supplier_name": {"name": "supplier_name", "description": "The primary manufacturer or vendor account name. Trimmed of whitespace and converted to Title Case, \ndefaulting missing or blank values to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "supplier_country": {"name": "supplier_country", "description": "The localized geographic country node for the supplier. Converts country code values (e.g., 'USA' to 'United States') \nand applies Title Case mapping. Empty or unpopulated items default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "weight_kg": {"name": "weight_kg", "description": "The recorded physical mass of the product. Cast to a numeric DECIMAL(5,2) data type. Any negative dimensions \nor non-numeric anomalies are coerced to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "warranty_years": {"name": "warranty_years", "description": "The customer coverage warranty timeline expressed in years. Cast to an integer. Employs defensive bounding logic: \nif the timeframe is negative (< 0) or exceeds an impossible threshold (> 20 years), it is coerced to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "rating_avg": {"name": "rating_avg", "description": "The average aggregated product rating score. Cast to DECIMAL(3,1). Enforces strict compliance with an \noperational five-star scale rule; any evaluation metrics registering outside the 0.0 to 5.0 boundary default to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "review_count": {"name": "review_count", "description": "The complete volume of submission logs submitted by consumers. Cast to an integer; negative value anomalies \nor invalid fields are safely normalized to NULL.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Products/_int_products_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1782278236.2898014, "relation_name": "\"RetailDB\".\"bronze\".\"int_product_supplier\"", "raw_code": "SELECT \n product_id,\n\n CASE \n WHEN supplier_name IS NULL OR TRIM(supplier_name) = '' THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(supplier_name))\n END as supplier_name,\n\n CASE \n WHEN supplier_country IS NULL OR TRIM(supplier_country) = '' THEN 'Unknown'\n WHEN supplier_country = 'USA' THEN 'United States'\n ELSE TRIM(dbo.TitleCase(supplier_country))\n END as supplier_country,\n \n CASE \n WHEN TRY_CONVERT(DECIMAL(5,2), weight_kg) IS NULL OR TRY_CONVERT(DECIMAL(5,2), weight_kg) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(5,2), weight_kg)\n END as weight_kg,\n\n CASE \n WHEN TRY_CONVERT(INT, warranty_years) IS NULL OR TRY_CONVERT(INT, warranty_years) < 0 OR TRY_CONVERT(INT, warranty_years) > 20 THEN NULL \n ELSE TRY_CONVERT(INT, warranty_years)\n END as warranty_years,\n\n CASE \n WHEN TRY_CONVERT(DECIMAL(3,1), rating_avg) IS NULL OR TRY_CONVERT(DECIMAL(3,1), rating_avg) < 0 OR TRY_CONVERT(DECIMAL(3,1), rating_avg) > 5 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(3,1), rating_avg)\n END as rating_avg,\n\n CASE \n WHEN TRY_CONVERT(INT, review_count) IS NULL OR TRY_CONVERT(INT, review_count) < 0 THEN NULL \n ELSE TRY_CONVERT(INT, review_count)\n END as review_count\nFROM {{ ref('stg_products') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_products", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.stg_products"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_supplier.sql", "compiled": true, "compiled_code": "SELECT \n product_id,\n\n CASE \n WHEN supplier_name IS NULL OR TRIM(supplier_name) = '' THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(supplier_name))\n END as supplier_name,\n\n CASE \n WHEN supplier_country IS NULL OR TRIM(supplier_country) = '' THEN 'Unknown'\n WHEN supplier_country = 'USA' THEN 'United States'\n ELSE TRIM(dbo.TitleCase(supplier_country))\n END as supplier_country,\n \n CASE \n WHEN TRY_CONVERT(DECIMAL(5,2), weight_kg) IS NULL OR TRY_CONVERT(DECIMAL(5,2), weight_kg) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(5,2), weight_kg)\n END as weight_kg,\n\n CASE \n WHEN TRY_CONVERT(INT, warranty_years) IS NULL OR TRY_CONVERT(INT, warranty_years) < 0 OR TRY_CONVERT(INT, warranty_years) > 20 THEN NULL \n ELSE TRY_CONVERT(INT, warranty_years)\n END as warranty_years,\n\n CASE \n WHEN TRY_CONVERT(DECIMAL(3,1), rating_avg) IS NULL OR TRY_CONVERT(DECIMAL(3,1), rating_avg) < 0 OR TRY_CONVERT(DECIMAL(3,1), rating_avg) > 5 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(3,1), rating_avg)\n END as rating_avg,\n\n CASE \n WHEN TRY_CONVERT(INT, review_count) IS NULL OR TRY_CONVERT(INT, review_count) < 0 THEN NULL \n ELSE TRY_CONVERT(INT, review_count)\n END as review_count\nFROM \"RetailDB\".\"bronze\".\"stg_products\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["product_id"], "time_spine": null}, "model.dbt_analytics_engineering.int_inventory_stock": {"database": "RetailDB", "schema": "bronze", "name": "int_inventory_stock", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Inventory/int_inventory_stock.sql", "original_file_path": "models/intermediate/Inventory/int_inventory_stock.sql", "unique_id": "model.dbt_analytics_engineering.int_inventory_stock", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "int_inventory_stock"], "alias": "int_inventory_stock", "checksum": {"name": "sha256", "checksum": "b0cbe9e40916026406b3a76b41b5c12b5296075d1a65f8ad7a743a508e224cc5"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Calculates key physical unit availability metrics across inventory snapshots by enforcing \nnumeric boundaries. The model validates system counts, filters out impossible negative numbers, \nand computes real-time pickable availability balances to provide an accurate picture of net warehouse stock.\n", "columns": {"inventory_snapshot_sk": {"name": "inventory_snapshot_sk", "description": "Surrogate primary key identifying the unique item snapshot sequence.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "stock_on_hand": {"name": "stock_on_hand", "description": "The total recorded physical item count present inside the warehouse facility. \nAlphanumeric parsing anomalies or negative value errors are explicitly set to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "stock_reserved": {"name": "stock_reserved", "description": "The count of units allocated or committed to active customer orders. \nNegative entries or invalid numeric data strings are coerced to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "stock_available": {"name": "stock_available", "description": "The net quantity of items currently pickable, sellable, and uncommitted. \n**Transformation Logic:** Dynamically calculated inline as `stock_on_hand` minus `stock_reserved`.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "reorder_level": {"name": "reorder_level", "description": "The replenishment baseline safety milestone count. Values failing integer conversion \nor registering below zero are converted to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Inventory/_int_inventory_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1782277033.107159, "relation_name": "\"RetailDB\".\"bronze\".\"int_inventory_stock\"", "raw_code": "WITH inventory as \n(\nSELECT \n inventory_snapshot_sk,\n\n CASE \n WHEN TRY_CONVERT(INT, stock_on_hand) IS NULL OR TRY_CONVERT(INT, stock_on_hand) < 0 THEN NULL \n ELSE TRY_CONVERT(INT, stock_on_hand)\n END AS stock_on_hand,\n\n CASE \n WHEN TRY_CONVERT(INT, stock_reserved) < 0 OR TRY_CONVERT(INT, stock_reserved) IS NULL THEN NULL \n ELSE TRY_CONVERT(INT, stock_reserved)\n END as stock_reserved,\n\n CASE \n WHEN TRY_CONVERT(INT, reorder_level) IS NULL OR TRY_CONVERT(INT, reorder_level) < 0 THEN NULL \n ELSE TRY_CONVERT(INT, reorder_level)\n END as reorder_level\nFROM {{ ref('stg_inventory') }}\n)\nSELECT \n inventory_snapshot_sk,\n stock_on_hand,\n stock_reserved,\n stock_on_hand - stock_reserved AS stock_available,\n reorder_level\nFROM inventory;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_inventory", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.stg_inventory"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_stock.sql", "compiled": true, "compiled_code": "WITH inventory as \n(\nSELECT \n inventory_snapshot_sk,\n\n CASE \n WHEN TRY_CONVERT(INT, stock_on_hand) IS NULL OR TRY_CONVERT(INT, stock_on_hand) < 0 THEN NULL \n ELSE TRY_CONVERT(INT, stock_on_hand)\n END AS stock_on_hand,\n\n CASE \n WHEN TRY_CONVERT(INT, stock_reserved) < 0 OR TRY_CONVERT(INT, stock_reserved) IS NULL THEN NULL \n ELSE TRY_CONVERT(INT, stock_reserved)\n END as stock_reserved,\n\n CASE \n WHEN TRY_CONVERT(INT, reorder_level) IS NULL OR TRY_CONVERT(INT, reorder_level) < 0 THEN NULL \n ELSE TRY_CONVERT(INT, reorder_level)\n END as reorder_level\nFROM \"RetailDB\".\"bronze\".\"stg_inventory\"\n)\nSELECT \n inventory_snapshot_sk,\n stock_on_hand,\n stock_reserved,\n stock_on_hand - stock_reserved AS stock_available,\n reorder_level\nFROM inventory;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["inventory_snapshot_sk"], "time_spine": null}, "model.dbt_analytics_engineering.int_inventory_valuation": {"database": "RetailDB", "schema": "bronze", "name": "int_inventory_valuation", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Inventory/int_inventory_valuation.sql", "original_file_path": "models/intermediate/Inventory/int_inventory_valuation.sql", "unique_id": "model.dbt_analytics_engineering.int_inventory_valuation", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "int_inventory_valuation"], "alias": "int_inventory_valuation", "checksum": {"name": "sha256", "checksum": "90ae34970aad53de40c602d2e8882baa175657b3ba0dd91e0ce2a42992a0354c"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Enriches snapshot files with high-precision asset valuation and pricing metrics. The model \nstrips formatting noise (such as currency symbols and comma grouping separators) from text fields, \nstandardizes locations, and calculates extended inventory holding values for financial and margin analysis.\n", "columns": {"inventory_snapshot_sk": {"name": "inventory_snapshot_sk", "description": "Surrogate primary key identifying the evaluated warehouse ledger item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_cost": {"name": "unit_cost", "description": "The acquisition cost per unit cast to a decimal(10,2) format for exact precision. \n**Transformation Logic:** Programmatically checks for and strips leading '$' markers from text strings before conversion.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_price": {"name": "unit_price", "description": "The Manufacturer's Suggested Retail Price (MSRP) for the item, cast to a decimal(10,2) format. \n**Transformation Logic:** Cleanses text strings by stripping out both currency '$' characters\nand embedded thousands comma groupings (',') to allow safe mathematical execution.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "stock_on_hand": {"name": "stock_on_hand", "description": "The physical count of units present in the warehouse. Non-numeric inputs or negative counts \nresolve to NULL to protect downstream multiplication.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "inventory_value": {"name": "inventory_value", "description": "The extended total dollar value of the stock on hand. \n**Transformation Logic:** Evaluated dynamically by multiplying the cleaned `unit_price`\n by the validated `stock_on_hand`.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "warehouse_location": {"name": "warehouse_location", "description": "The tracking designation code for the storage facility. Values are standardized to UPPERCASE \nwith missing or blank fields defaulting to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "store_id": {"name": "store_id", "description": "The associated brick-and-mortar retail location identifier. Converted to an integer data type, \nwith missing or blank spaces coerced to NULL.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Inventory/_int_inventory_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1782277033.1112332, "relation_name": "\"RetailDB\".\"bronze\".\"int_inventory_valuation\"", "raw_code": "WITH inventory_valuation AS \n(\n SELECT \n inventory_snapshot_sk,\n CASE \n WHEN unit_cost LIKE '$%' THEN TRY_CONVERT(DECIMAL(10, 2), SUBSTRING(unit_cost, 2, LEN(unit_cost)))\n ELSE TRY_CONVERT(DECIMAL(10, 2), unit_cost)\n END as unit_cost,\n\n CASE \n WHEN TRY_CONVERT(DECIMAL(10,2), unit_price) IS NULL THEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(unit_price, ',', ''), '$', ''))\n ELSE TRY_CONVERT(DECIMAL(10, 2), unit_price)\n END as unit_price,\n\n CASE \n WHEN TRY_CONVERT(INT, stock_on_hand) IS NULL OR stock_on_hand < 0 THEN NULL \n ELSE TRY_CONVERT(INT, stock_on_hand)\n END AS stock_on_hand,\n\n CASE \n WHEN warehouse_location IS NULL OR warehouse_location = '' THEN 'Unknown'\n ELSE UPPER(warehouse_location)\n END as warehouse_location,\n\n CASE \n WHEN store_id IS NULL OR store_id = '' THEN NULL\n ELSE TRY_CONVERT(INT, store_id)\n END as store_id \n\n FROM {{ ref('stg_inventory') }}\n)\nSELECT \n inventory_snapshot_sk,\n unit_cost,\n unit_price,\n unit_price * stock_on_hand as inventory_value,\n warehouse_location,\n store_id\nFROM inventory_valuation;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_inventory", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.stg_inventory"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_valuation.sql", "compiled": true, "compiled_code": "WITH inventory_valuation AS \n(\n SELECT \n inventory_snapshot_sk,\n CASE \n WHEN unit_cost LIKE '$%' THEN TRY_CONVERT(DECIMAL(10, 2), SUBSTRING(unit_cost, 2, LEN(unit_cost)))\n ELSE TRY_CONVERT(DECIMAL(10, 2), unit_cost)\n END as unit_cost,\n\n CASE \n WHEN TRY_CONVERT(DECIMAL(10,2), unit_price) IS NULL THEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(unit_price, ',', ''), '$', ''))\n ELSE TRY_CONVERT(DECIMAL(10, 2), unit_price)\n END as unit_price,\n\n CASE \n WHEN TRY_CONVERT(INT, stock_on_hand) IS NULL OR stock_on_hand < 0 THEN NULL \n ELSE TRY_CONVERT(INT, stock_on_hand)\n END AS stock_on_hand,\n\n CASE \n WHEN warehouse_location IS NULL OR warehouse_location = '' THEN 'Unknown'\n ELSE UPPER(warehouse_location)\n END as warehouse_location,\n\n CASE \n WHEN store_id IS NULL OR store_id = '' THEN NULL\n ELSE TRY_CONVERT(INT, store_id)\n END as store_id \n\n FROM \"RetailDB\".\"bronze\".\"stg_inventory\"\n)\nSELECT \n inventory_snapshot_sk,\n unit_cost,\n unit_price,\n unit_price * stock_on_hand as inventory_value,\n warehouse_location,\n store_id\nFROM inventory_valuation;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["inventory_snapshot_sk"], "time_spine": null}, "model.dbt_analytics_engineering.int_return_refund": {"database": "RetailDB", "schema": "bronze", "name": "int_return_refund", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Returns/int_return_refund.sql", "original_file_path": "models/intermediate/Returns/int_return_refund.sql", "unique_id": "model.dbt_analytics_engineering.int_return_refund", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "int_return_refund"], "alias": "int_return_refund", "checksum": {"name": "sha256", "checksum": "f712ec22a460a8d42ae75d39946f47b845e6f24fa2bede75c800676ef30a9257"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Extracts and sanitizes financial reimbursement attributes for returned orders. The model programmatically \nscrubs text currency strings to isolate decimals and normalizes payment methods to support precise gross margin \nreconciliation tracking.\n", "columns": {"return_id": {"name": "return_id", "description": "Unique primary key mapping to the corresponding return entry.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refund_amount": {"name": "refund_amount", "description": "The total dollar value reimbursed back to the customer, cast to decimal(10,2) precision.\n**Transformation Logic:** Strips formatting artifacts including currency symbols ('$') and thousands separators (',') before typecasting. Negative entries or un-castable formats default to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refund_method": {"name": "refund_method", "description": "The transaction payment type used for the reimbursement (e.g., Credit Card, Cash). Standardized using Title Case, defaulting blank rows to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Returns/_int_returns_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1782280692.9093027, "relation_name": "\"RetailDB\".\"bronze\".\"int_return_refund\"", "raw_code": "SELECT \n return_id,\n \n CASE \n WHEN TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', '')) IS NULL THEN NULL\n WHEN refund_amount IS NULL OR TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', '')) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', ''))\n END as refund_amount,\n\n CASE \n WHEN refund_method IS NULL OR TRIM(refund_method) = '' THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(refund_method))\n END as refund_method\nFROM {{ ref('stg_returns') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_returns", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.stg_returns"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_refund.sql", "compiled": true, "compiled_code": "SELECT \n return_id,\n \n CASE \n WHEN TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', '')) IS NULL THEN NULL\n WHEN refund_amount IS NULL OR TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', '')) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', ''))\n END as refund_amount,\n\n CASE \n WHEN refund_method IS NULL OR TRIM(refund_method) = '' THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(refund_method))\n END as refund_method\nFROM \"RetailDB\".\"bronze\".\"stg_returns\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["return_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_stg_customers_customer_id.c7614daada": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_stg_customers_customer_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_stg_customers_customer_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.unique_stg_customers_customer_id.c7614daada", "fqn": ["dbt_analytics_engineering", "staging", "unique_stg_customers_customer_id"], "alias": "unique_stg_customers_customer_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.409905, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_customers", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_customers"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_customers_customer_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n customer_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_customers\"\nwhere customer_id is not null\ngroup by customer_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "customer_id", "file_key_name": "models.stg_customers", "attached_node": "model.dbt_analytics_engineering.stg_customers", "test_metadata": {"name": "unique", "kwargs": {"column_name": "customer_id", "model": "{{ get_where_subquery(ref('stg_customers')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_customers_customer_id.e2cfb1f9aa": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_customers_customer_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_customers_customer_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_customers_customer_id.e2cfb1f9aa", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_customers_customer_id"], "alias": "not_null_stg_customers_customer_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4148731, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_customers", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_customers"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_customers_customer_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"RetailDB\".\"bronze\".\"stg_customers\"\nwhere customer_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "customer_id", "file_key_name": "models.stg_customers", "attached_node": "model.dbt_analytics_engineering.stg_customers", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_id", "model": "{{ get_where_subquery(ref('stg_customers')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_stg_employees_employee_id.db72478d64": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_stg_employees_employee_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_stg_employees_employee_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.unique_stg_employees_employee_id.db72478d64", "fqn": ["dbt_analytics_engineering", "staging", "unique_stg_employees_employee_id"], "alias": "unique_stg_employees_employee_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4190538, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_employees", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_employees"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_employees_employee_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n employee_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_employees\"\nwhere employee_id is not null\ngroup by employee_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "employee_id", "file_key_name": "models.stg_employees", "attached_node": "model.dbt_analytics_engineering.stg_employees", "test_metadata": {"name": "unique", "kwargs": {"column_name": "employee_id", "model": "{{ get_where_subquery(ref('stg_employees')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_employees_employee_id.7f6f73d15b": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_employees_employee_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_employees_employee_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_employees_employee_id.7f6f73d15b", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_employees_employee_id"], "alias": "not_null_stg_employees_employee_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4230173, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_employees", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_employees"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_employees_employee_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"stg_employees\"\nwhere employee_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "employee_id", "file_key_name": "models.stg_employees", "attached_node": "model.dbt_analytics_engineering.stg_employees", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "employee_id", "model": "{{ get_where_subquery(ref('stg_employees')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_stg_inventory_inventory_snapshot_sk.424f04d53c": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_stg_inventory_inventory_snapshot_sk", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_stg_inventory_inventory_snapshot_sk.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.unique_stg_inventory_inventory_snapshot_sk.424f04d53c", "fqn": ["dbt_analytics_engineering", "staging", "unique_stg_inventory_inventory_snapshot_sk"], "alias": "unique_stg_inventory_inventory_snapshot_sk", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4272914, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_inventory", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_inventory"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_inventory_inventory_snapshot_sk.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n inventory_snapshot_sk as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_inventory\"\nwhere inventory_snapshot_sk is not null\ngroup by inventory_snapshot_sk\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "inventory_snapshot_sk", "file_key_name": "models.stg_inventory", "attached_node": "model.dbt_analytics_engineering.stg_inventory", "test_metadata": {"name": "unique", "kwargs": {"column_name": "inventory_snapshot_sk", "model": "{{ get_where_subquery(ref('stg_inventory')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_inventory_inventory_snapshot_sk.54b4a35ec9": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_inventory_inventory_snapshot_sk", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_inventory_inventory_snapshot_sk.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_inventory_inventory_snapshot_sk.54b4a35ec9", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_inventory_inventory_snapshot_sk"], "alias": "not_null_stg_inventory_inventory_snapshot_sk", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.431425, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_inventory", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_inventory"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_inventory_snapshot_sk.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect inventory_snapshot_sk\nfrom \"RetailDB\".\"bronze\".\"stg_inventory\"\nwhere inventory_snapshot_sk is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "inventory_snapshot_sk", "file_key_name": "models.stg_inventory", "attached_node": "model.dbt_analytics_engineering.stg_inventory", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "inventory_snapshot_sk", "model": "{{ get_where_subquery(ref('stg_inventory')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_inventory_snapshot_date.f47349bb98": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_inventory_snapshot_date", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_inventory_snapshot_date.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_inventory_snapshot_date.f47349bb98", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_inventory_snapshot_date"], "alias": "not_null_stg_inventory_snapshot_date", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4368236, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_inventory", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_inventory"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_snapshot_date.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect snapshot_date\nfrom \"RetailDB\".\"bronze\".\"stg_inventory\"\nwhere snapshot_date is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "snapshot_date", "file_key_name": "models.stg_inventory", "attached_node": "model.dbt_analytics_engineering.stg_inventory", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "snapshot_date", "model": "{{ get_where_subquery(ref('stg_inventory')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_inventory_product_id.065830936a": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_inventory_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_inventory_product_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_inventory_product_id.065830936a", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_inventory_product_id"], "alias": "not_null_stg_inventory_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4412048, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_inventory", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_inventory"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"stg_inventory\"\nwhere product_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.stg_inventory", "attached_node": "model.dbt_analytics_engineering.stg_inventory", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('stg_inventory')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_products_product_id.6373b0acf3": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_products_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_products_product_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_products_product_id.6373b0acf3", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_products_product_id"], "alias": "not_null_stg_products_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4451356, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_products", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_products"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"stg_products\"\nwhere product_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.stg_products", "attached_node": "model.dbt_analytics_engineering.stg_products", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('stg_products')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_stg_products_product_id.7d950a1467": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_stg_products_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_stg_products_product_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.unique_stg_products_product_id.7d950a1467", "fqn": ["dbt_analytics_engineering", "staging", "unique_stg_products_product_id"], "alias": "unique_stg_products_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4497023, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_products", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_products"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_products_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_products\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.stg_products", "attached_node": "model.dbt_analytics_engineering.stg_products", "test_metadata": {"name": "unique", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('stg_products')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_products_sku.a9d39174ce": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_products_sku", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_products_sku.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_products_sku.a9d39174ce", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_products_sku"], "alias": "not_null_stg_products_sku", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4535549, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_products", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_products"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_sku.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect sku\nfrom \"RetailDB\".\"bronze\".\"stg_products\"\nwhere sku is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "sku", "file_key_name": "models.stg_products", "attached_node": "model.dbt_analytics_engineering.stg_products", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "sku", "model": "{{ get_where_subquery(ref('stg_products')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_stg_returns_return_id.c2232dee8a": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_stg_returns_return_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_stg_returns_return_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.unique_stg_returns_return_id.c2232dee8a", "fqn": ["dbt_analytics_engineering", "staging", "unique_stg_returns_return_id"], "alias": "unique_stg_returns_return_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4572427, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_returns", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_returns"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_returns_return_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n return_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_returns\"\nwhere return_id is not null\ngroup by return_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_id", "file_key_name": "models.stg_returns", "attached_node": "model.dbt_analytics_engineering.stg_returns", "test_metadata": {"name": "unique", "kwargs": {"column_name": "return_id", "model": "{{ get_where_subquery(ref('stg_returns')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_returns_return_id.8e8e7cd8be": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_returns_return_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_returns_return_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_returns_return_id.8e8e7cd8be", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_returns_return_id"], "alias": "not_null_stg_returns_return_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.460963, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_returns", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_returns"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_returns_return_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_id\nfrom \"RetailDB\".\"bronze\".\"stg_returns\"\nwhere return_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_id", "file_key_name": "models.stg_returns", "attached_node": "model.dbt_analytics_engineering.stg_returns", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "return_id", "model": "{{ get_where_subquery(ref('stg_returns')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_stg_reviews_review_id.9b6c259f3c": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_stg_reviews_review_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_stg_reviews_review_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.unique_stg_reviews_review_id.9b6c259f3c", "fqn": ["dbt_analytics_engineering", "staging", "unique_stg_reviews_review_id"], "alias": "unique_stg_reviews_review_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4655397, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_reviews", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_reviews"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_reviews_review_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n review_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_reviews\"\nwhere review_id is not null\ngroup by review_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_id", "file_key_name": "models.stg_reviews", "attached_node": "model.dbt_analytics_engineering.stg_reviews", "test_metadata": {"name": "unique", "kwargs": {"column_name": "review_id", "model": "{{ get_where_subquery(ref('stg_reviews')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_reviews_review_id.943b8fc3e4": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_reviews_review_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_reviews_review_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_reviews_review_id.943b8fc3e4", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_reviews_review_id"], "alias": "not_null_stg_reviews_review_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4696126, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_reviews", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_reviews"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_reviews_review_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_id\nfrom \"RetailDB\".\"bronze\".\"stg_reviews\"\nwhere review_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_id", "file_key_name": "models.stg_reviews", "attached_node": "model.dbt_analytics_engineering.stg_reviews", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "review_id", "model": "{{ get_where_subquery(ref('stg_reviews')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_stg_stores_store_id.2e80d074c2": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_stg_stores_store_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_stg_stores_store_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.unique_stg_stores_store_id.2e80d074c2", "fqn": ["dbt_analytics_engineering", "staging", "unique_stg_stores_store_id"], "alias": "unique_stg_stores_store_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4734197, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stores", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_stores"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_stores_store_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n store_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_stores\"\nwhere store_id is not null\ngroup by store_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.stg_stores", "attached_node": "model.dbt_analytics_engineering.stg_stores", "test_metadata": {"name": "unique", "kwargs": {"column_name": "store_id", "model": "{{ get_where_subquery(ref('stg_stores')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_stores_store_id.ebecf07ec6": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_stores_store_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_stores_store_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_stores_store_id.ebecf07ec6", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_stores_store_id"], "alias": "not_null_stg_stores_store_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.4771652, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stores", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_stores"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_stores_store_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"stg_stores\"\nwhere store_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.stg_stores", "attached_node": "model.dbt_analytics_engineering.stg_stores", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "store_id", "model": "{{ get_where_subquery(ref('stg_stores')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_stg_transactions_transaction_id.ee9a78a396": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_stg_transactions_transaction_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_stg_transactions_transaction_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.unique_stg_transactions_transaction_id.ee9a78a396", "fqn": ["dbt_analytics_engineering", "staging", "unique_stg_transactions_transaction_id"], "alias": "unique_stg_transactions_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.481521, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_transactions"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_transactions_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n transaction_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_transactions\"\nwhere transaction_id is not null\ngroup by transaction_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "transaction_id", "file_key_name": "models.stg_transactions", "attached_node": "model.dbt_analytics_engineering.stg_transactions", "test_metadata": {"name": "unique", "kwargs": {"column_name": "transaction_id", "model": "{{ get_where_subquery(ref('stg_transactions')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_transactions_transaction_id.1d00a8e2e4": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_transactions_transaction_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_transactions_transaction_id.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_transactions_transaction_id.1d00a8e2e4", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_transactions_transaction_id"], "alias": "not_null_stg_transactions_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.485778, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_transactions"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect transaction_id\nfrom \"RetailDB\".\"bronze\".\"stg_transactions\"\nwhere transaction_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "transaction_id", "file_key_name": "models.stg_transactions", "attached_node": "model.dbt_analytics_engineering.stg_transactions", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "transaction_id", "model": "{{ get_where_subquery(ref('stg_transactions')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_stg_transactions_order_line_number.abd883623b": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_stg_transactions_order_line_number", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_stg_transactions_order_line_number.sql", "original_file_path": "models/staging/_stg__retail__models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_stg_transactions_order_line_number.abd883623b", "fqn": ["dbt_analytics_engineering", "staging", "not_null_stg_transactions_order_line_number"], "alias": "not_null_stg_transactions_order_line_number", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782269923.489782, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.stg_transactions"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_order_line_number.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect order_line_number\nfrom \"RetailDB\".\"bronze\".\"stg_transactions\"\nwhere order_line_number is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "order_line_number", "file_key_name": "models.stg_transactions", "attached_node": "model.dbt_analytics_engineering.stg_transactions", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "order_line_number", "model": "{{ get_where_subquery(ref('stg_transactions')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_inventory_stock_inventory_snapshot_sk.9d7117fc4c": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_inventory_stock_inventory_snapshot_sk", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_inventory_stock_inventory_snapshot_sk.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_inventory_stock_inventory_snapshot_sk.9d7117fc4c", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "unique_int_inventory_stock_inventory_snapshot_sk"], "alias": "unique_int_inventory_stock_inventory_snapshot_sk", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782277033.4659584, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_stock", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_stock"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_stock_inventory_snapshot_sk.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n inventory_snapshot_sk as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_inventory_stock\"\nwhere inventory_snapshot_sk is not null\ngroup by inventory_snapshot_sk\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "inventory_snapshot_sk", "file_key_name": "models.int_inventory_stock", "attached_node": "model.dbt_analytics_engineering.int_inventory_stock", "test_metadata": {"name": "unique", "kwargs": {"column_name": "inventory_snapshot_sk", "model": "{{ get_where_subquery(ref('int_inventory_stock')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_inventory_stock_inventory_snapshot_sk.ff913462e4": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_inventory_stock_inventory_snapshot_sk", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_inventory_stock_inventory_snapshot_sk.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_stock_inventory_snapshot_sk.ff913462e4", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "not_null_int_inventory_stock_inventory_snapshot_sk"], "alias": "not_null_int_inventory_stock_inventory_snapshot_sk", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782277033.4702146, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_stock", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_stock"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_stock_inventory_snapshot_sk.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect inventory_snapshot_sk\nfrom \"RetailDB\".\"bronze\".\"int_inventory_stock\"\nwhere inventory_snapshot_sk is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "inventory_snapshot_sk", "file_key_name": "models.int_inventory_stock", "attached_node": "model.dbt_analytics_engineering.int_inventory_stock", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "inventory_snapshot_sk", "model": "{{ get_where_subquery(ref('int_inventory_stock')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_inventory_valuation_inventory_snapshot_sk.2d586ef9af": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_inventory_valuation_inventory_snapshot_sk", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_inventory_valuation_inventory_snapshot_sk.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_inventory_valuation_inventory_snapshot_sk.2d586ef9af", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "unique_int_inventory_valuation_inventory_snapshot_sk"], "alias": "unique_int_inventory_valuation_inventory_snapshot_sk", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782277033.474468, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_valuation", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_valuation"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_valuation_inventory_snapshot_sk.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n inventory_snapshot_sk as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_inventory_valuation\"\nwhere inventory_snapshot_sk is not null\ngroup by inventory_snapshot_sk\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "inventory_snapshot_sk", "file_key_name": "models.int_inventory_valuation", "attached_node": "model.dbt_analytics_engineering.int_inventory_valuation", "test_metadata": {"name": "unique", "kwargs": {"column_name": "inventory_snapshot_sk", "model": "{{ get_where_subquery(ref('int_inventory_valuation')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_inventory_valuation_inventory_snapshot_sk.036a80c28a": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_inventory_valuation_inventory_snapshot_sk", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_inventory_valuation_inventory_snapshot_sk.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_valuation_inventory_snapshot_sk.036a80c28a", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "not_null_int_inventory_valuation_inventory_snapshot_sk"], "alias": "not_null_int_inventory_valuation_inventory_snapshot_sk", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782277033.478313, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_valuation", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_valuation"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_inventory_snapshot_sk.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect inventory_snapshot_sk\nfrom \"RetailDB\".\"bronze\".\"int_inventory_valuation\"\nwhere inventory_snapshot_sk is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "inventory_snapshot_sk", "file_key_name": "models.int_inventory_valuation", "attached_node": "model.dbt_analytics_engineering.int_inventory_valuation", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "inventory_snapshot_sk", "model": "{{ get_where_subquery(ref('int_inventory_valuation')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_inventory_valuation_warehouse_location.835673fed9": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_inventory_valuation_warehouse_location", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_inventory_valuation_warehouse_location.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_valuation_warehouse_location.835673fed9", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "not_null_int_inventory_valuation_warehouse_location"], "alias": "not_null_int_inventory_valuation_warehouse_location", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782277033.482348, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_valuation", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_valuation"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_warehouse_location.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect warehouse_location\nfrom \"RetailDB\".\"bronze\".\"int_inventory_valuation\"\nwhere warehouse_location is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "warehouse_location", "file_key_name": "models.int_inventory_valuation", "attached_node": "model.dbt_analytics_engineering.int_inventory_valuation", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "warehouse_location", "model": "{{ get_where_subquery(ref('int_inventory_valuation')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_product_pricing_product_id.1ba68cde3a": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_product_pricing_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_product_pricing_product_id.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_product_pricing_product_id.1ba68cde3a", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "unique_int_product_pricing_product_id"], "alias": "unique_int_product_pricing_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782278236.6310368, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_pricing", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_pricing"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_pricing_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_pricing\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_product_pricing", "attached_node": "model.dbt_analytics_engineering.int_product_pricing", "test_metadata": {"name": "unique", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('int_product_pricing')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_product_pricing_product_id.fadb03a63d": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_product_pricing_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_product_pricing_product_id.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_product_pricing_product_id.fadb03a63d", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "not_null_int_product_pricing_product_id"], "alias": "not_null_int_product_pricing_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782278236.6349707, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_pricing", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_pricing"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_pricing_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_product_pricing\"\nwhere product_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_product_pricing", "attached_node": "model.dbt_analytics_engineering.int_product_pricing", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('int_product_pricing')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_product_supplier_product_id.3e37319263": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_product_supplier_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_product_supplier_product_id.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_product_supplier_product_id.3e37319263", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "unique_int_product_supplier_product_id"], "alias": "unique_int_product_supplier_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782278236.6392844, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_supplier", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_supplier"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_supplier_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_supplier\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_product_supplier", "attached_node": "model.dbt_analytics_engineering.int_product_supplier", "test_metadata": {"name": "unique", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('int_product_supplier')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_product_supplier_product_id.19984a84be": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_product_supplier_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_product_supplier_product_id.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_product_supplier_product_id.19984a84be", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "not_null_int_product_supplier_product_id"], "alias": "not_null_int_product_supplier_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782278236.6441083, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_supplier", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_supplier"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_supplier_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_product_supplier\"\nwhere product_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_product_supplier", "attached_node": "model.dbt_analytics_engineering.int_product_supplier", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('int_product_supplier')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_return_refund_return_id.1904e0149a": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_return_refund_return_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_return_refund_return_id.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_return_refund_return_id.1904e0149a", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "unique_int_return_refund_return_id"], "alias": "unique_int_return_refund_return_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782280693.1585703, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_refund", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_refund"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_refund_return_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n return_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_return_refund\"\nwhere return_id is not null\ngroup by return_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_id", "file_key_name": "models.int_return_refund", "attached_node": "model.dbt_analytics_engineering.int_return_refund", "test_metadata": {"name": "unique", "kwargs": {"column_name": "return_id", "model": "{{ get_where_subquery(ref('int_return_refund')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_return_refund_return_id.0a7f23f19b": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_return_refund_return_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_return_refund_return_id.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_return_refund_return_id.0a7f23f19b", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "not_null_int_return_refund_return_id"], "alias": "not_null_int_return_refund_return_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782280693.1885362, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_refund", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_refund"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_return_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_id\nfrom \"RetailDB\".\"bronze\".\"int_return_refund\"\nwhere return_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_id", "file_key_name": "models.int_return_refund", "attached_node": "model.dbt_analytics_engineering.int_return_refund", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "return_id", "model": "{{ get_where_subquery(ref('int_return_refund')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_return_refund_refund_method.83f1b9cc4e": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_return_refund_refund_method", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_return_refund_refund_method.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_return_refund_refund_method.83f1b9cc4e", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "not_null_int_return_refund_refund_method"], "alias": "not_null_int_return_refund_refund_method", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782280693.1931698, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_refund", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_refund"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_refund_method.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect refund_method\nfrom \"RetailDB\".\"bronze\".\"int_return_refund\"\nwhere refund_method is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "refund_method", "file_key_name": "models.int_return_refund", "attached_node": "model.dbt_analytics_engineering.int_return_refund", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "refund_method", "model": "{{ get_where_subquery(ref('int_return_refund')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_return_refund_refund_method__Cash__Original_Payment__Store_Credit.c4762af53a": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_return_refund_refund_method__Cash__Original_Payment__Store_Credit", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_return_refund_refund_method__Cash__Original_Payment__Store_Credit.c4762af53a", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "accepted_values_int_return_refund_refund_method__Cash__Original_Payment__Store_Credit"], "alias": "accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d"}, "created_at": 1782280693.197701, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_refund", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_refund"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n refund_method as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_return_refund\"\n group by refund_method\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Cash','Original Payment','Store Credit'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "refund_method", "file_key_name": "models.int_return_refund", "attached_node": "model.dbt_analytics_engineering.int_return_refund", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "refund_method", "values": ["Cash", "Original Payment", "Store Credit"], "model": "{{ get_where_subquery(ref('int_return_refund')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.int_review_rating": {"database": "RetailDB", "schema": "bronze", "name": "int_review_rating", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Reviews/int_review_rating.sql", "original_file_path": "models/intermediate/Reviews/int_review_rating.sql", "unique_id": "model.dbt_analytics_engineering.int_review_rating", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "int_review_rating"], "alias": "int_review_rating", "checksum": {"name": "sha256", "checksum": "3548c4eb9b85e2472f8761b5bf4fe00d7145366f6277c6034021c3ede4453363"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Processes customer review scores by implementing defensive type-casting and explicit boundary validation. \nThe model protects downstream aggregate scoring matrices (such as Average Rating Score) by \nfiltering out out-of-bounds ratings and corrupted text responses.\n", "columns": {"review_id": {"name": "review_id", "description": "Primary key matching back to the master feedback dimension.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "rating": {"name": "rating", "description": "The validated numerical assessment score assigned by the consumer.\n**Transformation Logic:** Casts the source string to an integer. Enforces a strict business boundary: \nvalues MUST sit between 1 and 5 inclusive. Any values outside this target scale default to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "rating_text": {"name": "rating_text", "description": "The raw textual comment or contextual feedback submitted along with the rating score.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Reviews/_int_reviews_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1782292127.7667513, "relation_name": "\"RetailDB\".\"bronze\".\"int_review_rating\"", "raw_code": "SELECT\n review_id,\n\n CASE\n WHEN TRY_CONVERT(INT, rating) BETWEEN 1 AND 5\n THEN TRY_CONVERT(INT, rating)\n ELSE NULL\n END AS rating,\n \n rating_text\nFROM {{ ref('stg_reviews') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_reviews", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.stg_reviews"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_rating.sql", "compiled": true, "compiled_code": "SELECT\n review_id,\n\n CASE\n WHEN TRY_CONVERT(INT, rating) BETWEEN 1 AND 5\n THEN TRY_CONVERT(INT, rating)\n ELSE NULL\n END AS rating,\n \n rating_text\nFROM \"RetailDB\".\"bronze\".\"stg_reviews\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["review_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_int_review_rating_review_id.fb244f2642": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_review_rating_review_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_review_rating_review_id.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_review_rating_review_id.fb244f2642", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "unique_int_review_rating_review_id"], "alias": "unique_int_review_rating_review_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782292127.9940178, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_rating", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_rating"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_rating_review_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n review_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_review_rating\"\nwhere review_id is not null\ngroup by review_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_id", "file_key_name": "models.int_review_rating", "attached_node": "model.dbt_analytics_engineering.int_review_rating", "test_metadata": {"name": "unique", "kwargs": {"column_name": "review_id", "model": "{{ get_where_subquery(ref('int_review_rating')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_review_rating_review_id.c8fa2eb4d0": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_review_rating_review_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_review_rating_review_id.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_review_rating_review_id.c8fa2eb4d0", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "not_null_int_review_rating_review_id"], "alias": "not_null_int_review_rating_review_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782292127.9988039, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_rating", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_rating"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_rating_review_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_id\nfrom \"RetailDB\".\"bronze\".\"int_review_rating\"\nwhere review_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_id", "file_key_name": "models.int_review_rating", "attached_node": "model.dbt_analytics_engineering.int_review_rating", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "review_id", "model": "{{ get_where_subquery(ref('int_review_rating')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_review_rating_rating__1__2__3__4__5.fa6071f8df": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_review_rating_rating__1__2__3__4__5", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_review_rating_rating__1__2__3__4__5.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_review_rating_rating__1__2__3__4__5.fa6071f8df", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "accepted_values_int_review_rating_rating__1__2__3__4__5"], "alias": "accepted_values_int_review_rating_rating__1__2__3__4__5", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782292128.0028586, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_rating", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_rating"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_rating_rating__1__2__3__4__5.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n rating as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_review_rating\"\n group by rating\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n '1','2','3','4','5'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "rating", "file_key_name": "models.int_review_rating", "attached_node": "model.dbt_analytics_engineering.int_review_rating", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "rating", "values": [1, 2, 3, 4, 5], "model": "{{ get_where_subquery(ref('int_review_rating')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.int_transaction_order": {"database": "RetailDB", "schema": "bronze", "name": "int_transaction_order", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Transactions/int_transaction_order.sql", "original_file_path": "models/intermediate/Transactions/int_transaction_order.sql", "unique_id": "model.dbt_analytics_engineering.int_transaction_order", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "int_transaction_order"], "alias": "int_transaction_order", "checksum": {"name": "sha256", "checksum": "abf55b2df11199a6b57afd0b933e9e8b06028dbd860afcd4b620c764fac01edf"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "**Layer:** Silver / Intermediate (Relational Topology & Identity Map)\n**Core Objective:** Maps relational entity keys across transactions, baskets, customers, products, stores, and personnel.\n**Engineering Strategy:** Acts as the high-volume identity backbone for relational star schemas. This model isolates \nthe relational keys needed for dimensional downstream joins, while cleansing operational basket metadata by applying a strict \nline-item numerical boundary rule to filter system entry errors.\n", "columns": {"transaction_id": {"name": "transaction_id", "description": "Master technical transaction row identity code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "order_id": {"name": "order_id", "description": "Parent business document identifier grouping individual item rows.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "Core foreign key matching the consumer account to the profile dimensions.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "Master foreign key linking the row to the merchandise product catalog table.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "store_id": {"name": "store_id", "description": "Enterprise entity key tracking the physical store location or digital node.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "employee_id": {"name": "employee_id", "description": "Human resources agent key tracking the checkout personnel or service rep.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "order_line_number": {"name": "order_line_number", "description": "The explicit sequential position number tracking the item row inside the parent checkout basket.\n**Business Logic & SQL Mechanics:** Enforces strict systemic limits via boundary filtering \n(`CASE WHEN order_line_number < 1 THEN NULL WHEN order_line_number > 20 THEN NULL ...`). \nInvalid sequences or out-of-bounds inputs resolve to `NULL` to keep corrupt data from altering basket size metrics.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Transactions/_int_transactions_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1782294455.7779007, "relation_name": "\"RetailDB\".\"bronze\".\"int_transaction_order\"", "raw_code": "SELECT\n transaction_id,\n order_id,\n customer_id,\n product_id,\n store_id,\n employee_id,\n CASE \n WHEN order_line_number < 1 THEN NULL \n WHEN order_line_number > 20 THEN NULL\n ELSE order_line_number\n END as order_line_number\nFROM {{ ref('stg_transactions') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.stg_transactions"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_order.sql", "compiled": true, "compiled_code": "SELECT\n transaction_id,\n order_id,\n customer_id,\n product_id,\n store_id,\n employee_id,\n CASE \n WHEN order_line_number < 1 THEN NULL \n WHEN order_line_number > 20 THEN NULL\n ELSE order_line_number\n END as order_line_number\nFROM \"RetailDB\".\"bronze\".\"stg_transactions\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["transaction_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_int_transaction_order_transaction_id.7ef27eea80": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_transaction_order_transaction_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_transaction_order_transaction_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_transaction_order_transaction_id.7ef27eea80", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "unique_int_transaction_order_transaction_id"], "alias": "unique_int_transaction_order_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782294456.0382223, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_order", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_order"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_order_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n transaction_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere transaction_id is not null\ngroup by transaction_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "transaction_id", "file_key_name": "models.int_transaction_order", "attached_node": "model.dbt_analytics_engineering.int_transaction_order", "test_metadata": {"name": "unique", "kwargs": {"column_name": "transaction_id", "model": "{{ get_where_subquery(ref('int_transaction_order')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_order_transaction_id.ce8ae051e2": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_order_transaction_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_order_transaction_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_transaction_id.ce8ae051e2", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_order_transaction_id"], "alias": "not_null_int_transaction_order_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782294456.0433638, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_order", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_order"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect transaction_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere transaction_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "transaction_id", "file_key_name": "models.int_transaction_order", "attached_node": "model.dbt_analytics_engineering.int_transaction_order", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "transaction_id", "model": "{{ get_where_subquery(ref('int_transaction_order')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_order_order_id.402e3d5af3": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_order_order_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_order_order_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_order_id.402e3d5af3", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_order_order_id"], "alias": "not_null_int_transaction_order_order_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782294456.047484, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_order", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_order"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_order_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect order_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere order_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "order_id", "file_key_name": "models.int_transaction_order", "attached_node": "model.dbt_analytics_engineering.int_transaction_order", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "order_id", "model": "{{ get_where_subquery(ref('int_transaction_order')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_order_customer_id.ad17338ea9": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_order_customer_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_order_customer_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_customer_id.ad17338ea9", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_order_customer_id"], "alias": "not_null_int_transaction_order_customer_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782294456.0517735, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_order", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_order"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_customer_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere customer_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "customer_id", "file_key_name": "models.int_transaction_order", "attached_node": "model.dbt_analytics_engineering.int_transaction_order", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_id", "model": "{{ get_where_subquery(ref('int_transaction_order')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_order_product_id.e1c83e6b81": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_order_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_order_product_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_product_id.e1c83e6b81", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_order_product_id"], "alias": "not_null_int_transaction_order_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782294456.056156, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_order", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_order"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere product_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_transaction_order", "attached_node": "model.dbt_analytics_engineering.int_transaction_order", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('int_transaction_order')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_order_store_id.a5a31f4088": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_order_store_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_order_store_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_store_id.a5a31f4088", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_order_store_id"], "alias": "not_null_int_transaction_order_store_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782294456.0608752, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_order", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_order"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_store_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere store_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.int_transaction_order", "attached_node": "model.dbt_analytics_engineering.int_transaction_order", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "store_id", "model": "{{ get_where_subquery(ref('int_transaction_order')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_order_employee_id.12d68f00f2": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_order_employee_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_order_employee_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_employee_id.12d68f00f2", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_order_employee_id"], "alias": "not_null_int_transaction_order_employee_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782294456.0653255, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_order", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_order"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_employee_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere employee_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "employee_id", "file_key_name": "models.int_transaction_order", "attached_node": "model.dbt_analytics_engineering.int_transaction_order", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "employee_id", "model": "{{ get_where_subquery(ref('int_transaction_order')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.dim_stores": {"database": "RetailDB", "schema": "bronze", "name": "dim_stores", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "marts/core/dimensions/dim_stores.sql", "original_file_path": "models/marts/core/dimensions/dim_stores.sql", "unique_id": "model.dbt_analytics_engineering.dim_stores", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "dim_stores"], "alias": "dim_stores", "checksum": {"name": "sha256", "checksum": "c7605cbb9a8751a67bf761ab69001b553af1e55d78959b0e2188d623de37f7a6"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["marts", "gold"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["marts", "gold"], "description": "Store dimension with profile, location, operations, and facility attributes.", "columns": {"store_id": {"name": "store_id", "description": "Unique store identifier.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "region": {"name": "region", "description": "Store operating region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_active": {"name": "is_active", "description": "Standardized active-store indicator.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/marts/core/dimensions/_dim_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["marts", "gold"]}, "created_at": 1782386145.8416662, "relation_name": "\"RetailDB\".\"bronze\".\"dim_stores\"", "raw_code": "SELECT\n p.store_id,\n p.store_name,\n p.store_type,\n p.manager_name,\n p.opened_date,\n l.address,\n l.city,\n l.state,\n l.state_full,\n l.zip_code,\n l.country,\n l.region,\n l.district,\n l.phone,\n o.sq_footage,\n o.num_employees,\n o.annual_rent_usd,\n o.is_active,\n o.has_parking,\n o.has_cafe\nFROM {{ ref('int_store_profile') }} AS p\nLEFT JOIN {{ ref('int_store_location') }} AS l\n ON p.store_id = l.store_id\nLEFT JOIN {{ ref('int_store_operations') }} AS o\n ON p.store_id = o.store_id\nWHERE p.store_id IS NOT NULL;", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_profile", "package": null, "version": null}, {"name": "int_store_location", "package": null, "version": null}, {"name": "int_store_operations", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.int_store_profile", "model.dbt_analytics_engineering.int_store_location", "model.dbt_analytics_engineering.int_store_operations"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_stores.sql", "compiled": true, "compiled_code": "SELECT\n p.store_id,\n p.store_name,\n p.store_type,\n p.manager_name,\n p.opened_date,\n l.address,\n l.city,\n l.state,\n l.state_full,\n l.zip_code,\n l.country,\n l.region,\n l.district,\n l.phone,\n o.sq_footage,\n o.num_employees,\n o.annual_rent_usd,\n o.is_active,\n o.has_parking,\n o.has_cafe\nFROM \"RetailDB\".\"bronze\".\"int_store_profile\" AS p\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_store_location\" AS l\n ON p.store_id = l.store_id\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_store_operations\" AS o\n ON p.store_id = o.store_id\nWHERE p.store_id IS NOT NULL;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["store_id"], "time_spine": null}, "model.dbt_analytics_engineering.dim_employees": {"database": "RetailDB", "schema": "bronze", "name": "dim_employees", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "marts/core/dimensions/dim_employees.sql", "original_file_path": "models/marts/core/dimensions/dim_employees.sql", "unique_id": "model.dbt_analytics_engineering.dim_employees", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "dim_employees"], "alias": "dim_employees", "checksum": {"name": "sha256", "checksum": "e17e8b54c32e071fda3c30621c734360638d5c64ec8ae297cd15c673736e6256"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["marts", "gold"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["marts", "gold"], "description": "Employee dimension with profile, contact, employment, store, and compensation attributes.", "columns": {"employee_id": {"name": "employee_id", "description": "Unique employee identifier.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/marts/core/dimensions/_dim_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["marts", "gold"]}, "created_at": 1782386145.8352191, "relation_name": "\"RetailDB\".\"bronze\".\"dim_employees\"", "raw_code": "SELECT \n p.employee_id,\n e.store_id,\n e.manager_id,\n CONCAT(p.first_name, ' ', p.last_name) as employee_name,\n e.job_title,\n e.department,\n e.performance_rating,\n e.store_name, \n e.store_city,\n c.email,\n c.phone,\n e.annual_salary_usd, \n e.commission_rate_pct, \n e.years_employed, \n e.is_active,\n p.hire_date \nFROM {{ ref('int_employee_profile') }} as p \n\nLEFT JOIN {{ ref('int_employee_contact') }} as c \n ON p.employee_id = c.employee_id\n\nLEFT JOIN {{ ref('int_employee_employment') }} as e \n ON p.employee_id = e.employee_id ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_profile", "package": null, "version": null}, {"name": "int_employee_contact", "package": null, "version": null}, {"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.int_employee_profile", "model.dbt_analytics_engineering.int_employee_contact", "model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_employees.sql", "compiled": true, "compiled_code": "SELECT \n p.employee_id,\n e.store_id,\n e.manager_id,\n CONCAT(p.first_name, ' ', p.last_name) as employee_name,\n e.job_title,\n e.department,\n e.performance_rating,\n e.store_name, \n e.store_city,\n c.email,\n c.phone,\n e.annual_salary_usd, \n e.commission_rate_pct, \n e.years_employed, \n e.is_active,\n p.hire_date \nFROM \"RetailDB\".\"bronze\".\"int_employee_profile\" as p \n\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_employee_contact\" as c \n ON p.employee_id = c.employee_id\n\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_employee_employment\" as e \n ON p.employee_id = e.employee_id ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["employee_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_dim_employees_employee_id.79828c8f30": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_dim_employees_employee_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_dim_employees_employee_id.sql", "original_file_path": "models/marts/core/dimensions/_dim_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_dim_employees_employee_id.79828c8f30", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "unique_dim_employees_employee_id"], "alias": "unique_dim_employees_employee_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782386146.0922515, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "dim_employees", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.dim_employees"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_employees_employee_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n employee_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"dim_employees\"\nwhere employee_id is not null\ngroup by employee_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "employee_id", "file_key_name": "models.dim_employees", "attached_node": "model.dbt_analytics_engineering.dim_employees", "test_metadata": {"name": "unique", "kwargs": {"column_name": "employee_id", "model": "{{ get_where_subquery(ref('dim_employees')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_dim_employees_employee_id.ef83a0c291": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_dim_employees_employee_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_dim_employees_employee_id.sql", "original_file_path": "models/marts/core/dimensions/_dim_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_dim_employees_employee_id.ef83a0c291", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "not_null_dim_employees_employee_id"], "alias": "not_null_dim_employees_employee_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782386146.0971174, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "dim_employees", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.dim_employees"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_employees_employee_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"dim_employees\"\nwhere employee_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "employee_id", "file_key_name": "models.dim_employees", "attached_node": "model.dbt_analytics_engineering.dim_employees", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "employee_id", "model": "{{ get_where_subquery(ref('dim_employees')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_dim_stores_store_id.0479724a85": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_dim_stores_store_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_dim_stores_store_id.sql", "original_file_path": "models/marts/core/dimensions/_dim_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_dim_stores_store_id.0479724a85", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "unique_dim_stores_store_id"], "alias": "unique_dim_stores_store_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782386146.1099038, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "dim_stores", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.dim_stores"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_stores_store_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n store_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"dim_stores\"\nwhere store_id is not null\ngroup by store_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.dim_stores", "attached_node": "model.dbt_analytics_engineering.dim_stores", "test_metadata": {"name": "unique", "kwargs": {"column_name": "store_id", "model": "{{ get_where_subquery(ref('dim_stores')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_dim_stores_store_id.e93781bc63": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_dim_stores_store_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_dim_stores_store_id.sql", "original_file_path": "models/marts/core/dimensions/_dim_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_dim_stores_store_id.e93781bc63", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "not_null_dim_stores_store_id"], "alias": "not_null_dim_stores_store_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782386146.1147902, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "dim_stores", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.dim_stores"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_stores_store_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"dim_stores\"\nwhere store_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.dim_stores", "attached_node": "model.dbt_analytics_engineering.dim_stores", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "store_id", "model": "{{ get_where_subquery(ref('dim_stores')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_dim_stores_is_active__True__False__Unknown.35f5206575": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_dim_stores_is_active__True__False__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_dim_stores_is_active__True__False__Unknown.sql", "original_file_path": "models/marts/core/dimensions/_dim_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_dim_stores_is_active__True__False__Unknown.35f5206575", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "accepted_values_dim_stores_is_active__True__False__Unknown"], "alias": "accepted_values_dim_stores_is_active__True__False__Unknown", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782386146.1192944, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "dim_stores", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.dim_stores"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/accepted_values_dim_stores_is_active__True__False__Unknown.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_active as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"dim_stores\"\n group by is_active\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "is_active", "file_key_name": "models.dim_stores", "attached_node": "model.dbt_analytics_engineering.dim_stores", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "is_active", "values": ["True", "False", "Unknown"], "model": "{{ get_where_subquery(ref('dim_stores')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.dim_products": {"database": "RetailDB", "schema": "bronze", "name": "dim_products", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "marts/core/dimensions/dim_products.sql", "original_file_path": "models/marts/core/dimensions/dim_products.sql", "unique_id": "model.dbt_analytics_engineering.dim_products", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "dim_products"], "alias": "dim_products", "checksum": {"name": "sha256", "checksum": "c8727e0706c4ebbbee52ad347a157cbd584fdae0b00384bdf964f98db0c29226"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["marts", "gold"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["marts", "gold"], "description": "Product dimension with catalog, pricing, inventory status, supplier, and review summary attributes.", "columns": {"product_id": {"name": "product_id", "description": "Unique product identifier.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "sku": {"name": "sku", "description": "Standardized product SKU.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "category": {"name": "category", "description": "Standardized product category.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/marts/core/dimensions/_dim_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["marts", "gold"]}, "created_at": 1782490636.4168909, "relation_name": "\"RetailDB\".\"bronze\".\"dim_products\"", "raw_code": "SELECT\n a.product_id,\n a.sku,\n a.product_name,\n a.brand,\n a.category,\n a.sub_category,\n a.department,\n a.launched_date,\n a.product_url,\n p.base_price_usd,\n p.cost_price_usd,\n p.gross_margin_pct,\n i.is_available,\n i.stock_quantity,\n i.reorder_level,\n s.supplier_name,\n s.supplier_country,\n s.weight_kg,\n s.warranty_years,\n s.rating_avg,\n s.review_count\nFROM {{ ref('int_product_attributes') }} AS a\nLEFT JOIN {{ ref('int_product_pricing') }} AS p\n ON a.product_id = p.product_id\nLEFT JOIN {{ ref('int_product_inventory') }} AS i\n ON a.product_id = i.product_id\nLEFT JOIN {{ ref('int_product_supplier') }} AS s\n ON a.product_id = s.product_id ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}, {"name": "int_product_pricing", "package": null, "version": null}, {"name": "int_product_inventory", "package": null, "version": null}, {"name": "int_product_supplier", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.int_product_attributes", "model.dbt_analytics_engineering.int_product_pricing", "model.dbt_analytics_engineering.int_product_inventory", "model.dbt_analytics_engineering.int_product_supplier"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_products.sql", "compiled": true, "compiled_code": "SELECT\n a.product_id,\n a.sku,\n a.product_name,\n a.brand,\n a.category,\n a.sub_category,\n a.department,\n a.launched_date,\n a.product_url,\n p.base_price_usd,\n p.cost_price_usd,\n p.gross_margin_pct,\n i.is_available,\n i.stock_quantity,\n i.reorder_level,\n s.supplier_name,\n s.supplier_country,\n s.weight_kg,\n s.warranty_years,\n s.rating_avg,\n s.review_count\nFROM \"RetailDB\".\"bronze\".\"int_product_attributes\" AS a\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_product_pricing\" AS p\n ON a.product_id = p.product_id\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_product_inventory\" AS i\n ON a.product_id = i.product_id\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_product_supplier\" AS s\n ON a.product_id = s.product_id ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["product_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_dim_products_product_id.ef7b2a9985": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_dim_products_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_dim_products_product_id.sql", "original_file_path": "models/marts/core/dimensions/_dim_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_dim_products_product_id.ef7b2a9985", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "unique_dim_products_product_id"], "alias": "unique_dim_products_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782490636.5661983, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "dim_products", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.dim_products"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_products_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"dim_products\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.dim_products", "attached_node": "model.dbt_analytics_engineering.dim_products", "test_metadata": {"name": "unique", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('dim_products')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_dim_products_product_id.c8aba288d1": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_dim_products_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_dim_products_product_id.sql", "original_file_path": "models/marts/core/dimensions/_dim_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_dim_products_product_id.c8aba288d1", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "not_null_dim_products_product_id"], "alias": "not_null_dim_products_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1782490636.5692754, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "dim_products", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.dim_products"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_products_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"dim_products\"\nwhere product_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.dim_products", "attached_node": "model.dbt_analytics_engineering.dim_products", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('dim_products')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.dim_inventory": {"database": "RetailDB", "schema": "bronze", "name": "dim_inventory", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "marts/core/dimensions/dim_inventory.sql", "original_file_path": "models/marts/core/dimensions/dim_inventory.sql", "unique_id": "model.dbt_analytics_engineering.dim_inventory", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "dim_inventory"], "alias": "dim_inventory", "checksum": {"name": "sha256", "checksum": "7c5b503a0ef7207c5aeae3e435dd04355c4afa967d682f2ab1095d9d52a3540f"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["marts", "gold", "marts", "dimension", "inventory"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "product_snapshot_sk", "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["marts", "gold", "dimension", "inventory"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["marts", "dimension", "inventory"], "unique_key": "product_snapshot_sk"}, "created_at": 1782490740.3670945, "relation_name": "\"RetailDB\".\"bronze\".\"dim_inventory\"", "raw_code": "-- models/marts/core/dimensions/dim_inventory.sql\n{{ \n config(\n materialized='table',\n unique_key='product_snapshot_sk',\n tags=['marts', 'dimension', 'inventory']\n ) \n}}\n\n/*\n Description: Product dimension with SCD Type 2 tracking\n Grain: 1 row per product snapshot change\n Load: Full refresh daily\n*/\n\nWITH product_base AS (\n SELECT\n p.inventory_snapshot_sk,\n p.snapshot_date,\n p.product_id,\n p.product_name,\n p.sku,\n p.category,\n v.unit_cost,\n v.unit_price,\n v.warehouse_location,\n v.store_id\n FROM {{ ref('int_inventory_product') }} p\n INNER JOIN {{ ref('int_inventory_valuation') }} v\n ON p.inventory_snapshot_sk = v.inventory_snapshot_sk\n),\n\nproduct_with_lead AS (\n SELECT\n *,\n LEAD(snapshot_date) OVER (\n PARTITION BY product_id \n ORDER BY snapshot_date\n ) as next_effective_date\n FROM product_base\n)\n\nSELECT\n {{ dbt_utils.generate_surrogate_key([\n 'product_id', \n 'snapshot_date'\n ]) }} as product_snapshot_sk,\n \n product_id,\n inventory_snapshot_sk,\n product_name,\n sku,\n category,\n \n unit_cost,\n unit_price,\n unit_price - unit_cost as unit_margin,\n CASE \n WHEN unit_price = 0 OR unit_price IS NULL THEN 0\n ELSE ROUND(((unit_price - unit_cost) / unit_price) * 100, 2)\n END as margin_percentage,\n \n warehouse_location,\n store_id,\n \n snapshot_date as effective_from_date,\n next_effective_date as effective_to_date,\n \n CASE \n WHEN next_effective_date IS NULL THEN 1 \n ELSE 0 \n END as is_current_record,\n \n CASE \n WHEN unit_cost > unit_price THEN 1 \n ELSE 0 \n END as is_negative_margin,\n \n GETDATE() as dbt_created_at,\n GETDATE() as dbt_updated_at\n \nFROM product_with_lead\nWHERE snapshot_date IS NOT NULL", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_product", "package": null, "version": null}, {"name": "int_inventory_valuation", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.dbt_analytics_engineering.int_inventory_product", "model.dbt_analytics_engineering.int_inventory_valuation"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_inventory.sql", "compiled": true, "compiled_code": "-- models/marts/core/dimensions/dim_inventory.sql\n\n\n/*\n Description: Product dimension with SCD Type 2 tracking\n Grain: 1 row per product snapshot change\n Load: Full refresh daily\n*/\n\nWITH product_base AS (\n SELECT\n p.inventory_snapshot_sk,\n p.snapshot_date,\n p.product_id,\n p.product_name,\n p.sku,\n p.category,\n v.unit_cost,\n v.unit_price,\n v.warehouse_location,\n v.store_id\n FROM \"RetailDB\".\"bronze\".\"int_inventory_product\" p\n INNER JOIN \"RetailDB\".\"bronze\".\"int_inventory_valuation\" v\n ON p.inventory_snapshot_sk = v.inventory_snapshot_sk\n),\n\nproduct_with_lead AS (\n SELECT\n *,\n LEAD(snapshot_date) OVER (\n PARTITION BY product_id \n ORDER BY snapshot_date\n ) as next_effective_date\n FROM product_base\n)\n\nSELECT\n \n lower(convert(varchar(50), hashbytes('md5', coalesce(convert(varchar(8000), concat(coalesce(cast(product_id as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'), '-', coalesce(cast(snapshot_date as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'))), '')), 2))\n as product_snapshot_sk,\n \n product_id,\n inventory_snapshot_sk,\n product_name,\n sku,\n category,\n \n unit_cost,\n unit_price,\n unit_price - unit_cost as unit_margin,\n CASE \n WHEN unit_price = 0 OR unit_price IS NULL THEN 0\n ELSE ROUND(((unit_price - unit_cost) / unit_price) * 100, 2)\n END as margin_percentage,\n \n warehouse_location,\n store_id,\n \n snapshot_date as effective_from_date,\n next_effective_date as effective_to_date,\n \n CASE \n WHEN next_effective_date IS NULL THEN 1 \n ELSE 0 \n END as is_current_record,\n \n CASE \n WHEN unit_cost > unit_price THEN 1 \n ELSE 0 \n END as is_negative_margin,\n \n GETDATE() as dbt_created_at,\n GETDATE() as dbt_updated_at\n \nFROM product_with_lead\nWHERE snapshot_date IS NOT NULL", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "test.dbt_analytics_engineering.valid_zip_code": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "valid_zip_code", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "singular/valid_zip_code.sql", "original_file_path": "tests/singular/valid_zip_code.sql", "unique_id": "test.dbt_analytics_engineering.valid_zip_code", "fqn": ["dbt_analytics_engineering", "singular", "valid_zip_code"], "alias": "valid_zip_code", "checksum": {"name": "sha256", "checksum": "39bd0944d437d1cde36398c2c58785cc08a29326fe148d1f3bf5337c14f550e1"}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784088687.1987326, "relation_name": null, "raw_code": "SELECT *\nFROM {{ ref('int_customer_location') }}\nWHERE zip_code IS NULL\n OR LEN(CAST(zip_code AS VARCHAR(10))) <> 5\n OR TRY_CAST(zip_code AS INT) IS NULL", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.int_customer_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/tests/singular/valid_zip_code.sql", "compiled": true, "compiled_code": "SELECT *\nFROM \"RetailDB\".\"bronze\".\"int_customer_location\"\nWHERE zip_code IS NULL\n OR LEN(CAST(zip_code AS VARCHAR(10))) <> 5\n OR TRY_CAST(zip_code AS INT) IS NULL", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}}, "model.dbt_analytics_engineering.dim_customers": {"database": "RetailDB", "schema": "bronze", "name": "dim_customers", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "marts/core/dimensions/dim_customers.sql", "original_file_path": "models/marts/core/dimensions/dim_customers.sql", "unique_id": "model.dbt_analytics_engineering.dim_customers", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "dim_customers"], "alias": "dim_customers", "checksum": {"name": "sha256", "checksum": "9b6668a0e931d42f97731ab07fa1ea2f9ff9c78eb60df2f500015b2a76400b9f"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["marts", "gold"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["marts", "gold"], "description": "Customer dimension with profile, contact, location, and segmentation attributes.", "columns": {"customer_id": {"name": "customer_id", "description": "Unique customer identifier.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/marts/core/dimensions/_dim_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["marts", "gold"]}, "created_at": 1784392132.5656002, "relation_name": "\"RetailDB\".\"bronze\".\"dim_customers\"", "raw_code": "SELECT \n p.customer_id, \n TRIM(CONCAT(p.title, ' ', p.first_name, ' ', p.last_name)) as customer_name,\n p.gender,\n p.date_of_birth,\n c.email,\n c.phone,\n l.address,\n l.zip_code,\n l.city,\n l.region,\n l.state,\n l.state_abbr,\n l.country,\n s.company,\n s.customer_segment,\n c.preferred_channel,\n s.is_active,\n s.loyalty_points,\n s.annual_income_usd,\n s.account_created_date\nFROM {{ ref('int_customer_profile') }} as p \n\nLEFT JOIN {{ ref('int_customers_contact') }} as c \n ON p.customer_id = c.customer_id \n\nLEFT JOIN {{ ref('int_customer_location') }} as l\n ON p.customer_id = l.customer_id\n\nLEFT JOIN {{ ref('int_customer_segmentation') }} as s \n ON s.customer_id = p.customer_id ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_profile", "package": null, "version": null}, {"name": "int_customers_contact", "package": null, "version": null}, {"name": "int_customer_location", "package": null, "version": null}, {"name": "int_customer_segmentation", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.int_customer_profile", "model.dbt_analytics_engineering.int_customers_contact", "model.dbt_analytics_engineering.int_customer_location", "model.dbt_analytics_engineering.int_customer_segmentation"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/dim_customers.sql", "compiled": true, "compiled_code": "SELECT \n p.customer_id, \n TRIM(CONCAT(p.title, ' ', p.first_name, ' ', p.last_name)) as customer_name,\n p.gender,\n p.date_of_birth,\n c.email,\n c.phone,\n l.address,\n l.zip_code,\n l.city,\n l.region,\n l.state,\n l.state_abbr,\n l.country,\n s.company,\n s.customer_segment,\n c.preferred_channel,\n s.is_active,\n s.loyalty_points,\n s.annual_income_usd,\n s.account_created_date\nFROM \"RetailDB\".\"bronze\".\"int_customer_profile\" as p \n\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_customers_contact\" as c \n ON p.customer_id = c.customer_id \n\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_customer_location\" as l\n ON p.customer_id = l.customer_id\n\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_customer_segmentation\" as s \n ON s.customer_id = p.customer_id ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["customer_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_dim_customers_customer_id.15c9f1e2fd": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_dim_customers_customer_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_dim_customers_customer_id.sql", "original_file_path": "models/marts/core/dimensions/_dim_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_dim_customers_customer_id.15c9f1e2fd", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "unique_dim_customers_customer_id"], "alias": "unique_dim_customers_customer_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784392132.5675964, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "dim_customers", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.dim_customers"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_customers_customer_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n customer_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"dim_customers\"\nwhere customer_id is not null\ngroup by customer_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "customer_id", "file_key_name": "models.dim_customers", "attached_node": "model.dbt_analytics_engineering.dim_customers", "test_metadata": {"name": "unique", "kwargs": {"column_name": "customer_id", "model": "{{ get_where_subquery(ref('dim_customers')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_dim_customers_customer_id.dd91cd1c8d": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_dim_customers_customer_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_dim_customers_customer_id.sql", "original_file_path": "models/marts/core/dimensions/_dim_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_dim_customers_customer_id.dd91cd1c8d", "fqn": ["dbt_analytics_engineering", "marts", "core", "dimensions", "not_null_dim_customers_customer_id"], "alias": "not_null_dim_customers_customer_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784392132.5707722, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "dim_customers", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.dim_customers"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_customers_customer_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"RetailDB\".\"bronze\".\"dim_customers\"\nwhere customer_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "customer_id", "file_key_name": "models.dim_customers", "attached_node": "model.dbt_analytics_engineering.dim_customers", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_id", "model": "{{ get_where_subquery(ref('dim_customers')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.int_employee_profile": {"database": "RetailDB", "schema": "bronze", "name": "int_employee_profile", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Employees/int_employee_profile.sql", "original_file_path": "models/intermediate/Employees/int_employee_profile.sql", "unique_id": "model.dbt_analytics_engineering.int_employee_profile", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "int_employee_profile"], "alias": "int_employee_profile", "checksum": {"name": "sha256", "checksum": "d89aa1017e20516425a0af47d2df1450294d91dce5f1f70adacc143dff423055"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "**Model Purpose:**\nCreates a trusted employee profile dataset by isolating, tokenizing, and standardizing \ncore identity and onboarding configurations from raw employee records. The model resolves \ncritical data quality issues by programmatically decomposing unified full name blocks into \ndiscrete name components (`first_name`, `last_name`) and parsing highly fragmented string \ninputs into deterministic, ISO-compliant calendar dates. The resulting dataset establishes \na high-integrity foundation for workforce demographics, accurate identity tracking, \nheadcount timelines, and downstream dimensional modeling.\n", "columns": {"employee_id": {"name": "employee_id", "description": "Primary key of the employee profile dimension. Inherited from the staging infrastructure \nand validated for row uniqueness.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "first_name": {"name": "first_name", "description": "The isolated given name of the employee. \n**Transformation Logic:** Calculated using a structural string metric. It counts the whitespace \ndelimiters within the raw name block. If exactly one space is present (representing a standard \ntwo-part name structure), it translates spaces to dots and leverages the system `PARSENAME` object \nmetadata parser to pull the second segment from the right.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "last_name": {"name": "last_name", "description": "The isolated family name or surname of the employee.\n**Transformation Logic:** Programmatically extracts the absolute right-most token from the \n`full_name` field by splitting on whitespace components. This field is guaranteed to populate \nregardless of whether the employee has a middle initial or complex prefix.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "hire_date": {"name": "hire_date", "description": "The canonical calendar date marking the employee's formal onboarding into the enterprise network. \n**Transformation Logic:** Converts multiple incoming text-based date patterns into an immutable \nISO-standard `DATE` (YYYY-MM-DD) format using an explicit `CASE` branching ladder:\n- Textual month names (e.g., 'January 15, 2021') and standard hyphen/slash formats \n (e.g., 'YYYY-MM-DD') are parsed via native conversion.\n- Regional date ambiguity is resolved dynamically: if the leading numerical segment exceeds 12,\n it is cast via International conventions (Styles 103/105); if the middle segment exceeds 12,\n it is treated as a US convention (Styles 101/110).\n- Any unmapped or non-standard variations safely fallback onto a standard casting function\n to maintain temporal tracking integrity.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Employees/_int_employees_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784393361.5168774, "relation_name": "\"RetailDB\".\"bronze\".\"int_employee_profile\"", "raw_code": "SELECT \n employee_id, \n\n CASE \n WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ','')) = 1 THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)\n END as first_name,\n\n PARSENAME(REPLACE(TRIM(full_name),' ','.'),1) as last_name,\n\n {{ standardize_date('hire_date') }} as hire_date\nFROM {{ ref('stg_employees') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_employees", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.standardize_date"], "nodes": ["model.dbt_analytics_engineering.stg_employees"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_profile.sql", "compiled": true, "compiled_code": "SELECT \n employee_id, \n\n CASE \n WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ','')) = 1 THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)\n END as first_name,\n\n PARSENAME(REPLACE(TRIM(full_name),' ','.'),1) as last_name,\n\n \n\n\n CASE\n WHEN TRIM(hire_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(hire_date))\n\n WHEN TRIM(hire_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(hire_date))\n\n WHEN TRIM(hire_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(hire_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(hire_date), 110)\n\n WHEN TRIM(hire_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(hire_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(hire_date), 105)\n\n WHEN TRIM(hire_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(hire_date))\n\n WHEN TRIM(hire_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(hire_date))\n\n WHEN TRIM(hire_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(hire_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(hire_date), 101)\n\n WHEN TRIM(hire_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(hire_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(hire_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(hire_date), 101)\n\n END\n\n as hire_date\nFROM \"RetailDB\".\"bronze\".\"stg_employees\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["employee_id"], "time_spine": null}, "model.dbt_analytics_engineering.int_review_transaction": {"database": "RetailDB", "schema": "bronze", "name": "int_review_transaction", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Reviews/int_review_transaction.sql", "original_file_path": "models/intermediate/Reviews/int_review_transaction.sql", "unique_id": "model.dbt_analytics_engineering.int_review_transaction", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "int_review_transaction"], "alias": "int_review_transaction", "checksum": {"name": "sha256", "checksum": "636280b65073311a5e2d2d8a1ebc3cb39ef35fad31cc23456f7a895ddb3100eb"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Normalizes and connects product review headers back to their original purchasing transactions, \nconsumer accounts, and items. The model processes temporal values through a multi-locale validation \nladder to convert multi-format text values into immutable ISO-standard dates.\n", "columns": {"review_id": {"name": "review_id", "description": "Primary key uniquely identifying the review transaction bridge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "txn_id": {"name": "txn_id", "description": "Foreign key mapping the review back to the source point-of-sale transaction record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "Foreign key linking to the corresponding customer entity profile.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "The full identity string of the purchasing customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "Foreign key linking to the corresponding product master record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_name": {"name": "product_name", "description": "Cleaned retail name nomenclature of the item reviewed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "review_date": {"name": "review_date", "description": "The standardized calendar logging date when the review was written.\n**Transformation Logic:** Converts multi-format text entries into a safe DATE data type via an explicit CASE validation tree:\n- Abbreviated or full textual month variations and standard ISO hyphen/slash paths are natively parsed.\n- Date ambiguity is handled defensively: if the middle segment exceeds 12, it is treated as US format (Style 101/110).\nIf the leading segment exceeds 12, it is handled as International format (Style 103/105).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Reviews/_int_reviews_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784393361.6768017, "relation_name": "\"RetailDB\".\"bronze\".\"int_review_transaction\"", "raw_code": "SELECT\n review_id,\n txn_id,\n\n customer_id,\n customer_name,\n\n product_id,\n product_name,\n\n {{ standardize_date('review_date') }} as review_date,\n\n CASE \n WHEN TRIM(LOWER(verified_purchase)) IN ('1', 'y', 'yes', 'true', 'verified') THEN 'Verified'\n WHEN TRIM(LOWER(verified_purchase)) IN ('0', 'n', 'no', 'false') THEN 'Not Verified' \n ELSE 'Unknown'\n END AS verified_purchase\nFROM {{ ref('stg_reviews') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_reviews", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.standardize_date"], "nodes": ["model.dbt_analytics_engineering.stg_reviews"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_transaction.sql", "compiled": true, "compiled_code": "SELECT\n review_id,\n txn_id,\n\n customer_id,\n customer_name,\n\n product_id,\n product_name,\n\n \n\n\n CASE\n WHEN TRIM(review_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(review_date))\n\n WHEN TRIM(review_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(review_date))\n\n WHEN TRIM(review_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(review_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(review_date), 110)\n\n WHEN TRIM(review_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(review_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(review_date), 105)\n\n WHEN TRIM(review_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(review_date))\n\n WHEN TRIM(review_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(review_date))\n\n WHEN TRIM(review_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(review_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(review_date), 101)\n\n WHEN TRIM(review_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(review_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(review_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(review_date), 101)\n\n END\n\n as review_date,\n\n CASE \n WHEN TRIM(LOWER(verified_purchase)) IN ('1', 'y', 'yes', 'true', 'verified') THEN 'Verified'\n WHEN TRIM(LOWER(verified_purchase)) IN ('0', 'n', 'no', 'false') THEN 'Not Verified' \n ELSE 'Unknown'\n END AS verified_purchase\nFROM \"RetailDB\".\"bronze\".\"stg_reviews\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["review_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_int_employee_profile_employee_id.a5993c7dd6": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_employee_profile_employee_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_employee_profile_employee_id.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_employee_profile_employee_id.a5993c7dd6", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "unique_int_employee_profile_employee_id"], "alias": "unique_int_employee_profile_employee_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393361.663079, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_profile_employee_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n employee_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_employee_profile\"\nwhere employee_id is not null\ngroup by employee_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "employee_id", "file_key_name": "models.int_employee_profile", "attached_node": "model.dbt_analytics_engineering.int_employee_profile", "test_metadata": {"name": "unique", "kwargs": {"column_name": "employee_id", "model": "{{ get_where_subquery(ref('int_employee_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_profile_employee_id.b0a9f39539": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_profile_employee_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_profile_employee_id.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_profile_employee_id.b0a9f39539", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_profile_employee_id"], "alias": "not_null_int_employee_profile_employee_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393361.6655898, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_employee_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"int_employee_profile\"\nwhere employee_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "employee_id", "file_key_name": "models.int_employee_profile", "attached_node": "model.dbt_analytics_engineering.int_employee_profile", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "employee_id", "model": "{{ get_where_subquery(ref('int_employee_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_profile_first_name.1ecad5e479": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_profile_first_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_profile_first_name.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_profile_first_name.1ecad5e479", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_profile_first_name"], "alias": "not_null_int_employee_profile_first_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393361.6676614, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_first_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect first_name\nfrom \"RetailDB\".\"bronze\".\"int_employee_profile\"\nwhere first_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "first_name", "file_key_name": "models.int_employee_profile", "attached_node": "model.dbt_analytics_engineering.int_employee_profile", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "first_name", "model": "{{ get_where_subquery(ref('int_employee_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_profile_last_name.580f17b21c": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_profile_last_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_profile_last_name.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_profile_last_name.580f17b21c", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_profile_last_name"], "alias": "not_null_int_employee_profile_last_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393361.6696901, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_last_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect last_name\nfrom \"RetailDB\".\"bronze\".\"int_employee_profile\"\nwhere last_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "last_name", "file_key_name": "models.int_employee_profile", "attached_node": "model.dbt_analytics_engineering.int_employee_profile", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "last_name", "model": "{{ get_where_subquery(ref('int_employee_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_profile_hire_date.7ee99bcf22": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_profile_hire_date", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_profile_hire_date.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_profile_hire_date.7ee99bcf22", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_profile_hire_date"], "alias": "not_null_int_employee_profile_hire_date", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393361.6716602, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_hire_date.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect hire_date\nfrom \"RetailDB\".\"bronze\".\"int_employee_profile\"\nwhere hire_date is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "hire_date", "file_key_name": "models.int_employee_profile", "attached_node": "model.dbt_analytics_engineering.int_employee_profile", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "hire_date", "model": "{{ get_where_subquery(ref('int_employee_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_review_transaction_review_id.ace040f037": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_review_transaction_review_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_review_transaction_review_id.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_review_transaction_review_id.ace040f037", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "unique_int_review_transaction_review_id"], "alias": "unique_int_review_transaction_review_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393361.6781225, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_transaction"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_transaction_review_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n review_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere review_id is not null\ngroup by review_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_id", "file_key_name": "models.int_review_transaction", "attached_node": "model.dbt_analytics_engineering.int_review_transaction", "test_metadata": {"name": "unique", "kwargs": {"column_name": "review_id", "model": "{{ get_where_subquery(ref('int_review_transaction')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_review_transaction_review_id.36ac118ba9": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_review_transaction_review_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_review_transaction_review_id.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_review_transaction_review_id.36ac118ba9", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "not_null_int_review_transaction_review_id"], "alias": "not_null_int_review_transaction_review_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393361.6802619, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_transaction"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_id\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere review_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_id", "file_key_name": "models.int_review_transaction", "attached_node": "model.dbt_analytics_engineering.int_review_transaction", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "review_id", "model": "{{ get_where_subquery(ref('int_review_transaction')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_review_transaction_txn_id.b153953529": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_review_transaction_txn_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_review_transaction_txn_id.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_review_transaction_txn_id.b153953529", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "not_null_int_review_transaction_txn_id"], "alias": "not_null_int_review_transaction_txn_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393361.6825585, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_transaction"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_txn_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect txn_id\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere txn_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "txn_id", "file_key_name": "models.int_review_transaction", "attached_node": "model.dbt_analytics_engineering.int_review_transaction", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "txn_id", "model": "{{ get_where_subquery(ref('int_review_transaction')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_review_transaction_customer_id.296d834f24": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_review_transaction_customer_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_review_transaction_customer_id.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_review_transaction_customer_id.296d834f24", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "not_null_int_review_transaction_customer_id"], "alias": "not_null_int_review_transaction_customer_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393361.6846066, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_transaction"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_customer_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere customer_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "customer_id", "file_key_name": "models.int_review_transaction", "attached_node": "model.dbt_analytics_engineering.int_review_transaction", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_id", "model": "{{ get_where_subquery(ref('int_review_transaction')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_review_transaction_product_id.980062fb89": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_review_transaction_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_review_transaction_product_id.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_review_transaction_product_id.980062fb89", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "not_null_int_review_transaction_product_id"], "alias": "not_null_int_review_transaction_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393361.6865757, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_transaction"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere product_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_review_transaction", "attached_node": "model.dbt_analytics_engineering.int_review_transaction", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('int_review_transaction')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_review_transaction_review_date.2e4911b1c8": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_review_transaction_review_date", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_review_transaction_review_date.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_review_transaction_review_date.2e4911b1c8", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "not_null_int_review_transaction_review_date"], "alias": "not_null_int_review_transaction_review_date", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393361.688543, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_transaction"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_date.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_date\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere review_date is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_date", "file_key_name": "models.int_review_transaction", "attached_node": "model.dbt_analytics_engineering.int_review_transaction", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "review_date", "model": "{{ get_where_subquery(ref('int_review_transaction')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.int_store_profile": {"database": "RetailDB", "schema": "bronze", "name": "int_store_profile", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Stores/int_store_profile.sql", "original_file_path": "models/intermediate/Stores/int_store_profile.sql", "unique_id": "model.dbt_analytics_engineering.int_store_profile", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "int_store_profile"], "alias": "int_store_profile", "checksum": {"name": "sha256", "checksum": "36def0cdb39dd2747d210d4c305c83686f3ba9707eef1e1a1fa40f727f7a8c65"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Extracts and structures core retail facility identities, assignments, and onboarding horizons. \nThe model handles heterogeneous date configuration layouts via a multi-locale conversion ladder, \nnormalizes structural typography strings into clean Title Case, and enforces minimum character checks.\n", "columns": {"store_id": {"name": "store_id", "description": "Primary key uniquely identifying the physical facility profile.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "manager_name": {"name": "manager_name", "description": "The full identity string of the active general store manager.\n**Transformation Logic:** Trims whitespace and applies Title Case formatting. Missing rows or \nstrings shorter than 2 characters default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "store_name": {"name": "store_name", "description": "The public banner or trading name of the retail outlet.\n**Transformation Logic:** Trims whitespace and applies Title Case formatting. Missing records or \nstrings shorter than 3 characters default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "store_type": {"name": "store_type", "description": "The operational classification of the outlet format (e.g., Flagship, Express).\n**Transformation Logic:** Trims whitespace and applies Title Case formatting. Missing inputs or \nstrings shorter than 3 characters default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "opened_date": {"name": "opened_date", "description": "The canonical calendar date marking the official grand opening of the facility.\n**Transformation Logic:** Implements an explicit CASE branching structure to parse textual or regional \nstring parameters into a clean, ISO-standard DATE data type:\n- Textual month lines and standard hyphen/slash paths are natively parsed via native conversions.\n- Multi-locale ambiguity is handled defensively: if the middle token exceeds 12, it is treated as US format (Style 101/110). If the leading segment exceeds 12, it is handled as International format (Style 103/105).\n- Unmapped variations fallback onto a standard casting function to maintain temporal tracking integrity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Stores/_int_stores_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784393822.0010483, "relation_name": "\"RetailDB\".\"bronze\".\"int_store_profile\"", "raw_code": "SELECT\n store_id,\n \n CASE \n WHEN manager_name IS NULL OR TRIM(manager_name) = '' OR LEN(TRIM(manager_name)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(manager_name))\n END as manager_name,\n\n CASE \n WHEN store_name IS NULL OR LEN(TRIM(store_name)) < 3 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(store_name))\n END as store_name,\n\n CASE \n WHEN store_type IS NULL OR LEN(TRIM(store_type)) < 3 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(store_type))\n END as store_type,\n\n{{ standardize_date('opened_date') }} as opened_date\nFROM {{ ref('stg_stores') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stores", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.standardize_date"], "nodes": ["model.dbt_analytics_engineering.stg_stores"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_profile.sql", "compiled": true, "compiled_code": "SELECT\n store_id,\n \n CASE \n WHEN manager_name IS NULL OR TRIM(manager_name) = '' OR LEN(TRIM(manager_name)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(manager_name))\n END as manager_name,\n\n CASE \n WHEN store_name IS NULL OR LEN(TRIM(store_name)) < 3 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(store_name))\n END as store_name,\n\n CASE \n WHEN store_type IS NULL OR LEN(TRIM(store_type)) < 3 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(store_type))\n END as store_type,\n\n\n\n\n CASE\n WHEN TRIM(opened_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(opened_date))\n\n WHEN TRIM(opened_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(opened_date))\n\n WHEN TRIM(opened_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(opened_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(opened_date), 110)\n\n WHEN TRIM(opened_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(opened_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(opened_date), 105)\n\n WHEN TRIM(opened_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(opened_date))\n\n WHEN TRIM(opened_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(opened_date))\n\n WHEN TRIM(opened_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(opened_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(opened_date), 101)\n\n WHEN TRIM(opened_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(opened_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(opened_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(opened_date), 101)\n\n END\n\n as opened_date\nFROM \"RetailDB\".\"bronze\".\"stg_stores\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["store_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_int_store_profile_store_id.d293596622": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_store_profile_store_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_store_profile_store_id.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_store_profile_store_id.d293596622", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "unique_int_store_profile_store_id"], "alias": "unique_int_store_profile_store_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393822.0025156, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_profile_store_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n store_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_store_profile\"\nwhere store_id is not null\ngroup by store_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.int_store_profile", "attached_node": "model.dbt_analytics_engineering.int_store_profile", "test_metadata": {"name": "unique", "kwargs": {"column_name": "store_id", "model": "{{ get_where_subquery(ref('int_store_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_profile_store_id.bb3e17dcc3": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_profile_store_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_profile_store_id.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_profile_store_id.bb3e17dcc3", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_profile_store_id"], "alias": "not_null_int_store_profile_store_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393822.0050006, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"int_store_profile\"\nwhere store_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.int_store_profile", "attached_node": "model.dbt_analytics_engineering.int_store_profile", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "store_id", "model": "{{ get_where_subquery(ref('int_store_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_profile_manager_name.7e1eb48b5b": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_profile_manager_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_profile_manager_name.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_profile_manager_name.7e1eb48b5b", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_profile_manager_name"], "alias": "not_null_int_store_profile_manager_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393822.007004, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_manager_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect manager_name\nfrom \"RetailDB\".\"bronze\".\"int_store_profile\"\nwhere manager_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "manager_name", "file_key_name": "models.int_store_profile", "attached_node": "model.dbt_analytics_engineering.int_store_profile", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "manager_name", "model": "{{ get_where_subquery(ref('int_store_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_profile_store_name.440ba3db70": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_profile_store_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_profile_store_name.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_profile_store_name.440ba3db70", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_profile_store_name"], "alias": "not_null_int_store_profile_store_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393822.0092695, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_name\nfrom \"RetailDB\".\"bronze\".\"int_store_profile\"\nwhere store_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_name", "file_key_name": "models.int_store_profile", "attached_node": "model.dbt_analytics_engineering.int_store_profile", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "store_name", "model": "{{ get_where_subquery(ref('int_store_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_profile_store_type.1533baa047": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_profile_store_type", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_profile_store_type.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_profile_store_type.1533baa047", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_profile_store_type"], "alias": "not_null_int_store_profile_store_type", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784393822.0113113, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_type.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_type\nfrom \"RetailDB\".\"bronze\".\"int_store_profile\"\nwhere store_type is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_type", "file_key_name": "models.int_store_profile", "attached_node": "model.dbt_analytics_engineering.int_store_profile", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "store_type", "model": "{{ get_where_subquery(ref('int_store_profile')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.int_store_location": {"database": "RetailDB", "schema": "bronze", "name": "int_store_location", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Stores/int_store_location.sql", "original_file_path": "models/intermediate/Stores/int_store_location.sql", "unique_id": "model.dbt_analytics_engineering.int_store_location", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "int_store_location"], "alias": "int_store_location", "checksum": {"name": "sha256", "checksum": "f052d291dd21807283130a8ba57a2256910ea95697b66a7707a64d71d5dffef6"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Creates a trusted store location dataset by cleaning, normalizing, and standardizing \ngeographic elements and communication paths. The model standardizes state abbreviations, \ncorrects country variations into standardized naming, converts structural tracking \nattributes into Title Case format, and enforces numeric structures on postal codes and phone components.\n", "columns": {"store_id": {"name": "store_id", "description": "Primary key identifying the individual physical retail store.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "address": {"name": "address", "description": "Standardized street address of the retail facility.\n**Transformation Logic:** Implements string trimming and converts to Title Case. If the string \nlength is shorter than 5 characters or completely missing, it falls back to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "city": {"name": "city", "description": "Standardized city location text.\n**Transformation Logic:** Trims whitespace and applies Title Case formatting. If the string \nlength is under 3 characters or unpopulated, it defaults to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "state": {"name": "state", "description": "Standardized two-character state abbreviation.\n**Transformation Logic:** Directly translates common full state strings (e.g., 'California', 'Texas') \ninto their uppercase 2-letter postal shortcuts (e.g., 'CA', 'TX'). If the length is less than 2, \nor if it contains a blank or null value, it defaults to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "state_full": {"name": "state_full", "description": "The canonical full state name.\n**Transformation Logic:** Applies whitespace trimming and converts strings to Title Case. \nIf the string is shorter than 4 characters or entirely blank, it maps to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "zip_code": {"name": "zip_code", "description": "The validated 5-digit store postal code.\n**Transformation Logic:** Casts the incoming alphanumeric string into an integer. If the string fails \nnumeric validation or does not map precisely to a clean integer format, it resolves as NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "country": {"name": "country", "description": "Standardized sovereign nation taxonomy labeling.\n**Transformation Logic:** Standardizes multiple shorthand or punctuation variations \n('us', 'usa', 'u.s.a', 'u.s', 'united states') into 'United States'. For all other countries, \nit applies Title Case. Shorter variants (under 2 characters) or blanks resolve to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "region": {"name": "region", "description": "Top-level corporate geographic sales region assignment. Standardized using whitespace trimming and \nTitle Case formatting. Inputs under 2 characters or unpopulated strings default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "district": {"name": "district", "description": "Granular corporate organizational operational district line. Standardized using whitespace trimming and \nTitle Case formatting. Inputs under 2 characters or unpopulated strings default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "phone": {"name": "phone", "description": "The employee or facility contact phone number standardized to include a country index prefix.\n**Transformation Logic:** Evaluates multiple structural telephone string configurations to inject standardized \nparentheses, hyphens, and whitespace spacing:\n- Parenthesized values ('(XXX) XXX-XXXX') are prepended with '+1 '.\n- International strings starting with '+' ('+XXXXXXXXXXX') are split into area and local sequences.\n- Hyphenated components ('XXX-XXX-XXXX') are prepended with '+1 ' and structured.\n- Missing entries, spaces, or corrupt non-matching inputs default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Stores/_int_stores_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784430174.0526395, "relation_name": "\"RetailDB\".\"bronze\".\"int_store_location\"", "raw_code": "SELECT\n store_id,\n\n CASE \n WHEN address IS NULL OR TRIM(address) = '' OR LEN(address) < 5 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(address))\n END address,\n\n CASE \n WHEN city IS NULL OR TRIM(city) = '' OR LEN(TRIM(city)) < 3 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(city))\n END as city,\n\n CASE \n WHEN TRIM(state) = 'California' THEN 'CA'\n WHEN TRIM(state) = 'Texas' THEN 'TX'\n WHEN TRIM(state) = 'Arizona' THEN 'AZ'\n WHEN TRIM(state) = 'Colorado' THEN 'CO'\n WHEN TRIM(state) = 'Maryland' THEN 'MD'\n WHEN TRIM(state) = 'Wisconsin' THEN 'WI'\n WHEN TRIM(state) = 'Illinois' THEN 'IL'\n WHEN TRIM(state) = 'Georgia' THEN 'GA'\n WHEN TRIM(state) = 'Tennessee' THEN 'TN'\n WHEN TRIM(state) = 'New Mexico' THEN 'NM'\n WHEN TRIM(state) = 'Ohio' THEN 'OH'\n WHEN state IS NULL OR TRIM(state) = '' OR LEN(TRIM(state)) < 2 THEN 'Unknown'\n ELSE state\n END as state, \n\n CASE \n WHEN state_full IS NULL OR TRIM(state_full) = '' OR LEN(TRIM(state_full)) < 4 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(state_full))\n END as state_full,\n\n CASE \n WHEN zip_code IS NULL OR TRY_CONVERT(INT, zip_code) IS NULL OR LEN(zip_code) < 5 THEN NULL \n ELSE TRY_CONVERT(INT, zip_code)\n END as zip_code,\n\n CASE \n WHEN TRIM(LOWER(country)) IN ('us', 'usa', 'united states', 'u.s.a', 'u.s') THEN 'United States'\n WHEN country IS NULL OR TRIM(country) = '' OR LEN(TRIM(country)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(country))\n END as country, \n\n CASE \n WHEN region IS NULL OR TRIM(region) = '' OR LEN(TRIM(region)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(region))\n END as region,\n\n CASE \n WHEN district IS NULL OR TRIM(district) = '' OR LEN(TRIM(district)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(district))\n END as district,\n\n {{ standardize_phone('phone') }} as phone\nFROM {{ ref('stg_stores') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stores", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.standardize_phone"], "nodes": ["model.dbt_analytics_engineering.stg_stores"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_location.sql", "compiled": true, "compiled_code": "SELECT\n store_id,\n\n CASE \n WHEN address IS NULL OR TRIM(address) = '' OR LEN(address) < 5 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(address))\n END address,\n\n CASE \n WHEN city IS NULL OR TRIM(city) = '' OR LEN(TRIM(city)) < 3 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(city))\n END as city,\n\n CASE \n WHEN TRIM(state) = 'California' THEN 'CA'\n WHEN TRIM(state) = 'Texas' THEN 'TX'\n WHEN TRIM(state) = 'Arizona' THEN 'AZ'\n WHEN TRIM(state) = 'Colorado' THEN 'CO'\n WHEN TRIM(state) = 'Maryland' THEN 'MD'\n WHEN TRIM(state) = 'Wisconsin' THEN 'WI'\n WHEN TRIM(state) = 'Illinois' THEN 'IL'\n WHEN TRIM(state) = 'Georgia' THEN 'GA'\n WHEN TRIM(state) = 'Tennessee' THEN 'TN'\n WHEN TRIM(state) = 'New Mexico' THEN 'NM'\n WHEN TRIM(state) = 'Ohio' THEN 'OH'\n WHEN state IS NULL OR TRIM(state) = '' OR LEN(TRIM(state)) < 2 THEN 'Unknown'\n ELSE state\n END as state, \n\n CASE \n WHEN state_full IS NULL OR TRIM(state_full) = '' OR LEN(TRIM(state_full)) < 4 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(state_full))\n END as state_full,\n\n CASE \n WHEN zip_code IS NULL OR TRY_CONVERT(INT, zip_code) IS NULL OR LEN(zip_code) < 5 THEN NULL \n ELSE TRY_CONVERT(INT, zip_code)\n END as zip_code,\n\n CASE \n WHEN TRIM(LOWER(country)) IN ('us', 'usa', 'united states', 'u.s.a', 'u.s') THEN 'United States'\n WHEN country IS NULL OR TRIM(country) = '' OR LEN(TRIM(country)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(country))\n END as country, \n\n CASE \n WHEN region IS NULL OR TRIM(region) = '' OR LEN(TRIM(region)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(region))\n END as region,\n\n CASE \n WHEN district IS NULL OR TRIM(district) = '' OR LEN(TRIM(district)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(district))\n END as district,\n\n \n\n CASE \n WHEN TRIM(phone) LIKE '+1__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 3, 3), ') ',\n SUBSTRING(TRIM(phone), 6, 3),'-',\n SUBSTRING(TRIM(phone),9,4))\n\n WHEN TRIM(phone) LIKE '__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1 ,3), ') ',\n SUBSTRING(TRIM(phone), 4 ,3), '-',\n SUBSTRING(TRIM(phone), 7, 4))\n\n WHEN TRIM(phone) LIKE '___-___-____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone), 9 ,4))\n\n WHEN TRIM(phone) LIKE '___.___.____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone),9, 4))\n\n WHEN TRIM(phone) LIKE '(___) ___-____' \n THEN CONCAT('+1 ', SUBSTRING(TRIM(phone), 1, 14))\n\n WHEN TRIM(phone) IS NULL OR TRIM(phone) = '' \n THEN 'Unknown'\n\n ELSE 'Unknown'\n END\n as phone\nFROM \"RetailDB\".\"bronze\".\"stg_stores\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["store_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_int_store_location_store_id.708c011d5e": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_store_location_store_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_store_location_store_id.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_store_location_store_id.708c011d5e", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "unique_int_store_location_store_id"], "alias": "unique_int_store_location_store_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784430174.2770717, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_location_store_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n store_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere store_id is not null\ngroup by store_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.int_store_location", "attached_node": "model.dbt_analytics_engineering.int_store_location", "test_metadata": {"name": "unique", "kwargs": {"column_name": "store_id", "model": "{{ get_where_subquery(ref('int_store_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_location_store_id.1a1692bb1e": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_location_store_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_location_store_id.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_store_id.1a1692bb1e", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_location_store_id"], "alias": "not_null_int_store_location_store_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784430174.2809052, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_store_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere store_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.int_store_location", "attached_node": "model.dbt_analytics_engineering.int_store_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "store_id", "model": "{{ get_where_subquery(ref('int_store_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_location_address.0ce7c5738d": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_location_address", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_location_address.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_address.0ce7c5738d", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_location_address"], "alias": "not_null_int_store_location_address", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784430174.2840683, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_address.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect address\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere address is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "address", "file_key_name": "models.int_store_location", "attached_node": "model.dbt_analytics_engineering.int_store_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "address", "model": "{{ get_where_subquery(ref('int_store_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_location_city.52cb5206b2": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_location_city", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_location_city.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_city.52cb5206b2", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_location_city"], "alias": "not_null_int_store_location_city", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784430174.2869568, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_city.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect city\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere city is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "city", "file_key_name": "models.int_store_location", "attached_node": "model.dbt_analytics_engineering.int_store_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "city", "model": "{{ get_where_subquery(ref('int_store_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_location_country.bf81137315": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_location_country", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_location_country.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_country.bf81137315", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_location_country"], "alias": "not_null_int_store_location_country", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784430174.2908404, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_country.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect country\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere country is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "country", "file_key_name": "models.int_store_location", "attached_node": "model.dbt_analytics_engineering.int_store_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "country", "model": "{{ get_where_subquery(ref('int_store_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_location_region.10b1faa762": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_location_region", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_location_region.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_region.10b1faa762", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_location_region"], "alias": "not_null_int_store_location_region", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784430174.2938282, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_region.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect region\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere region is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "region", "file_key_name": "models.int_store_location", "attached_node": "model.dbt_analytics_engineering.int_store_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "region", "model": "{{ get_where_subquery(ref('int_store_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_location_district.29150f3093": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_location_district", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_location_district.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_district.29150f3093", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_location_district"], "alias": "not_null_int_store_location_district", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784430174.2968075, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_district.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect district\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere district is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "district", "file_key_name": "models.int_store_location", "attached_node": "model.dbt_analytics_engineering.int_store_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "district", "model": "{{ get_where_subquery(ref('int_store_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_location_phone.2b5ee0a89d": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_location_phone", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_location_phone.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_phone.2b5ee0a89d", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_location_phone"], "alias": "not_null_int_store_location_phone", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784430174.2999225, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_phone.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect phone\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere phone is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "phone", "file_key_name": "models.int_store_location", "attached_node": "model.dbt_analytics_engineering.int_store_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "phone", "model": "{{ get_where_subquery(ref('int_store_location')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.int_employee_contact": {"database": "RetailDB", "schema": "bronze", "name": "int_employee_contact", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Employees/int_employee_contact.sql", "original_file_path": "models/intermediate/Employees/int_employee_contact.sql", "unique_id": "model.dbt_analytics_engineering.int_employee_contact", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "int_employee_contact"], "alias": "int_employee_contact", "checksum": {"name": "sha256", "checksum": "20fdb7462712dd6a8fdfa5f357bcb4749f45d84fbfd1f9fbfe76921b41c93c8c"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Creates a trusted employee contact dataset by improving the quality and \nconsistency of employee communication attributes. The model validates and \nrepairs email addresses and standardizes phone numbers into a common format. \nThe resulting dataset provides reliable contact information for internal \ncommunications, identity matching, corporate directory services, and downstream \nanalytical models.\n", "columns": {"employee_id": {"name": "employee_id", "description": "Primary key of the employee contact dimension. Inherited from the \nstaging layer and used to uniquely identify individual resource records.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "email": {"name": "email", "description": "The standardized corporate or personal email address of the employee.\n**Transformation Logic:** Implements programmatic cleansing to resolve formatting anomalies:\n- Null or empty strings, as well as entries completely missing the '@' delimiter, are forced to 'Unknown'.\n- Structural duplication issues (e.g., multiple '@' signs) are resolved by isolating the first instance and stripping duplicate characters from the domain string.\n- All valid entries are trimmed and cast to lowercase to maintain strict grouping consistency.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "phone": {"name": "phone", "description": "The employee's phone number standardized into the corporate '+1 (XXX) XXX-XXXX' format.\n**Transformation Logic:** Evaluates incoming string patterns against five distinct structural signatures to re-align components uniformly:\n- Formats starting with a plus sign and an international code (e.g., '+1XXXXXXXXXX') are parsed and injected with standard spaces, brackets, and hyphens.\n- Dotted strings ('XXX.XXX.XXXX') or continuous digit sequences ('XXXXXXXXXX') are sliced into area code, prefix, and line number groups before concatenation.\n- Hyphen-separated values ('XXX-XXX-XXXX') are combined directly by preserving the tail positions.\n- Already formatted parenthesized elements ('(XXX) XXX-XXXX') are prepended with the standard international country indicator '+1 '.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Employees/_int_employees_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784562857.501764, "relation_name": "\"RetailDB\".\"bronze\".\"int_employee_contact\"", "raw_code": "SELECT \n employee_id,\n\n CASE \n WHEN email IS NULL OR \n {{ trim_lower('email') }} = '' THEN 'Unknown'\n\n WHEN email NOT LIKE '%@%' \n THEN 'Unknown'\n\n WHEN PATINDEX('%@%@%', {{ trim_lower('email') }}) > 0 \n THEN \n LEFT({{ trim_lower('email') }}, CHARINDEX('@', {{ trim_lower('email') }}) -1)\n + '@' + REPLACE(SUBSTRING({{ trim_lower('email') }}, CHARINDEX('@', {{ trim_lower('email') }}) +1,\n LEN({{ trim_lower('email') }})), '@' ,'')\n\n ELSE {{ trim_lower('email') }}\n\n END as email,\n\n {{ standardize_phone('phone') }} as phone\nFROM {{ ref('stg_employees') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_employees", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.trim_lower", "macro.dbt_analytics_engineering.standardize_phone"], "nodes": ["model.dbt_analytics_engineering.stg_employees"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_contact.sql", "compiled": true, "compiled_code": "SELECT \n employee_id,\n\n CASE \n WHEN email IS NULL OR \n \n LOWER(TRIM(email))\n = '' THEN 'Unknown'\n\n WHEN email NOT LIKE '%@%' \n THEN 'Unknown'\n\n WHEN PATINDEX('%@%@%', \n LOWER(TRIM(email))\n) > 0 \n THEN \n LEFT(\n LOWER(TRIM(email))\n, CHARINDEX('@', \n LOWER(TRIM(email))\n) -1)\n + '@' + REPLACE(SUBSTRING(\n LOWER(TRIM(email))\n, CHARINDEX('@', \n LOWER(TRIM(email))\n) +1,\n LEN(\n LOWER(TRIM(email))\n)), '@' ,'')\n\n ELSE \n LOWER(TRIM(email))\n\n\n END as email,\n\n \n\n CASE \n WHEN TRIM(phone) LIKE '+1__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 3, 3), ') ',\n SUBSTRING(TRIM(phone), 6, 3),'-',\n SUBSTRING(TRIM(phone),9,4))\n\n WHEN TRIM(phone) LIKE '__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1 ,3), ') ',\n SUBSTRING(TRIM(phone), 4 ,3), '-',\n SUBSTRING(TRIM(phone), 7, 4))\n\n WHEN TRIM(phone) LIKE '___-___-____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone), 9 ,4))\n\n WHEN TRIM(phone) LIKE '___.___.____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone),9, 4))\n\n WHEN TRIM(phone) LIKE '(___) ___-____' \n THEN CONCAT('+1 ', SUBSTRING(TRIM(phone), 1, 14))\n\n WHEN TRIM(phone) IS NULL OR TRIM(phone) = '' \n THEN 'Unknown'\n\n ELSE 'Unknown'\n END\n as phone\nFROM \"RetailDB\".\"bronze\".\"stg_employees\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["employee_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_int_employee_contact_employee_id.062a8592c6": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_employee_contact_employee_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_employee_contact_employee_id.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_employee_contact_employee_id.062a8592c6", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "unique_int_employee_contact_employee_id"], "alias": "unique_int_employee_contact_employee_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784562857.7308834, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_contact", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_contact"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_contact_employee_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n employee_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_employee_contact\"\nwhere employee_id is not null\ngroup by employee_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "employee_id", "file_key_name": "models.int_employee_contact", "attached_node": "model.dbt_analytics_engineering.int_employee_contact", "test_metadata": {"name": "unique", "kwargs": {"column_name": "employee_id", "model": "{{ get_where_subquery(ref('int_employee_contact')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_contact_employee_id.6831e85930": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_contact_employee_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_contact_employee_id.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_contact_employee_id.6831e85930", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_contact_employee_id"], "alias": "not_null_int_employee_contact_employee_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784562857.7349563, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_contact", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_contact"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_employee_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"int_employee_contact\"\nwhere employee_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "employee_id", "file_key_name": "models.int_employee_contact", "attached_node": "model.dbt_analytics_engineering.int_employee_contact", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "employee_id", "model": "{{ get_where_subquery(ref('int_employee_contact')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_contact_email.e8efeefd4a": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_contact_email", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_contact_email.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_contact_email.e8efeefd4a", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_contact_email"], "alias": "not_null_int_employee_contact_email", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784562857.7383873, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_contact", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_contact"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_email.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect email\nfrom \"RetailDB\".\"bronze\".\"int_employee_contact\"\nwhere email is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "email", "file_key_name": "models.int_employee_contact", "attached_node": "model.dbt_analytics_engineering.int_employee_contact", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('int_employee_contact')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_contact_phone.7457f56eb1": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_contact_phone", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_contact_phone.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_contact_phone.7457f56eb1", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_contact_phone"], "alias": "not_null_int_employee_contact_phone", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784562857.7415638, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_contact", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_contact"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_phone.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect phone\nfrom \"RetailDB\".\"bronze\".\"int_employee_contact\"\nwhere phone is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "phone", "file_key_name": "models.int_employee_contact", "attached_node": "model.dbt_analytics_engineering.int_employee_contact", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "phone", "model": "{{ get_where_subquery(ref('int_employee_contact')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.int_product_inventory": {"database": "RetailDB", "schema": "bronze", "name": "int_product_inventory", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Products/int_product_inventory.sql", "original_file_path": "models/intermediate/Products/int_product_inventory.sql", "unique_id": "model.dbt_analytics_engineering.int_product_inventory", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "int_product_inventory"], "alias": "int_product_inventory", "checksum": {"name": "sha256", "checksum": "66d8fb09a7345a5f7c8416da5a7fce725d254902395b986041a2c2b1b9ecb45d"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Calculates item status metrics and availability limits for products. The model collapses \nfragmented multi-character text fields into specific operational taxonomy categories \nand enforces numeric boundary checks on quantities to prevent legacy system negative value noise.\n", "columns": {"product_id": {"name": "product_id", "description": "Unique product tracking identifier.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_available": {"name": "is_available", "description": "Standardized product fulfillment availability status. \n**Transformation Logic:** Evaluates an expansive multi-token list of text flags into three primary buckets:\n- 'Available' (Mapped from: 'a', 'y', 'ye', '1', 't', 'tr', 'in', 'i')\n- 'Not Available' (Mapped from: 'n', 'no', 'o', 'ou')\n- 'Discontinued' (Mapped from: 'd', 'di')\n- Any unmapped, missing, or corrupt variants fallback safely to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "stock_quantity": {"name": "stock_quantity", "description": "Total physical stock balances recorded across inventory hubs. Coerced to NULL if the source value \nis missing, non-numeric, or registers as an impossible negative balance (< 0).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "reorder_level": {"name": "reorder_level", "description": "The baseline automated inventory safety trigger limit. Coerced to NULL if the field is non-numeric, \nmissing, or registers as an impossible negative threshold (< 0).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Products/_int_products_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784563959.362573, "relation_name": "\"RetailDB\".\"bronze\".\"int_product_inventory\"", "raw_code": "SELECT \n product_id,\n \n CASE\n WHEN {{ trim_lower('is_available') }} IN ('a','y','ye','1','t','tr','in','i') THEN 'Available'\n WHEN {{ trim_lower('is_available') }} IN ('n','no','o','ou') THEN 'Not Available'\n WHEN {{ trim_lower('is_available') }} IN ('d','di') THEN 'Discontinued'\n ELSE 'Unknown'\n END AS is_available,\n\n CASE \n WHEN stock_quantity IS NULL OR TRY_CONVERT(INT , stock_quantity) IS NULL OR TRY_CONVERT(INT , stock_quantity) < 0 THEN NULL\n ELSE TRY_CONVERT(INT , stock_quantity)\n END AS stock_quantity,\n\n CASE \n WHEN reorder_level IS NULL OR TRY_CONVERT(INT , reorder_level) IS NULL OR TRY_CONVERT(INT , reorder_level) < 0 THEN NULL\n ELSE TRY_CONVERT(INT , reorder_level)\n END AS reorder_level\nFROM {{ ref('stg_products') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_products", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.trim_lower"], "nodes": ["model.dbt_analytics_engineering.stg_products"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_inventory.sql", "compiled": true, "compiled_code": "SELECT \n product_id,\n \n CASE\n WHEN \n LOWER(TRIM(is_available))\n IN ('a','y','ye','1','t','tr','in','i') THEN 'Available'\n WHEN \n LOWER(TRIM(is_available))\n IN ('n','no','o','ou') THEN 'Not Available'\n WHEN \n LOWER(TRIM(is_available))\n IN ('d','di') THEN 'Discontinued'\n ELSE 'Unknown'\n END AS is_available,\n\n CASE \n WHEN stock_quantity IS NULL OR TRY_CONVERT(INT , stock_quantity) IS NULL OR TRY_CONVERT(INT , stock_quantity) < 0 THEN NULL\n ELSE TRY_CONVERT(INT , stock_quantity)\n END AS stock_quantity,\n\n CASE \n WHEN reorder_level IS NULL OR TRY_CONVERT(INT , reorder_level) IS NULL OR TRY_CONVERT(INT , reorder_level) < 0 THEN NULL\n ELSE TRY_CONVERT(INT , reorder_level)\n END AS reorder_level\nFROM \"RetailDB\".\"bronze\".\"stg_products\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["product_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_int_product_inventory_product_id.732744fd20": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_product_inventory_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_product_inventory_product_id.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_product_inventory_product_id.732744fd20", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "unique_int_product_inventory_product_id"], "alias": "unique_int_product_inventory_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784563959.580553, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_inventory", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_inventory"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_inventory_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_inventory\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_product_inventory", "attached_node": "model.dbt_analytics_engineering.int_product_inventory", "test_metadata": {"name": "unique", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('int_product_inventory')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_product_inventory_product_id.9b12ada6b4": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_product_inventory_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_product_inventory_product_id.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_product_inventory_product_id.9b12ada6b4", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "not_null_int_product_inventory_product_id"], "alias": "not_null_int_product_inventory_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784563959.5843062, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_inventory", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_inventory"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_inventory_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_product_inventory\"\nwhere product_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_product_inventory", "attached_node": "model.dbt_analytics_engineering.int_product_inventory", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('int_product_inventory')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_product_inventory_is_available__Available__Not_Available__Discontinued__Unknown.6fb8d64f81": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_product_inventory_is_available__Available__Not_Available__Discontinued__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_product_inventory_is_available__Available__Not_Available__Discontinued__Unknown.6fb8d64f81", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "accepted_values_int_product_inventory_is_available__Available__Not_Available__Discontinued__Unknown"], "alias": "accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564"}, "created_at": 1784563959.5880673, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_inventory", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_inventory"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_available as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_product_inventory\"\n group by is_available\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Available','Not Available','Discontinued','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "is_available", "file_key_name": "models.int_product_inventory", "attached_node": "model.dbt_analytics_engineering.int_product_inventory", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "is_available", "values": ["Available", "Not Available", "Discontinued", "Unknown"], "model": "{{ get_where_subquery(ref('int_product_inventory')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.int_employee_employment": {"database": "RetailDB", "schema": "bronze", "name": "int_employee_employment", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Employees/int_employee_employment.sql", "original_file_path": "models/intermediate/Employees/int_employee_employment.sql", "unique_id": "model.dbt_analytics_engineering.int_employee_employment", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "int_employee_employment"], "alias": "int_employee_employment", "checksum": {"name": "sha256", "checksum": "551dd4e8d22ac4d857a91a299389c92943c144eb2597bb3c287ac73646d85262"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Creates a trusted employee employment dataset by standardizing organizational \nattributes and resolving data quality issues across employee records. The \nmodel cleans job titles and departments, validates store geographic data, \nstandardizes performance ratings, and normalizes employment status into \nconsistent categories. The resulting dataset provides reliable employee \ninformation for workforce analytics, compensation reporting, and \ndownstream dimensional modeling.\n", "columns": {"employee_id": {"name": "employee_id", "description": "Primary key for the employee within this model. Inherited from the staging layer; \nuniquely identifies a single internal resource record.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "job_title": {"name": "job_title", "description": "Official job title. Values are trimmed of whitespace and missing values \nare defaulted to 'Unknown' to ensure consistency in organizational reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "department": {"name": "department", "description": "The standardized corporate department classification (e.g., Sales, Operations etc..).\n**Transformation Logic:** Implements defensive string trimming and converts missing/null/blank \nvalues to `'Unknown'`. This column provides a bulletproof aggregation path for departmental \nheadcount and cost center distribution analysis.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "store_id": {"name": "store_id", "description": "Surrogate/Foreign key mapping the employee to their current physical retail location.\n**Transformation Logic:** Built with strict data integrity filtering. It attempts to cast \nthe source value into a standard `INT`. If the raw entry is non-numeric (fails parsing) OR \nis a negative integer (physically impossible for our enterprise sequence), the model coerces \nthe result to `NULL`. This completely eliminates downstream foreign key join failures.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "store_name": {"name": "store_name", "description": "The official retail name or format banner of the store location (e.g., 'City Center Express').\n**Transformation Logic:** Cleanses text values using whitespace elimination and structural \nnull-handling (`'Unknown'`). Ready for direct exposition in front-end operational dashboards.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "store_city": {"name": "store_city", "description": "The geographic city destination of the employee's assigned store location.\n**Transformation Logic:** Implements a strict localized length-validation test. If the input \nis null, empty, or shorter than 4 characters (protecting against malformed acronyms or test entries \nlike 'X', 'AZ', 'N/A'), it is safely routed to `'Unknown'`. Otherwise, it strips extra whitespace.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "annual_salary_usd": {"name": "annual_salary_usd", "description": "The finalized annual base compensation package for the employee, calculated in USD.\n**Transformation Logic:** Casts the incoming raw currency format to a high-precision decimal \ntype `DECIMAL(18,2)` to preserve cents accuracy and protect against floating-point errors. \nCrucially, if the salary is non-numeric, null, or falls below zero (`< 0`), it is forced to \n`NULL` to avoid corrupting financial aggregates, averages, and budget metrics.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "commission_rate_pct": {"name": "commission_rate_pct", "description": "The employee's target incentive commission tier, expressed as a true percentage.\n**Transformation Logic:** Casts values to a tight numeric decimal boundary of `DECIMAL(4,2)` \nto properly track fractional scales (e.g., `7.50%` or `2.25%`). Negative outliers or un-castable \nstrings are dynamically set to `NULL` to keep payroll metrics accurate.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "performance_rating": {"name": "performance_rating", "description": "The normalized performance evaluation bucket resulting from the employee's latest review cycle.\n**Transformation Logic:** Resolves massive legacy data fragmentation. It interprets a mixed-type \ninput vector containing numbers (`5`, `4`, `3`, `2`), letter grades (`A`, `B`, `C`, `D`), and \nuntrimmed text descriptions, mapping them into a clean 4-tier categorical dimension\n(example :'Excellent', 'Good', 'Average', 'Below Average', 'Unknown' )\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "years_employed": {"name": "years_employed", "description": "The ongoing corporate tenure tracking of the individual, stated in fractional years.\n**Transformation Logic:** Converts numbers to a decimal type `DECIMAL(4,2)`. This preserves \nprecision for exact time-in-role benchmarks (e.g., `6.58` years instead of truncating to `6`). \nIt protects calculations by ensuring negative ranges are set to `NULL`.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "manager_id": {"name": "manager_id", "description": "The tracking identifier of the employee's immediate hierarchical supervisor.\n**Transformation Logic:** Evaluates text and numeric inputs and forces numeric casting (`INT`). \nIf a value cannot be safely evaluated as an integer, it resolves to `NULL`. This column forms \nthe foundation for recursive reporting structures or self-joins to build an organizational chart.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_active": {"name": "is_active", "description": "A standardized corporate employment status flag.\n**Transformation Logic:** Normalizes a highly fragmented text field by mapping 10 alternate encodings:\n- *'True'* (Active status; mapped from: 'active', 'y', 'yes', '1', 'true')\n- *'False'* (Separated/Inactive status; mapped from: 'terminated', 'n', 'no', '0', 'false')\n- Unrecognized states map to a structural `NULL` to flag an invalid operational state.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Employees/_int_employees_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784565035.1914105, "relation_name": "\"RetailDB\".\"bronze\".\"int_employee_employment\"", "raw_code": "SELECT\n employee_id,\n\n CASE \n WHEN job_title IS NULL OR job_title = '' THEN 'Unknown'\n ELSE TRIM(job_title) \n END as job_title,\n\n CASE \n WHEN department IS NULL OR department = '' THEN 'Unknown'\n ELSE TRIM(department)\n END as department,\n\n CASE \n WHEN store_id < 0 OR TRY_CONVERT(INT, store_id) IS NULL THEN NULL\n ELSE TRY_CONVERT(INT, store_id) \n END as store_id,\n\n CASE \n WHEN store_name IS NULL OR store_name = '' THEN 'Unknown'\n ELSE TRIM(store_name)\n END as store_name,\n\n CASE \n WHEN store_city IS NULL OR LEN(store_city) < 4 OR store_city = '' THEN 'Unknown'\n ELSE TRIM(store_city)\n END store_city,\n\n CASE \n WHEN annual_salary_usd IS NULL \n OR TRY_CONVERT(DECIMAL(18,2), annual_salary_usd) IS NULL \n OR TRY_CONVERT(DECIMAL(18,2), annual_salary_usd) < 0 THEN NULL\n ELSE TRY_CONVERT(DECIMAL(18,2), annual_salary_usd)\n END AS annual_salary_usd,\n\n CASE \n WHEN commission_rate_pct IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), commission_rate_pct) IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), commission_rate_pct) < 0 THEN NULL\n ELSE TRY_CONVERT(DECIMAL(4,2), commission_rate_pct)\n END AS commission_rate_pct,\n\n CASE\n WHEN {{ trim_lower('performance_rating') }} IN ('excellent', 'a', '5') THEN 'Excellent'\n WHEN {{ trim_lower('performance_rating') }} IN ('good', 'b', '4') THEN 'Good'\n WHEN {{ trim_lower('performance_rating') }} IN ('average', 'c', '3') THEN 'Average'\n WHEN {{ trim_lower('performance_rating') }} IN ('below average', 'd', '2') THEN 'Below Average'\n WHEN performance_rating IS NULL OR TRIM(performance_rating) = '' THEN 'Unknown'\n ELSE 'Unknown'\n END AS performance_rating,\n\n CASE \n WHEN years_employed IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), years_employed) IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), years_employed) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(4,2), TRY_CONVERT(DECIMAL(4,2), years_employed))\n END years_employed,\n\n CASE \n WHEN TRY_CONVERT(INT ,manager_id) IS NULL THEN NULL \n ELSE manager_id \n END as manager_id,\n\n CASE\n WHEN {{ trim_lower('is_active') }} IN ('active', 'y', 'yes', '1', 'true') THEN 'True'\n WHEN {{ trim_lower('is_active') }} IN ('terminated', 'n', 'no', '0', 'false') THEN 'False'\n ELSE NULL\n END AS is_active\nFROM {{ ref('stg_employees') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_employees", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.trim_lower"], "nodes": ["model.dbt_analytics_engineering.stg_employees"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/int_employee_employment.sql", "compiled": true, "compiled_code": "SELECT\n employee_id,\n\n CASE \n WHEN job_title IS NULL OR job_title = '' THEN 'Unknown'\n ELSE TRIM(job_title) \n END as job_title,\n\n CASE \n WHEN department IS NULL OR department = '' THEN 'Unknown'\n ELSE TRIM(department)\n END as department,\n\n CASE \n WHEN store_id < 0 OR TRY_CONVERT(INT, store_id) IS NULL THEN NULL\n ELSE TRY_CONVERT(INT, store_id) \n END as store_id,\n\n CASE \n WHEN store_name IS NULL OR store_name = '' THEN 'Unknown'\n ELSE TRIM(store_name)\n END as store_name,\n\n CASE \n WHEN store_city IS NULL OR LEN(store_city) < 4 OR store_city = '' THEN 'Unknown'\n ELSE TRIM(store_city)\n END store_city,\n\n CASE \n WHEN annual_salary_usd IS NULL \n OR TRY_CONVERT(DECIMAL(18,2), annual_salary_usd) IS NULL \n OR TRY_CONVERT(DECIMAL(18,2), annual_salary_usd) < 0 THEN NULL\n ELSE TRY_CONVERT(DECIMAL(18,2), annual_salary_usd)\n END AS annual_salary_usd,\n\n CASE \n WHEN commission_rate_pct IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), commission_rate_pct) IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), commission_rate_pct) < 0 THEN NULL\n ELSE TRY_CONVERT(DECIMAL(4,2), commission_rate_pct)\n END AS commission_rate_pct,\n\n CASE\n WHEN \n LOWER(TRIM(performance_rating))\n IN ('excellent', 'a', '5') THEN 'Excellent'\n WHEN \n LOWER(TRIM(performance_rating))\n IN ('good', 'b', '4') THEN 'Good'\n WHEN \n LOWER(TRIM(performance_rating))\n IN ('average', 'c', '3') THEN 'Average'\n WHEN \n LOWER(TRIM(performance_rating))\n IN ('below average', 'd', '2') THEN 'Below Average'\n WHEN performance_rating IS NULL OR TRIM(performance_rating) = '' THEN 'Unknown'\n ELSE 'Unknown'\n END AS performance_rating,\n\n CASE \n WHEN years_employed IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), years_employed) IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), years_employed) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(4,2), TRY_CONVERT(DECIMAL(4,2), years_employed))\n END years_employed,\n\n CASE \n WHEN TRY_CONVERT(INT ,manager_id) IS NULL THEN NULL \n ELSE manager_id \n END as manager_id,\n\n CASE\n WHEN \n LOWER(TRIM(is_active))\n IN ('active', 'y', 'yes', '1', 'true') THEN 'True'\n WHEN \n LOWER(TRIM(is_active))\n IN ('terminated', 'n', 'no', '0', 'false') THEN 'False'\n ELSE NULL\n END AS is_active\nFROM \"RetailDB\".\"bronze\".\"stg_employees\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["employee_id"], "time_spine": null}, "model.dbt_analytics_engineering.int_product_attributes": {"database": "RetailDB", "schema": "bronze", "name": "int_product_attributes", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Products/int_product_attributes.sql", "original_file_path": "models/intermediate/Products/int_product_attributes.sql", "unique_id": "model.dbt_analytics_engineering.int_product_attributes", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "int_product_attributes"], "alias": "int_product_attributes", "checksum": {"name": "sha256", "checksum": "07a0ff3f3d91f5f2b71b9a1ab144fe803389f18bd6bce3b2ac7887b47e9775a0"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Creates a trusted product master reference dataset by standardizing essential \ntextual identifiers, categorical taxonomy paths, and historical launch timelines. \nThe model enforces string trimming, title-case casing normalization using custom scalar functions, \nand executes a strict multi-locale validation sequence to safely cast inconsistent text strings \ninto standard ISO dates.\n", "columns": {"product_id": {"name": "product_id", "description": "Primary key identifying the product. Validated via integer casting; un-castable or alphanumeric \nanomalies are safely coerced to NULL to protect downstream relationships.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "sku": {"name": "sku", "description": "Stock Keeping Unit alpha-numeric tracking code. Enforces a strict 13-character length verification. \nBlanks, nulls, or records failing the structural constraint default directly to 'Unknown'; valid \nSKUs are trimmed and normalized to UPPERCASE.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_name": {"name": "product_name", "description": "Official product name banner. Standardized using whitespace trimming and transformed into \nTitle Case. Missing or blank records fallback to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "brand": {"name": "brand", "description": "The corporate brand label assigned to the product. Standardized into Title Case; blank or missing \ninputs default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "category": {"name": "category", "description": "Top-level retail catalog classification path. Standardized into Title Case; empty strings or \nunpopulated values resolve to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "sub_category": {"name": "sub_category", "description": "Granular sub-classification path. Standardized into Title Case; empty strings or unpopulated \nvalues resolve to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "department": {"name": "department", "description": "Corporate operational department responsible for the product line. Standardized into Title Case; \nmissing source records default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "launched_date": {"name": "launched_date", "description": "The formalized market introduction date for the product asset. \n**Transformation Logic:** Implements an explicit CASE parsing tree to convert multi-format text entries into a safe DATE data type:\n- Full text or abbreviated text month variants and standard hyphen/slash paths are natively cast.\n- Multi-locale ambiguity is handled defensively: if the middle token exceeds 12, it is treated as US format (Style 101/110).\nIf the leading segment exceeds 12, it is handled as an International format (Style 103/105).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Products/_int_products_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784565035.6056082, "relation_name": "\"RetailDB\".\"bronze\".\"int_product_attributes\"", "raw_code": "SELECT\n CASE \n WHEN TRY_CONVERT(INT, product_id) IS NULL THEN NULL \n ELSE TRY_CONVERT(INT, product_id)\n END as product_id,\n\n CASE \n WHEN TRIM(sku) = '' OR sku IS NULL OR LEN(TRIM(sku)) != 13 THEN 'Unknown'\n ELSE TRIM(UPPER(sku))\n END as sku,\n\n CASE \n WHEN TRIM(product_name) = '' OR product_name IS NULL THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(product_name))\n END as product_name,\n\n CASE \n WHEN TRIM(brand) = '' OR brand IS NULL THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(brand))\n END as brand,\n\n CASE \n WHEN category IS NULL OR TRIM(category) = '' THEN 'Unknown'\n ELSE TRIM(dbo.titleCase(category))\n END AS category,\n\n CASE \n WHEN sub_category IS NULL OR TRIM(sub_category) = '' THEN 'Unknown'\n ELSE dbo.TitleCase(TRIM(sub_category))\n END AS sub_category,\n\n CASE \n WHEN department IS NULL OR TRIM(department) = '' THEN 'Unknown'\n ELSE dbo.TitleCase(TRIM(department))\n END AS department,\n\n {{ standardize_date('launched_date') }} as launched_date,\n\n CASE \n WHEN product_url IS NULL OR TRIM(product_url) = '' OR product_url NOT LIKE 'https://%' THEN 'Unknown'\n ELSE REPLACE(REPLACE({{ trim_lower('product_url') }}, CHAR(13), ''),CHAR(10), '')\n END as product_url\nFROM {{ ref('stg_products') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_products", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.standardize_date", "macro.dbt_analytics_engineering.trim_lower"], "nodes": ["model.dbt_analytics_engineering.stg_products"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/int_product_attributes.sql", "compiled": true, "compiled_code": "SELECT\n CASE \n WHEN TRY_CONVERT(INT, product_id) IS NULL THEN NULL \n ELSE TRY_CONVERT(INT, product_id)\n END as product_id,\n\n CASE \n WHEN TRIM(sku) = '' OR sku IS NULL OR LEN(TRIM(sku)) != 13 THEN 'Unknown'\n ELSE TRIM(UPPER(sku))\n END as sku,\n\n CASE \n WHEN TRIM(product_name) = '' OR product_name IS NULL THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(product_name))\n END as product_name,\n\n CASE \n WHEN TRIM(brand) = '' OR brand IS NULL THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(brand))\n END as brand,\n\n CASE \n WHEN category IS NULL OR TRIM(category) = '' THEN 'Unknown'\n ELSE TRIM(dbo.titleCase(category))\n END AS category,\n\n CASE \n WHEN sub_category IS NULL OR TRIM(sub_category) = '' THEN 'Unknown'\n ELSE dbo.TitleCase(TRIM(sub_category))\n END AS sub_category,\n\n CASE \n WHEN department IS NULL OR TRIM(department) = '' THEN 'Unknown'\n ELSE dbo.TitleCase(TRIM(department))\n END AS department,\n\n \n\n\n CASE\n WHEN TRIM(launched_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(launched_date))\n\n WHEN TRIM(launched_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(launched_date))\n\n WHEN TRIM(launched_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(launched_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(launched_date), 110)\n\n WHEN TRIM(launched_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(launched_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(launched_date), 105)\n\n WHEN TRIM(launched_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(launched_date))\n\n WHEN TRIM(launched_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(launched_date))\n\n WHEN TRIM(launched_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(launched_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(launched_date), 101)\n\n WHEN TRIM(launched_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(launched_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(launched_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(launched_date), 101)\n\n END\n\n as launched_date,\n\n CASE \n WHEN product_url IS NULL OR TRIM(product_url) = '' OR product_url NOT LIKE 'https://%' THEN 'Unknown'\n ELSE REPLACE(REPLACE(\n LOWER(TRIM(product_url))\n, CHAR(13), ''),CHAR(10), '')\n END as product_url\nFROM \"RetailDB\".\"bronze\".\"stg_products\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["product_id", "product_name", "sku"], "time_spine": null}, "model.dbt_analytics_engineering.int_inventory_product": {"database": "RetailDB", "schema": "bronze", "name": "int_inventory_product", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Inventory/int_inventory_product.sql", "original_file_path": "models/intermediate/Inventory/int_inventory_product.sql", "unique_id": "model.dbt_analytics_engineering.int_inventory_product", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "int_inventory_product"], "alias": "int_inventory_product", "checksum": {"name": "sha256", "checksum": "949b406100dd97dc0a8647621c8e767c38af7184da53cfe0d656c5ac1c9be866"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Creates a trusted product tracking dataset by standardizing snapshot logging dates, \ncleaning product identifiers, and resolving textual categorization anomalies across \ninventory snapshots. The model handles regional variations in string-based date configurations \nand maps product categories into a standardized, clean taxonomy. The resulting dataset \nprovides a consistent product grain for operational inventory control and downstream reporting.\n", "columns": {"inventory_snapshot_sk": {"name": "inventory_snapshot_sk", "description": "Surrogate primary key uniquely identifying a specific product item log during a snapshot period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "snapshot_date": {"name": "snapshot_date", "description": "The standardized calendar logging date for inventory item records. \n**Transformation Logic:** Implements an explicit CASE validation ladder to parse text-based dates into an ISO-standard DATE format:\n- Textual or abbreviated months and standard hyphen/slash paths (YYYY-MM-DD or YYYY/MM/DD) are natively converted.\n- Multi-locale string structures are evaluated dynamically: if the middle token is greater than 12, it handles it as a US format (Style 101 or 110);\n if the leading token is greater than 12, it is routed via International styles (Style 103 or 105).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "The validated operational identifier for the product. Un-castable alphanumeric strings \nor missing values are safely coerced to NULL to prevent downstream join failures.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_name": {"name": "product_name", "description": "Official product nomenclature. Leading and trailing whitespaces are removed via trimming, \nwith missing or blank values defaulting to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "sku": {"name": "sku", "description": "Stock Keeping Unit alpha-numeric tracking string. Whitespace components are trimmed \nand missing or empty records resolve to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "category": {"name": "category", "description": "Standardized product line categorization. Maps varied lowercase or messy textual entries into \n10 business-defined Title Case operational paths: 'Electronics', 'Clothing', 'Kitchen', 'Office', \n'Sports', 'Health', 'Beauty', 'Footwear', 'Toys', or 'Bags'. Unmatched configurations resolve to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Inventory/_int_inventory_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784565035.5505803, "relation_name": "\"RetailDB\".\"bronze\".\"int_inventory_product\"", "raw_code": "SELECT \n inventory_snapshot_sk,\n\n{{ standardize_date('snapshot_date') }} as snapshot_date,\n\n CASE \n WHEN TRY_CONVERT(INT, product_id) IS NULL THEN NULL \n ELSE TRY_CONVERT(INT, product_id)\n END as product_id,\n\n CASE \n WHEN product_name IS NULL OR product_name = '' THEN 'Unknown'\n ELSE TRIM(product_name)\n END as product_name,\n\n CASE \n WHEN sku IS NULL OR sku = '' THEN 'Unknown'\n ELSE TRIM(sku)\n END as sku,\n\n CASE \n WHEN {{ trim_lower('category') }} = 'electronics' THEN 'Electronics'\n WHEN {{ trim_lower('category') }} = 'clothing' THEN 'Clothing'\n WHEN {{ trim_lower('category') }} = 'kitchen' THEN 'Kitchen'\n WHEN {{ trim_lower('category') }} = 'office' THEN 'Office'\n WHEN {{ trim_lower('category') }} = 'sports' THEN 'Sports'\n WHEN {{ trim_lower('category') }} = 'health' THEN 'Health'\n WHEN {{ trim_lower('category') }} = 'beauty' THEN 'Beauty'\n WHEN {{ trim_lower('category') }} = 'footwear' THEN 'Footwear'\n WHEN {{ trim_lower('category') }} = 'toys' THEN 'Toys'\n WHEN {{ trim_lower('category') }} = 'bags' THEN 'Bags'\n ELSE 'Unknown'\n END AS category\nFROM {{ ref('stg_inventory') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_inventory", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.standardize_date", "macro.dbt_analytics_engineering.trim_lower"], "nodes": ["model.dbt_analytics_engineering.stg_inventory"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_product.sql", "compiled": true, "compiled_code": "SELECT \n inventory_snapshot_sk,\n\n\n\n\n CASE\n WHEN TRIM(snapshot_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date))\n\n WHEN TRIM(snapshot_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date))\n\n WHEN TRIM(snapshot_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(snapshot_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 110)\n\n WHEN TRIM(snapshot_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(snapshot_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 105)\n\n WHEN TRIM(snapshot_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date))\n\n WHEN TRIM(snapshot_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date))\n\n WHEN TRIM(snapshot_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(snapshot_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 101)\n\n WHEN TRIM(snapshot_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(snapshot_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(snapshot_date), 101)\n\n END\n\n as snapshot_date,\n\n CASE \n WHEN TRY_CONVERT(INT, product_id) IS NULL THEN NULL \n ELSE TRY_CONVERT(INT, product_id)\n END as product_id,\n\n CASE \n WHEN product_name IS NULL OR product_name = '' THEN 'Unknown'\n ELSE TRIM(product_name)\n END as product_name,\n\n CASE \n WHEN sku IS NULL OR sku = '' THEN 'Unknown'\n ELSE TRIM(sku)\n END as sku,\n\n CASE \n WHEN \n LOWER(TRIM(category))\n = 'electronics' THEN 'Electronics'\n WHEN \n LOWER(TRIM(category))\n = 'clothing' THEN 'Clothing'\n WHEN \n LOWER(TRIM(category))\n = 'kitchen' THEN 'Kitchen'\n WHEN \n LOWER(TRIM(category))\n = 'office' THEN 'Office'\n WHEN \n LOWER(TRIM(category))\n = 'sports' THEN 'Sports'\n WHEN \n LOWER(TRIM(category))\n = 'health' THEN 'Health'\n WHEN \n LOWER(TRIM(category))\n = 'beauty' THEN 'Beauty'\n WHEN \n LOWER(TRIM(category))\n = 'footwear' THEN 'Footwear'\n WHEN \n LOWER(TRIM(category))\n = 'toys' THEN 'Toys'\n WHEN \n LOWER(TRIM(category))\n = 'bags' THEN 'Bags'\n ELSE 'Unknown'\n END AS category\nFROM \"RetailDB\".\"bronze\".\"stg_inventory\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["inventory_snapshot_sk"], "time_spine": null}, "test.dbt_analytics_engineering.unique_int_employee_employment_employee_id.349cd9d024": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_employee_employment_employee_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_employee_employment_employee_id.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_employee_employment_employee_id.349cd9d024", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "unique_int_employee_employment_employee_id"], "alias": "unique_int_employee_employment_employee_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.4116766, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_employment_employee_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n employee_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere employee_id is not null\ngroup by employee_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "employee_id", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "unique", "kwargs": {"column_name": "employee_id", "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_employment_employee_id.4b317cafdf": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_employment_employee_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_employment_employee_id.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_employee_id.4b317cafdf", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_employment_employee_id"], "alias": "not_null_int_employee_employment_employee_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.4153047, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_employee_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere employee_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "employee_id", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "employee_id", "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_employment_job_title.6b190a9a12": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_employment_job_title", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_employment_job_title.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_job_title.6b190a9a12", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_employment_job_title"], "alias": "not_null_int_employee_employment_job_title", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.418329, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_job_title.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect job_title\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere job_title is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "job_title", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "job_title", "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_employee_employment_job_title__Account_Executive__Customer_Advisor__Regional_Manager__Sales_Associate__Sales_Consultant__Sales_Manager__Sales_Representative__Senior_Sales_Associate__Store_Manager.5a26b81538": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_employee_employment_job_title__Account_Executive__Customer_Advisor__Regional_Manager__Sales_Associate__Sales_Consultant__Sales_Manager__Sales_Representative__Senior_Sales_Associate__Store_Manager", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_job_title__Account_Executive__Customer_Advisor__Regional_Manager__Sales_Associate__Sales_Consultant__Sales_Manager__Sales_Representative__Senior_Sales_Associate__Store_Manager.5a26b81538", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "accepted_values_int_employee_employment_job_title__Account_Executive__Customer_Advisor__Regional_Manager__Sales_Associate__Sales_Consultant__Sales_Manager__Sales_Representative__Senior_Sales_Associate__Store_Manager"], "alias": "accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f"}, "created_at": 1784565035.4213414, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n job_title as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_employee_employment\"\n group by job_title\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Account Executive','Customer Advisor','Regional Manager','Sales Associate','Sales Consultant','Sales Manager','Sales Representative','Senior Sales Associate','Store Manager'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "job_title", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "job_title", "values": ["Account Executive", "Customer Advisor", "Regional Manager", "Sales Associate", "Sales Consultant", "Sales Manager", "Sales Representative", "Senior Sales Associate", "Store Manager"], "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_employment_department.7be8a16615": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_employment_department", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_employment_department.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_department.7be8a16615", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_employment_department"], "alias": "not_null_int_employee_employment_department", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.4629786, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_department.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect department\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere department is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "department", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "department", "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_employee_employment_department__Customer_Service__Management__Operations__Sales__Unknown.a347d6218f": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_employee_employment_department__Customer_Service__Management__Operations__Sales__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_department__Customer_Service__Management__Operations__Sales__Unknown.a347d6218f", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "accepted_values_int_employee_employment_department__Customer_Service__Management__Operations__Sales__Unknown"], "alias": "accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc"}, "created_at": 1784565035.4659455, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n department as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_employee_employment\"\n group by department\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Customer Service','Management','Operations','Sales','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "department", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "department", "values": ["Customer Service", "Management", "Operations", "Sales", "Unknown"], "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.relationships_int_employee_employment_store_id__store_id__ref_int_store_profile_.1941f5b907": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "relationships_int_employee_employment_store_id__store_id__ref_int_store_profile_", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.relationships_int_employee_employment_store_id__store_id__ref_int_store_profile_.1941f5b907", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "relationships_int_employee_employment_store_id__store_id__ref_int_store_profile_"], "alias": "relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1"}, "created_at": 1784565035.4804327, "relation_name": null, "raw_code": "{{ test_relationships(**_dbt_generic_test_kwargs) }}{{ config(alias=\"relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_profile", "package": null, "version": null}, {"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_relationships", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_profile", "model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1.sql", "compiled": true, "compiled_code": "\n \n \n\nwith child as (\n select store_id as from_field\n from \"RetailDB\".\"bronze\".\"int_employee_employment\"\n where store_id is not null\n),\n\nparent as (\n select store_id as to_field\n from \"RetailDB\".\"bronze\".\"int_store_profile\"\n)\n\nselect\n from_field\n\nfrom child\nleft join parent\n on child.from_field = parent.to_field\n\nwhere parent.to_field is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "relationships", "kwargs": {"to": "ref('int_store_profile')", "field": "store_id", "column_name": "store_id", "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_employment_store_name.f651f514ac": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_employment_store_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_employment_store_name.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_store_name.f651f514ac", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_employment_store_name"], "alias": "not_null_int_employee_employment_store_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.5046585, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_name\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere store_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_name", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "store_name", "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_employment_store_city.6cc8b5a1a2": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_employment_store_city", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_employment_store_city.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_store_city.6cc8b5a1a2", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_employment_store_city"], "alias": "not_null_int_employee_employment_store_city", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.509556, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_city.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_city\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere store_city is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_city", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "store_city", "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_employment_annual_salary_usd.5061dbe7e6": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_employment_annual_salary_usd", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_employment_annual_salary_usd.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_annual_salary_usd.5061dbe7e6", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_employment_annual_salary_usd"], "alias": "not_null_int_employee_employment_annual_salary_usd", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.5134041, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_annual_salary_usd.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect annual_salary_usd\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere annual_salary_usd is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "annual_salary_usd", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "annual_salary_usd", "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_employment_commission_rate_pct.35495fa9d9": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_employment_commission_rate_pct", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_employment_commission_rate_pct.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_commission_rate_pct.35495fa9d9", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_employment_commission_rate_pct"], "alias": "not_null_int_employee_employment_commission_rate_pct", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.51694, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_commission_rate_pct.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect commission_rate_pct\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere commission_rate_pct is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "commission_rate_pct", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "commission_rate_pct", "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_employee_employment_performance_rating__Excellent__Good__Average__Below_Average__Unknown.3755c7561e": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_employee_employment_performance_rating__Excellent__Good__Average__Below_Average__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_performance_rating__Excellent__Good__Average__Below_Average__Unknown.3755c7561e", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "accepted_values_int_employee_employment_performance_rating__Excellent__Good__Average__Below_Average__Unknown"], "alias": "accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2"}, "created_at": 1784565035.5210931, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n performance_rating as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_employee_employment\"\n group by performance_rating\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Excellent','Good','Average','Below Average','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "performance_rating", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "performance_rating", "values": ["Excellent", "Good", "Average", "Below Average", "Unknown"], "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_employee_employment_is_active.cc4cfb1aec": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_employee_employment_is_active", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_employee_employment_is_active.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_is_active.cc4cfb1aec", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "not_null_int_employee_employment_is_active"], "alias": "not_null_int_employee_employment_is_active", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.5330622, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_is_active.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect is_active\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere is_active is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "is_active", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "is_active", "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_employee_employment_is_active__True__False.7b923c6da0": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_employee_employment_is_active__True__False", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_employee_employment_is_active__True__False.sql", "original_file_path": "models/intermediate/Employees/_int_employees_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_is_active__True__False.7b923c6da0", "fqn": ["dbt_analytics_engineering", "intermediate", "Employees", "accepted_values_int_employee_employment_is_active__True__False"], "alias": "accepted_values_int_employee_employment_is_active__True__False", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.537275, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_employee_employment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_employee_employment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_employment_is_active__True__False.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_active as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_employee_employment\"\n group by is_active\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "is_active", "file_key_name": "models.int_employee_employment", "attached_node": "model.dbt_analytics_engineering.int_employee_employment", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "is_active", "values": ["True", "False"], "model": "{{ get_where_subquery(ref('int_employee_employment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_inventory_product_inventory_snapshot_sk.08e50afdaf": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_inventory_product_inventory_snapshot_sk", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_inventory_product_inventory_snapshot_sk.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_inventory_product_inventory_snapshot_sk.08e50afdaf", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "unique_int_inventory_product_inventory_snapshot_sk"], "alias": "unique_int_inventory_product_inventory_snapshot_sk", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.552754, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_product", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_product"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_product_inventory_snapshot_sk.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n inventory_snapshot_sk as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere inventory_snapshot_sk is not null\ngroup by inventory_snapshot_sk\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "inventory_snapshot_sk", "file_key_name": "models.int_inventory_product", "attached_node": "model.dbt_analytics_engineering.int_inventory_product", "test_metadata": {"name": "unique", "kwargs": {"column_name": "inventory_snapshot_sk", "model": "{{ get_where_subquery(ref('int_inventory_product')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_inventory_product_inventory_snapshot_sk.9c74fa15eb": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_inventory_product_inventory_snapshot_sk", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_inventory_product_inventory_snapshot_sk.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_inventory_snapshot_sk.9c74fa15eb", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "not_null_int_inventory_product_inventory_snapshot_sk"], "alias": "not_null_int_inventory_product_inventory_snapshot_sk", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.5570962, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_product", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_product"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_inventory_snapshot_sk.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect inventory_snapshot_sk\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere inventory_snapshot_sk is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "inventory_snapshot_sk", "file_key_name": "models.int_inventory_product", "attached_node": "model.dbt_analytics_engineering.int_inventory_product", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "inventory_snapshot_sk", "model": "{{ get_where_subquery(ref('int_inventory_product')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_inventory_product_snapshot_date.f7776ecf58": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_inventory_product_snapshot_date", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_inventory_product_snapshot_date.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_snapshot_date.f7776ecf58", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "not_null_int_inventory_product_snapshot_date"], "alias": "not_null_int_inventory_product_snapshot_date", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.5606463, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_product", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_product"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_snapshot_date.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect snapshot_date\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere snapshot_date is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "snapshot_date", "file_key_name": "models.int_inventory_product", "attached_node": "model.dbt_analytics_engineering.int_inventory_product", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "snapshot_date", "model": "{{ get_where_subquery(ref('int_inventory_product')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_inventory_product_product_id.b039ccc8f4": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_inventory_product_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_inventory_product_product_id.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_product_id.b039ccc8f4", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "not_null_int_inventory_product_product_id"], "alias": "not_null_int_inventory_product_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.5666468, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_product", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_product"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere product_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_inventory_product", "attached_node": "model.dbt_analytics_engineering.int_inventory_product", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('int_inventory_product')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.relationships_int_inventory_product_product_id__product_id__ref_int_product_attributes_.96b32ae525": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "relationships_int_inventory_product_product_id__product_id__ref_int_product_attributes_", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.relationships_int_inventory_product_product_id__product_id__ref_int_product_attributes_.96b32ae525", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "relationships_int_inventory_product_product_id__product_id__ref_int_product_attributes_"], "alias": "relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d"}, "created_at": 1784565035.5697882, "relation_name": null, "raw_code": "{{ test_relationships(**_dbt_generic_test_kwargs) }}{{ config(alias=\"relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}, {"name": "int_inventory_product", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_relationships", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes", "model.dbt_analytics_engineering.int_inventory_product"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d.sql", "compiled": true, "compiled_code": "\n \n \n\nwith child as (\n select product_id as from_field\n from \"RetailDB\".\"bronze\".\"int_inventory_product\"\n where product_id is not null\n),\n\nparent as (\n select product_id as to_field\n from \"RetailDB\".\"bronze\".\"int_product_attributes\"\n)\n\nselect\n from_field\n\nfrom child\nleft join parent\n on child.from_field = parent.to_field\n\nwhere parent.to_field is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_inventory_product", "attached_node": "model.dbt_analytics_engineering.int_inventory_product", "test_metadata": {"name": "relationships", "kwargs": {"to": "ref('int_product_attributes')", "field": "product_id", "column_name": "product_id", "model": "{{ get_where_subquery(ref('int_inventory_product')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_inventory_product_product_name.b1cc316d19": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_inventory_product_product_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_inventory_product_product_name.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_product_name.b1cc316d19", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "not_null_int_inventory_product_product_name"], "alias": "not_null_int_inventory_product_product_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.5795352, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_product", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_product"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_name\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere product_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_name", "file_key_name": "models.int_inventory_product", "attached_node": "model.dbt_analytics_engineering.int_inventory_product", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_name", "model": "{{ get_where_subquery(ref('int_inventory_product')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_inventory_product_sku.38fee3ca77": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_inventory_product_sku", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_inventory_product_sku.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_sku.38fee3ca77", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "not_null_int_inventory_product_sku"], "alias": "not_null_int_inventory_product_sku", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.582534, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_product", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_product"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_sku.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect sku\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere sku is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "sku", "file_key_name": "models.int_inventory_product", "attached_node": "model.dbt_analytics_engineering.int_inventory_product", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "sku", "model": "{{ get_where_subquery(ref('int_inventory_product')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_inventory_product_category.3b4559e898": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_inventory_product_category", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_inventory_product_category.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_category.3b4559e898", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "not_null_int_inventory_product_category"], "alias": "not_null_int_inventory_product_category", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.5853958, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_product", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_product"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_category.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect category\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere category is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "category", "file_key_name": "models.int_inventory_product", "attached_node": "model.dbt_analytics_engineering.int_inventory_product", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "category", "model": "{{ get_where_subquery(ref('int_inventory_product')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_inventory_product_category__Electronics__Clothing__Kitchen__Office__Sports__Health__Beauty__Footwear__Toys__Bags__Unknown.fd70912290": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_inventory_product_category__Electronics__Clothing__Kitchen__Office__Sports__Health__Beauty__Footwear__Toys__Bags__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438.sql", "original_file_path": "models/intermediate/Inventory/_int_inventory_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_inventory_product_category__Electronics__Clothing__Kitchen__Office__Sports__Health__Beauty__Footwear__Toys__Bags__Unknown.fd70912290", "fqn": ["dbt_analytics_engineering", "intermediate", "Inventory", "accepted_values_int_inventory_product_category__Electronics__Clothing__Kitchen__Office__Sports__Health__Beauty__Footwear__Toys__Bags__Unknown"], "alias": "accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438"}, "created_at": 1784565035.5883424, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_inventory_product", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_inventory_product"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n category as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_inventory_product\"\n group by category\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Electronics','Clothing','Kitchen','Office','Sports','Health','Beauty','Footwear','Toys','Bags','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "category", "file_key_name": "models.int_inventory_product", "attached_node": "model.dbt_analytics_engineering.int_inventory_product", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "category", "values": ["Electronics", "Clothing", "Kitchen", "Office", "Sports", "Health", "Beauty", "Footwear", "Toys", "Bags", "Unknown"], "model": "{{ get_where_subquery(ref('int_inventory_product')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_product_attributes_product_id.8584b57f27": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_product_attributes_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_product_attributes_product_id.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_product_attributes_product_id.8584b57f27", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "unique_int_product_attributes_product_id"], "alias": "unique_int_product_attributes_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.6076627, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "unique", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_product_attributes_product_id.d317fe9f5c": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_product_attributes_product_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_product_attributes_product_id.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_product_id.d317fe9f5c", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "not_null_int_product_attributes_product_id"], "alias": "not_null_int_product_attributes_product_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.6109269, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere product_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_id", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_id", "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_product_attributes_sku.46fd7012d5": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_product_attributes_sku", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_product_attributes_sku.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_product_attributes_sku.46fd7012d5", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "unique_int_product_attributes_sku"], "alias": "unique_int_product_attributes_sku", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.6137843, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_sku.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n sku as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere sku is not null\ngroup by sku\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "sku", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "unique", "kwargs": {"column_name": "sku", "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_product_attributes_sku.4d167f66ec": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_product_attributes_sku", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_product_attributes_sku.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_sku.4d167f66ec", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "not_null_int_product_attributes_sku"], "alias": "not_null_int_product_attributes_sku", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.6166089, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sku.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect sku\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere sku is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "sku", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "sku", "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_product_attributes_product_name.ccc7fc48bd": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_product_attributes_product_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_product_attributes_product_name.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_product_attributes_product_name.ccc7fc48bd", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "unique_int_product_attributes_product_name"], "alias": "unique_int_product_attributes_product_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.6196797, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_name.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_name as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere product_name is not null\ngroup by product_name\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_name", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "unique", "kwargs": {"column_name": "product_name", "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_product_attributes_product_name.ab95611d88": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_product_attributes_product_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_product_attributes_product_name.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_product_name.ab95611d88", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "not_null_int_product_attributes_product_name"], "alias": "not_null_int_product_attributes_product_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.622549, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_name\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere product_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_name", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_name", "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_product_attributes_brand.c1dd65709d": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_product_attributes_brand", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_product_attributes_brand.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_brand.c1dd65709d", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "not_null_int_product_attributes_brand"], "alias": "not_null_int_product_attributes_brand", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.6256506, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_brand.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect brand\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere brand is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "brand", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "brand", "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_product_attributes_category.39f4905b43": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_product_attributes_category", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_product_attributes_category.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_category.39f4905b43", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "not_null_int_product_attributes_category"], "alias": "not_null_int_product_attributes_category", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.6286066, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_category.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect category\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere category is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "category", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "category", "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_product_attributes_category__Bags__Beauty__Clothing__Electronics__Footwear__Health__Kitchen__Office__Sports__Toys.07ebbdc1f6": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_product_attributes_category__Bags__Beauty__Clothing__Electronics__Footwear__Health__Kitchen__Office__Sports__Toys", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_product_attributes_category__Bags__Beauty__Clothing__Electronics__Footwear__Health__Kitchen__Office__Sports__Toys.07ebbdc1f6", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "accepted_values_int_product_attributes_category__Bags__Beauty__Clothing__Electronics__Footwear__Health__Kitchen__Office__Sports__Toys"], "alias": "accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8"}, "created_at": 1784565035.6320364, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n category as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_product_attributes\"\n group by category\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Bags','Beauty','Clothing','Electronics','Footwear','Health','Kitchen','Office','Sports','Toys'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "category", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "category", "values": ["Bags", "Beauty", "Clothing", "Electronics", "Footwear", "Health", "Kitchen", "Office", "Sports", "Toys"], "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_product_attributes_sub_category.ec1e5bef03": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_product_attributes_sub_category", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_product_attributes_sub_category.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_sub_category.ec1e5bef03", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "not_null_int_product_attributes_sub_category"], "alias": "not_null_int_product_attributes_sub_category", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.6405172, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sub_category.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect sub_category\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere sub_category is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "sub_category", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "sub_category", "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_product_attributes_department.fad95d1e4c": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_product_attributes_department", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_product_attributes_department.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_department.fad95d1e4c", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "not_null_int_product_attributes_department"], "alias": "not_null_int_product_attributes_department", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.6436596, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_department.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect department\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere department is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "department", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "department", "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_product_attributes_department__Apparel_Sports__Books_Office__Fitness_Outdoors__Health_Beauty__Home_Garden__Technology__Toys_Games.2b64b418f6": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_product_attributes_department__Apparel_Sports__Books_Office__Fitness_Outdoors__Health_Beauty__Home_Garden__Technology__Toys_Games", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_product_attributes_department__Apparel_Sports__Books_Office__Fitness_Outdoors__Health_Beauty__Home_Garden__Technology__Toys_Games.2b64b418f6", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "accepted_values_int_product_attributes_department__Apparel_Sports__Books_Office__Fitness_Outdoors__Health_Beauty__Home_Garden__Technology__Toys_Games"], "alias": "accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf"}, "created_at": 1784565035.6466143, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n department as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_product_attributes\"\n group by department\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Apparel & Sports','Books & Office','Fitness & Outdoors','Health & Beauty','Home & Garden','Technology','Toys & Games'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "department", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "department", "values": ["Apparel & Sports", "Books & Office", "Fitness & Outdoors", "Health & Beauty", "Home & Garden", "Technology", "Toys & Games"], "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_product_attributes_launched_date.7175feb482": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_product_attributes_launched_date", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_product_attributes_launched_date.sql", "original_file_path": "models/intermediate/Products/_int_products_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_launched_date.7175feb482", "fqn": ["dbt_analytics_engineering", "intermediate", "Products", "not_null_int_product_attributes_launched_date"], "alias": "not_null_int_product_attributes_launched_date", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784565035.6596456, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_product_attributes", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_product_attributes"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_launched_date.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect launched_date\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere launched_date is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "launched_date", "file_key_name": "models.int_product_attributes", "attached_node": "model.dbt_analytics_engineering.int_product_attributes", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "launched_date", "model": "{{ get_where_subquery(ref('int_product_attributes')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.int_return_processing": {"database": "RetailDB", "schema": "bronze", "name": "int_return_processing", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Returns/int_return_processing.sql", "original_file_path": "models/intermediate/Returns/int_return_processing.sql", "unique_id": "model.dbt_analytics_engineering.int_return_processing", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "int_return_processing"], "alias": "int_return_processing", "checksum": {"name": "sha256", "checksum": "dbc6b92a83a66d4372b21b90e6020d7657fe67801577f5a027b730b99a03d904"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Creates a trusted return processing operational dataset by standardizing categorical metrics, \nnormalizing return fulfillment channels, and cleansing workflow status identifiers. The model \napplies Title Case to reason fields and handles alphanumeric casting exceptions for logistics personnel.\n", "columns": {"return_id": {"name": "return_id", "description": "Primary key uniquely identifying the individual return log.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "return_reason": {"name": "return_reason", "description": "The documented customer reason for returning the product.\n**Transformation Logic:** Standardized using whitespace trimming and converted to Title Case. Missing or empty string inputs fallback to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "return_channel": {"name": "return_channel", "description": "The operational channel through which the return was initiated.\n**Transformation Logic:** Groups highly fragmented text inputs into specific corporate categories:\n- 'Mobile App' (Mapped from: 'app', 'mobile app', 'mobile')\n- 'In Store' (Mapped from: 'in store', 'in-store', 'store')\n- 'Online' (Mapped from: 'online', 'web')\n- 'Phone Call' (Mapped from: 'phone')\n- 'Catalog' (Mapped from: 'catalog')\n- Unmapped formats default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "restocked": {"name": "restocked", "description": "Operational flag indicating whether the item was returned to store inventory shelf space.\n**Transformation Logic:** Standardized from multi-type strings ('yes', 'y', '1' to 'Yes' / 'no', 'n', '0' to 'No'). Outliers resolve to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "return_status": {"name": "return_status", "description": "Current state of the return processing lifecycle. Standardized to Title Case; missing source entries default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "handled_by_emp_id": {"name": "handled_by_emp_id", "description": "The unique identifier of the store employee processing the return ticket. Converted to an integer data type, with missing or invalid fields coerced to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Returns/_int_returns_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784566486.8436584, "relation_name": "\"RetailDB\".\"bronze\".\"int_return_processing\"", "raw_code": "SELECT\n return_id,\n\n CASE \n WHEN return_reason IS NULL OR TRIM(return_reason) = '' \n THEN 'Unknown'\n\n ELSE TRIM(dbo.TitleCase(return_reason))\n END as return_reason,\n\n CASE \n WHEN {{ trim_lower('return_channel') }} IN ('app', 'mobile app', 'mobile') \n THEN 'Mobile App'\n\n WHEN {{ trim_lower('return_channel') }} IN ('in store', 'in-store', 'store') \n THEN 'In Store'\n\n WHEN {{ trim_lower('return_channel') }} IN ('online', 'web') \n THEN 'Online'\n\n WHEN {{ trim_lower('return_channel') }} = 'phone' \n THEN 'Phone Call'\n\n WHEN {{ trim_lower('return_channel') }} = 'catalog' \n THEN 'Catalog'\n\n ELSE 'Unknown'\n END AS return_channel,\n \n CASE \n WHEN {{ trim_lower('restocked') }} IN ('yes', 'y', '1') \n THEN 'Yes'\n\n WHEN {{ trim_lower('restocked') }} IN ('no', 'n', '0') \n THEN 'No'\n\n ELSE 'Unknown'\n END AS restocked,\n\n CASE \n WHEN return_status IS NULL \n THEN 'Unknown'\n\n ELSE TRIM(dbo.TitleCase(return_status))\n END as return_status,\n\n CASE \n WHEN handled_by_emp_id IS NULL OR TRY_CONVERT(INT, handled_by_emp_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, handled_by_emp_id)\n END as handled_by_emp_id,\n\n CASE \n WHEN notes IS NULL OR LEN(TRIM(notes)) < 3 OR TRIM(notes) = '' THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(REPLACE(REPLACE(notes, CHAR(10), ''), CHAR(13), '')))\n END as notes\nFROM {{ ref('stg_returns') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_returns", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.trim_lower"], "nodes": ["model.dbt_analytics_engineering.stg_returns"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_processing.sql", "compiled": true, "compiled_code": "SELECT\n return_id,\n\n CASE \n WHEN return_reason IS NULL OR TRIM(return_reason) = '' \n THEN 'Unknown'\n\n ELSE TRIM(dbo.TitleCase(return_reason))\n END as return_reason,\n\n CASE \n WHEN \n LOWER(TRIM(return_channel))\n IN ('app', 'mobile app', 'mobile') \n THEN 'Mobile App'\n\n WHEN \n LOWER(TRIM(return_channel))\n IN ('in store', 'in-store', 'store') \n THEN 'In Store'\n\n WHEN \n LOWER(TRIM(return_channel))\n IN ('online', 'web') \n THEN 'Online'\n\n WHEN \n LOWER(TRIM(return_channel))\n = 'phone' \n THEN 'Phone Call'\n\n WHEN \n LOWER(TRIM(return_channel))\n = 'catalog' \n THEN 'Catalog'\n\n ELSE 'Unknown'\n END AS return_channel,\n \n CASE \n WHEN \n LOWER(TRIM(restocked))\n IN ('yes', 'y', '1') \n THEN 'Yes'\n\n WHEN \n LOWER(TRIM(restocked))\n IN ('no', 'n', '0') \n THEN 'No'\n\n ELSE 'Unknown'\n END AS restocked,\n\n CASE \n WHEN return_status IS NULL \n THEN 'Unknown'\n\n ELSE TRIM(dbo.TitleCase(return_status))\n END as return_status,\n\n CASE \n WHEN handled_by_emp_id IS NULL OR TRY_CONVERT(INT, handled_by_emp_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, handled_by_emp_id)\n END as handled_by_emp_id,\n\n CASE \n WHEN notes IS NULL OR LEN(TRIM(notes)) < 3 OR TRIM(notes) = '' THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(REPLACE(REPLACE(notes, CHAR(10), ''), CHAR(13), '')))\n END as notes\nFROM \"RetailDB\".\"bronze\".\"stg_returns\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["return_id"], "time_spine": null}, "model.dbt_analytics_engineering.int_return_transaction": {"database": "RetailDB", "schema": "bronze", "name": "int_return_transaction", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Returns/int_return_transaction.sql", "original_file_path": "models/intermediate/Returns/int_return_transaction.sql", "unique_id": "model.dbt_analytics_engineering.int_return_transaction", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "int_return_transaction"], "alias": "int_return_transaction", "checksum": {"name": "sha256", "checksum": "18cc5a0660fe8c5a5fdfac0b4058c3e498ad93fb72e447c406783d92365224a4"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Normalizes and links return vouchers back to their core original transaction entities. The model enforces \nprefix patterns for tracking codes, tokenizes associated consumer profile fields into Title Case, and \nexecutes a multi-locale temporal handling sequence to cast multi-format text values into clean ISO dates.\n", "columns": {"return_id": {"name": "return_id", "description": "Cleaned primary identification key. Values below 1 or non-numeric elements resolve to NULL.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "original_txn_id": {"name": "original_txn_id", "description": "The alphanumeric string of the original purchasing transaction header.\n**Transformation Logic:** Enforces strict systemic syntax verification: must contain the \ncorporate prefix 'TXN-' and maintain a minimum character length of 10. Failing rows are coerced to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "original_order_id": {"name": "original_order_id", "description": "The integer identifier tracking the master order entry. Values below 1 or invalid formats resolve to NULL.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "Unique identifier linking the transaction to a customer account profile. Invalid formats resolve to NULL.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Full name of the purchasing client. Standardized into Title Case; blank inputs fallback to 'Unknown'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "Unique identifier tracking the specific physical item returned. Invalid formats resolve to NULL.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_name": {"name": "product_name", "description": "Official description name of the item. Standardized into Title Case; blanks default to 'Unknown'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "quantity_returned": {"name": "quantity_returned", "description": "Total count of physical units returned. Enforces business rule threshold :\nvalues below 1 or non-numeric elements are coerced to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "return_date": {"name": "return_date", "description": "The calendar date the return was officially recorded by the system.\n**Transformation Logic:** Evaluates multiple text structures into an ISO-standard DATE format via an explicit CASE validation tree:\n- Textual month lines and standard hyphen/slash paths are natively parsed.\n- Multi-locale ambiguity is handled defensively: if the middle token exceeds 12, it is treated as US format (Style 101);\n if the leading segment exceeds 12, it is handled as International format (Style 103).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Returns/_int_returns_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784566486.84758, "relation_name": "\"RetailDB\".\"bronze\".\"int_return_transaction\"", "raw_code": "SELECT\n CASE \n WHEN TRY_CONVERT(INT, return_id) < 1 OR TRY_CONVERT(INT, return_id) IS NULL \n THEN NULL\n\n ELSE TRY_CONVERT(INT, return_id)\n END as return_id,\n\n CASE \n WHEN original_txn_id IS NULL \n THEN NULL\n\n WHEN UPPER(TRIM(original_txn_id)) NOT LIKE 'TXN-%' \n THEN NULL\n\n WHEN LEN(UPPER(TRIM(original_txn_id))) < 10 \n THEN NULL\n\n ELSE UPPER(TRIM(original_txn_id))\n END as original_txn_id,\n\n CASE \n WHEN original_order_id IS NULL OR TRY_CONVERT(INT, original_order_id) < 1 OR TRY_CONVERT(INT, original_order_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, original_order_id)\n END as original_order_id,\n\n CASE \n WHEN customer_id IS NULL OR TRY_CONVERT(INT, customer_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, customer_id)\n END as customer_id,\n\n CASE \n WHEN customer_name IS NULL OR TRIM(customer_name) = '' \n THEN 'Unknown'\n\n ELSE dbo.TitleCase(TRIM(customer_name))\n END as customer_name,\n\n CASE \n WHEN product_id IS NULL OR TRY_CONVERT(INT, product_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, product_id)\n END as product_id,\n\n CASE \n WHEN product_name IS NULL OR TRIM(product_name) = '' \n THEN 'Unknown'\n\n ELSE dbo.TitleCase(TRIM(product_name))\n END as product_name,\n\n CASE \n WHEN quantity_returned IS NULL OR TRY_CONVERT(INT, quantity_returned) IS NULL OR TRY_CONVERT(INT, quantity_returned) < 1 \n THEN NULL \n\n ELSE TRY_CONVERT(INT, quantity_returned)\n END as quantity_returned,\n\n{{ standardize_date('return_date') }} as return_date\nFROM {{ ref('stg_returns') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_returns", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.standardize_date"], "nodes": ["model.dbt_analytics_engineering.stg_returns"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/int_return_transaction.sql", "compiled": true, "compiled_code": "SELECT\n CASE \n WHEN TRY_CONVERT(INT, return_id) < 1 OR TRY_CONVERT(INT, return_id) IS NULL \n THEN NULL\n\n ELSE TRY_CONVERT(INT, return_id)\n END as return_id,\n\n CASE \n WHEN original_txn_id IS NULL \n THEN NULL\n\n WHEN UPPER(TRIM(original_txn_id)) NOT LIKE 'TXN-%' \n THEN NULL\n\n WHEN LEN(UPPER(TRIM(original_txn_id))) < 10 \n THEN NULL\n\n ELSE UPPER(TRIM(original_txn_id))\n END as original_txn_id,\n\n CASE \n WHEN original_order_id IS NULL OR TRY_CONVERT(INT, original_order_id) < 1 OR TRY_CONVERT(INT, original_order_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, original_order_id)\n END as original_order_id,\n\n CASE \n WHEN customer_id IS NULL OR TRY_CONVERT(INT, customer_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, customer_id)\n END as customer_id,\n\n CASE \n WHEN customer_name IS NULL OR TRIM(customer_name) = '' \n THEN 'Unknown'\n\n ELSE dbo.TitleCase(TRIM(customer_name))\n END as customer_name,\n\n CASE \n WHEN product_id IS NULL OR TRY_CONVERT(INT, product_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, product_id)\n END as product_id,\n\n CASE \n WHEN product_name IS NULL OR TRIM(product_name) = '' \n THEN 'Unknown'\n\n ELSE dbo.TitleCase(TRIM(product_name))\n END as product_name,\n\n CASE \n WHEN quantity_returned IS NULL OR TRY_CONVERT(INT, quantity_returned) IS NULL OR TRY_CONVERT(INT, quantity_returned) < 1 \n THEN NULL \n\n ELSE TRY_CONVERT(INT, quantity_returned)\n END as quantity_returned,\n\n\n\n\n CASE\n WHEN TRIM(return_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(return_date))\n\n WHEN TRIM(return_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(return_date))\n\n WHEN TRIM(return_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(return_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(return_date), 110)\n\n WHEN TRIM(return_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(return_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(return_date), 105)\n\n WHEN TRIM(return_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(return_date))\n\n WHEN TRIM(return_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(return_date))\n\n WHEN TRIM(return_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(return_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(return_date), 101)\n\n WHEN TRIM(return_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(return_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(return_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(return_date), 101)\n\n END\n\n as return_date\nFROM \"RetailDB\".\"bronze\".\"stg_returns\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["return_id"], "time_spine": null}, "model.dbt_analytics_engineering.int_review_feedback": {"database": "RetailDB", "schema": "bronze", "name": "int_review_feedback", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Reviews/int_review_feedback.sql", "original_file_path": "models/intermediate/Reviews/int_review_feedback.sql", "unique_id": "model.dbt_analytics_engineering.int_review_feedback", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "int_review_feedback"], "alias": "int_review_feedback", "checksum": {"name": "sha256", "checksum": "2050bdafcd13ae1f004dd5f8e8d8c33a8b9483bc32969eda98f720197394f35a"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Creates a trusted product review metadata dataset by standardizing submission channels \nand cleansing text field values. The model normalizes user engagement attributes, \nstrips carriage returns and line breaks from titles using scalar operations, and maps \nhighly fragmented input strings into canonical omni-channel tracking vectors.\n", "columns": {"review_id": {"name": "review_id", "description": "Primary key uniquely identifying the consumer review record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "helpful_votes": {"name": "helpful_votes", "description": "The total volume of user votes marking the review as informative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "review_channel": {"name": "review_channel", "description": "The unified front-end channel where the submission was published.\n**Transformation Logic:** Groups variations and shortcuts into a Title Case business taxonomy:\n- 'Mobile App' (From: 'app', 'mobile app', 'mobile')\n- 'In Store' (From: 'in store', 'in-store', 'store')\n- 'Online' (From: 'online', 'web')\n- 'Phone Call' (From: 'phone')\n- 'Catalog' (From: 'catalog')\n- Missing or unmapped structures safely default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "review_title": {"name": "review_title", "description": "The sanitized summary title text.\n**Transformation Logic:** Applies whitespace trimming, Title Case conversions, and strips \nhidden carriage returns `CHAR(13)` and line feeds `CHAR(10)`. Empty fields default to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Reviews/_int_reviews_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784566486.8888578, "relation_name": "\"RetailDB\".\"bronze\".\"int_review_feedback\"", "raw_code": "SELECT\n review_id,\n \n helpful_votes,\n\n CASE \n WHEN {{ trim_lower('review_channel') }} IN ('app', 'mobile app', 'mobile') \n THEN 'Mobile App'\n\n WHEN {{ trim_lower('review_channel') }} IN ('in store', 'in-store', 'store') \n THEN 'In Store'\n\n WHEN {{ trim_lower('review_channel') }} IN ('online', 'web') \n THEN 'Online'\n\n WHEN {{ trim_lower('review_channel') }} = 'phone' \n THEN 'Phone Call'\n\n WHEN {{ trim_lower('review_channel') }} = 'catalog' \n THEN 'Catalog'\n\n ELSE 'Unknown'\n END AS review_channel,\n\n CASE\n WHEN REPLACE(REPLACE(TRIM(dbo.TitleCase(review_title)), CHAR(13), ''), CHAR(10), '') = '' \n THEN 'Unknown'\n \n ELSE REPLACE(REPLACE(TRIM(dbo.TitleCase(review_title)), CHAR(13), ''), CHAR(10), '')\n END as review_title\nFROM {{ ref('stg_reviews') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_reviews", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.trim_lower"], "nodes": ["model.dbt_analytics_engineering.stg_reviews"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/int_review_feedback.sql", "compiled": true, "compiled_code": "SELECT\n review_id,\n \n helpful_votes,\n\n CASE \n WHEN \n LOWER(TRIM(review_channel))\n IN ('app', 'mobile app', 'mobile') \n THEN 'Mobile App'\n\n WHEN \n LOWER(TRIM(review_channel))\n IN ('in store', 'in-store', 'store') \n THEN 'In Store'\n\n WHEN \n LOWER(TRIM(review_channel))\n IN ('online', 'web') \n THEN 'Online'\n\n WHEN \n LOWER(TRIM(review_channel))\n = 'phone' \n THEN 'Phone Call'\n\n WHEN \n LOWER(TRIM(review_channel))\n = 'catalog' \n THEN 'Catalog'\n\n ELSE 'Unknown'\n END AS review_channel,\n\n CASE\n WHEN REPLACE(REPLACE(TRIM(dbo.TitleCase(review_title)), CHAR(13), ''), CHAR(10), '') = '' \n THEN 'Unknown'\n \n ELSE REPLACE(REPLACE(TRIM(dbo.TitleCase(review_title)), CHAR(13), ''), CHAR(10), '')\n END as review_title\nFROM \"RetailDB\".\"bronze\".\"stg_reviews\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["review_id"], "time_spine": null}, "model.dbt_analytics_engineering.int_store_operations": {"database": "RetailDB", "schema": "bronze", "name": "int_store_operations", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Stores/int_store_operations.sql", "original_file_path": "models/intermediate/Stores/int_store_operations.sql", "unique_id": "model.dbt_analytics_engineering.int_store_operations", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "int_store_operations"], "alias": "int_store_operations", "checksum": {"name": "sha256", "checksum": "c4d69d1db764b7a03a407181c2360226449b3f34f94d72c38a186365305419d0"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Calculates operational capacity profiles, capacity thresholds, and service amenities \nacross corporate properties. The model isolates financial variables, validates physical bounding numbers \nto eliminate system tracking anomalies, and cleanses hidden text line breaks from boolean indicators.\n", "columns": {"store_id": {"name": "store_id", "description": "Primary key identifying the operating facility.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "sq_footage": {"name": "sq_footage", "description": "The total calculated physical interior surface area of the building. Converted to an integer. \nValues failing translation or showing negative bounds (< 0) are coerced to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "num_employees": {"name": "num_employees", "description": "Total operational payroll headcount recorded at the facility. Converted to an integer. \nValues showing negative bounds (< 0) are coerced to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "annual_rent_usd": {"name": "annual_rent_usd", "description": "The annualized lease financial liability in USD. Converted to an integer. \nValues tracking below 1 or completely missing default to NULL.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_active": {"name": "is_active", "description": "Standardized boolean operational trading milestone flag.\n**Transformation Logic:** Standardizes multiple system-generated tokens ('true', 'yes', 'y', '1', 'active') \ninto 'True', and negative states ('false', 'no', 'n', '0', 'not active') into 'False'. Outliers map to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "has_parking": {"name": "has_parking", "description": "Standardized binary vehicle amenity flag.\n**Transformation Logic:** Maps incoming affirmative variations ('true', 'yes', 'y', '1') to 'True' and \nnegative sequences to 'False'. Any unmatched or missing items fallback to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "has_cafe": {"name": "has_cafe", "description": "Standardized facility restaurant amenity flag.\n**Transformation Logic:** Programmatically strips hidden formatting noise including carriage returns `CHAR(13)` \nand line feeds `CHAR(10)` from lowercase text blocks. Maps affirmative states to 'True', negative structures \nto 'False', and corrupt lines to 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Stores/_int_stores_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784566486.9070773, "relation_name": "\"RetailDB\".\"bronze\".\"int_store_operations\"", "raw_code": "SELECT\n store_id,\n\n CASE \n WHEN sq_footage IS NULL OR sq_footage < 0 \n THEN NULL\n \n ELSE TRY_CONVERT(INT, sq_footage)\n END as sq_footage,\n\n CASE \n WHEN num_employees IS NULL OR num_employees < 0 \n THEN NULL\n\n ELSE TRY_CONVERT(INT, num_employees)\n END as num_employees,\n\n CASE \n WHEN annual_rent_usd < 1 OR annual_rent_usd IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, annual_rent_usd)\n END as annual_rent_usd,\n\n CASE \n WHEN {{ trim_lower('is_active') }} IN ('true', 'yes', 'y', '1', 'active') \n THEN 'True'\n\n WHEN {{ trim_lower('is_active') }} IN ('false', 'no', 'n', '0', 'not active') \n THEN 'False'\n\n ELSE 'Unknown'\n END as is_active,\n\n CASE \n WHEN {{ trim_lower('has_parking') }} IN ('true', 'yes', 'y', '1') \n THEN 'True'\n\n WHEN {{ trim_lower('has_parking') }} IN ('false', 'no', 'n', '0') \n THEN 'False'\n\n ELSE 'Unknown'\n END as has_parking,\n\n CASE \n WHEN REPLACE(REPLACE({{ trim_lower('has_cafe') }}, CHAR(13), ''),CHAR(10), '') IN ('1', 'yes', 'y','true') \n THEN 'True'\n\n WHEN REPLACE(REPLACE({{ trim_lower('has_cafe') }}, CHAR(13), ''),CHAR(10), '') IN ('0', 'no', 'n','false') \n THEN 'False'\n\n ELSE 'Unknown'\n END as has_cafe\nFROM {{ ref('stg_stores') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stores", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.trim_lower"], "nodes": ["model.dbt_analytics_engineering.stg_stores"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/int_store_operations.sql", "compiled": true, "compiled_code": "SELECT\n store_id,\n\n CASE \n WHEN sq_footage IS NULL OR sq_footage < 0 \n THEN NULL\n \n ELSE TRY_CONVERT(INT, sq_footage)\n END as sq_footage,\n\n CASE \n WHEN num_employees IS NULL OR num_employees < 0 \n THEN NULL\n\n ELSE TRY_CONVERT(INT, num_employees)\n END as num_employees,\n\n CASE \n WHEN annual_rent_usd < 1 OR annual_rent_usd IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, annual_rent_usd)\n END as annual_rent_usd,\n\n CASE \n WHEN \n LOWER(TRIM(is_active))\n IN ('true', 'yes', 'y', '1', 'active') \n THEN 'True'\n\n WHEN \n LOWER(TRIM(is_active))\n IN ('false', 'no', 'n', '0', 'not active') \n THEN 'False'\n\n ELSE 'Unknown'\n END as is_active,\n\n CASE \n WHEN \n LOWER(TRIM(has_parking))\n IN ('true', 'yes', 'y', '1') \n THEN 'True'\n\n WHEN \n LOWER(TRIM(has_parking))\n IN ('false', 'no', 'n', '0') \n THEN 'False'\n\n ELSE 'Unknown'\n END as has_parking,\n\n CASE \n WHEN REPLACE(REPLACE(\n LOWER(TRIM(has_cafe))\n, CHAR(13), ''),CHAR(10), '') IN ('1', 'yes', 'y','true') \n THEN 'True'\n\n WHEN REPLACE(REPLACE(\n LOWER(TRIM(has_cafe))\n, CHAR(13), ''),CHAR(10), '') IN ('0', 'no', 'n','false') \n THEN 'False'\n\n ELSE 'Unknown'\n END as has_cafe\nFROM \"RetailDB\".\"bronze\".\"stg_stores\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["store_id"], "time_spine": null}, "test.dbt_analytics_engineering.unique_int_return_processing_return_id.7f07242ef7": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_return_processing_return_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_return_processing_return_id.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_return_processing_return_id.7f07242ef7", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "unique_int_return_processing_return_id"], "alias": "unique_int_return_processing_return_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.8489273, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_processing", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_processing"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_processing_return_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n return_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere return_id is not null\ngroup by return_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_id", "file_key_name": "models.int_return_processing", "attached_node": "model.dbt_analytics_engineering.int_return_processing", "test_metadata": {"name": "unique", "kwargs": {"column_name": "return_id", "model": "{{ get_where_subquery(ref('int_return_processing')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_return_processing_return_id.70a41fc821": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_return_processing_return_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_return_processing_return_id.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_return_processing_return_id.70a41fc821", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "not_null_int_return_processing_return_id"], "alias": "not_null_int_return_processing_return_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.8511913, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_processing", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_processing"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_id\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere return_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_id", "file_key_name": "models.int_return_processing", "attached_node": "model.dbt_analytics_engineering.int_return_processing", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "return_id", "model": "{{ get_where_subquery(ref('int_return_processing')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_return_processing_return_reason.def074cf28": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_return_processing_return_reason", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_return_processing_return_reason.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_return_processing_return_reason.def074cf28", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "not_null_int_return_processing_return_reason"], "alias": "not_null_int_return_processing_return_reason", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.8534303, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_processing", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_processing"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_reason.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_reason\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere return_reason is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_reason", "file_key_name": "models.int_return_processing", "attached_node": "model.dbt_analytics_engineering.int_return_processing", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "return_reason", "model": "{{ get_where_subquery(ref('int_return_processing')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_return_processing_return_channel.4e70d8cedb": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_return_processing_return_channel", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_return_processing_return_channel.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_return_processing_return_channel.4e70d8cedb", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "not_null_int_return_processing_return_channel"], "alias": "not_null_int_return_processing_return_channel", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.855412, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_processing", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_processing"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_channel.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_channel\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere return_channel is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_channel", "file_key_name": "models.int_return_processing", "attached_node": "model.dbt_analytics_engineering.int_return_processing", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "return_channel", "model": "{{ get_where_subquery(ref('int_return_processing')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_return_processing_return_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.5fccc869d9": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_return_processing_return_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_return_processing_return_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.5fccc869d9", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "accepted_values_int_return_processing_return_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown"], "alias": "accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d"}, "created_at": 1784566486.8574286, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_processing", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_processing"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n return_channel as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_return_processing\"\n group by return_channel\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Mobile App','In Store','Online','Phone Call','Catalog','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_channel", "file_key_name": "models.int_return_processing", "attached_node": "model.dbt_analytics_engineering.int_return_processing", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "return_channel", "values": ["Mobile App", "In Store", "Online", "Phone Call", "Catalog", "Unknown"], "model": "{{ get_where_subquery(ref('int_return_processing')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_return_processing_restocked.a169aa3d70": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_return_processing_restocked", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_return_processing_restocked.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_return_processing_restocked.a169aa3d70", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "not_null_int_return_processing_restocked"], "alias": "not_null_int_return_processing_restocked", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.8647313, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_processing", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_processing"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_restocked.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect restocked\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere restocked is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "restocked", "file_key_name": "models.int_return_processing", "attached_node": "model.dbt_analytics_engineering.int_return_processing", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "restocked", "model": "{{ get_where_subquery(ref('int_return_processing')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_return_processing_restocked__Yes__No__Unknown.bcf59a1e1f": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_return_processing_restocked__Yes__No__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_return_processing_restocked__Yes__No__Unknown.bcf59a1e1f", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "accepted_values_int_return_processing_restocked__Yes__No__Unknown"], "alias": "accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b"}, "created_at": 1784566486.8669853, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_processing", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_processing"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n restocked as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_return_processing\"\n group by restocked\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Yes','No','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "restocked", "file_key_name": "models.int_return_processing", "attached_node": "model.dbt_analytics_engineering.int_return_processing", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "restocked", "values": ["Yes", "No", "Unknown"], "model": "{{ get_where_subquery(ref('int_return_processing')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_return_processing_return_status.6d8d37f1d3": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_return_processing_return_status", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_return_processing_return_status.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_return_processing_return_status.6d8d37f1d3", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "not_null_int_return_processing_return_status"], "alias": "not_null_int_return_processing_return_status", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.8747387, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_processing", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_processing"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_status.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_status\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere return_status is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_status", "file_key_name": "models.int_return_processing", "attached_node": "model.dbt_analytics_engineering.int_return_processing", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "return_status", "model": "{{ get_where_subquery(ref('int_return_processing')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_return_transaction_return_id.28ded58b95": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_return_transaction_return_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_return_transaction_return_id.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_return_transaction_return_id.28ded58b95", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "unique_int_return_transaction_return_id"], "alias": "unique_int_return_transaction_return_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.8767378, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_transaction"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_transaction_return_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n return_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_return_transaction\"\nwhere return_id is not null\ngroup by return_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_id", "file_key_name": "models.int_return_transaction", "attached_node": "model.dbt_analytics_engineering.int_return_transaction", "test_metadata": {"name": "unique", "kwargs": {"column_name": "return_id", "model": "{{ get_where_subquery(ref('int_return_transaction')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_return_transaction_return_id.163631358b": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_return_transaction_return_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_return_transaction_return_id.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_return_transaction_return_id.163631358b", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "not_null_int_return_transaction_return_id"], "alias": "not_null_int_return_transaction_return_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.8787382, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_transaction"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_id\nfrom \"RetailDB\".\"bronze\".\"int_return_transaction\"\nwhere return_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_id", "file_key_name": "models.int_return_transaction", "attached_node": "model.dbt_analytics_engineering.int_return_transaction", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "return_id", "model": "{{ get_where_subquery(ref('int_return_transaction')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_return_transaction_customer_name.da820b6e0e": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_return_transaction_customer_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_return_transaction_customer_name.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_return_transaction_customer_name.da820b6e0e", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "not_null_int_return_transaction_customer_name"], "alias": "not_null_int_return_transaction_customer_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.880689, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_transaction"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_customer_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_name\nfrom \"RetailDB\".\"bronze\".\"int_return_transaction\"\nwhere customer_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "customer_name", "file_key_name": "models.int_return_transaction", "attached_node": "model.dbt_analytics_engineering.int_return_transaction", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_name", "model": "{{ get_where_subquery(ref('int_return_transaction')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_return_transaction_product_name.973039b798": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_return_transaction_product_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_return_transaction_product_name.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_return_transaction_product_name.973039b798", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "not_null_int_return_transaction_product_name"], "alias": "not_null_int_return_transaction_product_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.8829858, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_transaction"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_product_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_name\nfrom \"RetailDB\".\"bronze\".\"int_return_transaction\"\nwhere product_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "product_name", "file_key_name": "models.int_return_transaction", "attached_node": "model.dbt_analytics_engineering.int_return_transaction", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "product_name", "model": "{{ get_where_subquery(ref('int_return_transaction')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_return_transaction_return_date.0ceaab3215": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_return_transaction_return_date", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_return_transaction_return_date.sql", "original_file_path": "models/intermediate/Returns/_int_returns_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_return_transaction_return_date.0ceaab3215", "fqn": ["dbt_analytics_engineering", "intermediate", "Returns", "not_null_int_return_transaction_return_date"], "alias": "not_null_int_return_transaction_return_date", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.8852286, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_return_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_return_transaction"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_date.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_date\nfrom \"RetailDB\".\"bronze\".\"int_return_transaction\"\nwhere return_date is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "return_date", "file_key_name": "models.int_return_transaction", "attached_node": "model.dbt_analytics_engineering.int_return_transaction", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "return_date", "model": "{{ get_where_subquery(ref('int_return_transaction')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_review_feedback_review_id.abd37c25ad": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_review_feedback_review_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_review_feedback_review_id.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_review_feedback_review_id.abd37c25ad", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "unique_int_review_feedback_review_id"], "alias": "unique_int_review_feedback_review_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.8901217, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_feedback", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_feedback"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_feedback_review_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n review_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_review_feedback\"\nwhere review_id is not null\ngroup by review_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_id", "file_key_name": "models.int_review_feedback", "attached_node": "model.dbt_analytics_engineering.int_review_feedback", "test_metadata": {"name": "unique", "kwargs": {"column_name": "review_id", "model": "{{ get_where_subquery(ref('int_review_feedback')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_review_feedback_review_id.7319c6feb3": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_review_feedback_review_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_review_feedback_review_id.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_review_feedback_review_id.7319c6feb3", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "not_null_int_review_feedback_review_id"], "alias": "not_null_int_review_feedback_review_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.8921618, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_feedback", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_feedback"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_id\nfrom \"RetailDB\".\"bronze\".\"int_review_feedback\"\nwhere review_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_id", "file_key_name": "models.int_review_feedback", "attached_node": "model.dbt_analytics_engineering.int_review_feedback", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "review_id", "model": "{{ get_where_subquery(ref('int_review_feedback')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_review_feedback_review_channel.e637eee1d6": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_review_feedback_review_channel", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_review_feedback_review_channel.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_review_feedback_review_channel.e637eee1d6", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "not_null_int_review_feedback_review_channel"], "alias": "not_null_int_review_feedback_review_channel", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.894415, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_feedback", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_feedback"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_channel.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_channel\nfrom \"RetailDB\".\"bronze\".\"int_review_feedback\"\nwhere review_channel is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_channel", "file_key_name": "models.int_review_feedback", "attached_node": "model.dbt_analytics_engineering.int_review_feedback", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "review_channel", "model": "{{ get_where_subquery(ref('int_review_feedback')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_review_feedback_review_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.e21453d669": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_review_feedback_review_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_review_feedback_review_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.e21453d669", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "accepted_values_int_review_feedback_review_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown"], "alias": "accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be"}, "created_at": 1784566486.896435, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_feedback", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_feedback"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n review_channel as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_review_feedback\"\n group by review_channel\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Mobile App','In Store','Online','Phone Call','Catalog','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_channel", "file_key_name": "models.int_review_feedback", "attached_node": "model.dbt_analytics_engineering.int_review_feedback", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "review_channel", "values": ["Mobile App", "In Store", "Online", "Phone Call", "Catalog", "Unknown"], "model": "{{ get_where_subquery(ref('int_review_feedback')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_review_feedback_review_title.4b5134c5ca": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_review_feedback_review_title", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_review_feedback_review_title.sql", "original_file_path": "models/intermediate/Reviews/_int_reviews_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_review_feedback_review_title.4b5134c5ca", "fqn": ["dbt_analytics_engineering", "intermediate", "Reviews", "not_null_int_review_feedback_review_title"], "alias": "not_null_int_review_feedback_review_title", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.9021962, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_review_feedback", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_review_feedback"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_title.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_title\nfrom \"RetailDB\".\"bronze\".\"int_review_feedback\"\nwhere review_title is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "review_title", "file_key_name": "models.int_review_feedback", "attached_node": "model.dbt_analytics_engineering.int_review_feedback", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "review_title", "model": "{{ get_where_subquery(ref('int_review_feedback')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_store_operations_store_id.2018d3ff75": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_store_operations_store_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_store_operations_store_id.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_store_operations_store_id.2018d3ff75", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "unique_int_store_operations_store_id"], "alias": "unique_int_store_operations_store_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.9083524, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_operations", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_operations"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_operations_store_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n store_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_store_operations\"\nwhere store_id is not null\ngroup by store_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.int_store_operations", "attached_node": "model.dbt_analytics_engineering.int_store_operations", "test_metadata": {"name": "unique", "kwargs": {"column_name": "store_id", "model": "{{ get_where_subquery(ref('int_store_operations')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_operations_store_id.4e3985d8f2": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_operations_store_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_operations_store_id.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_operations_store_id.4e3985d8f2", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_operations_store_id"], "alias": "not_null_int_store_operations_store_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.9104166, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_operations", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_operations"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_store_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"int_store_operations\"\nwhere store_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "store_id", "file_key_name": "models.int_store_operations", "attached_node": "model.dbt_analytics_engineering.int_store_operations", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "store_id", "model": "{{ get_where_subquery(ref('int_store_operations')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_operations_is_active.b4ed4559d5": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_operations_is_active", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_operations_is_active.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_operations_is_active.b4ed4559d5", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_operations_is_active"], "alias": "not_null_int_store_operations_is_active", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.9126427, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_operations", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_operations"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_is_active.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect is_active\nfrom \"RetailDB\".\"bronze\".\"int_store_operations\"\nwhere is_active is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "is_active", "file_key_name": "models.int_store_operations", "attached_node": "model.dbt_analytics_engineering.int_store_operations", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "is_active", "model": "{{ get_where_subquery(ref('int_store_operations')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_store_operations_is_active__True__False__Unknown.298394908a": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_store_operations_is_active__True__False__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_store_operations_is_active__True__False__Unknown.298394908a", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "accepted_values_int_store_operations_is_active__True__False__Unknown"], "alias": "accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf"}, "created_at": 1784566486.914788, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_operations", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_operations"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_active as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_store_operations\"\n group by is_active\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "is_active", "file_key_name": "models.int_store_operations", "attached_node": "model.dbt_analytics_engineering.int_store_operations", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "is_active", "values": ["True", "False", "Unknown"], "model": "{{ get_where_subquery(ref('int_store_operations')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_operations_has_parking.94fffde25b": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_operations_has_parking", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_operations_has_parking.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_operations_has_parking.94fffde25b", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_operations_has_parking"], "alias": "not_null_int_store_operations_has_parking", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.923424, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_operations", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_operations"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_parking.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect has_parking\nfrom \"RetailDB\".\"bronze\".\"int_store_operations\"\nwhere has_parking is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "has_parking", "file_key_name": "models.int_store_operations", "attached_node": "model.dbt_analytics_engineering.int_store_operations", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "has_parking", "model": "{{ get_where_subquery(ref('int_store_operations')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_parking__True__False__Unknown.3728409db2": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_store_operations_has_parking__True__False__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_parking__True__False__Unknown.3728409db2", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "accepted_values_int_store_operations_has_parking__True__False__Unknown"], "alias": "accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb"}, "created_at": 1784566486.9266584, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_operations", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_operations"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n has_parking as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_store_operations\"\n group by has_parking\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "has_parking", "file_key_name": "models.int_store_operations", "attached_node": "model.dbt_analytics_engineering.int_store_operations", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "has_parking", "values": ["True", "False", "Unknown"], "model": "{{ get_where_subquery(ref('int_store_operations')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_store_operations_has_cafe.6ebade018d": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_store_operations_has_cafe", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_store_operations_has_cafe.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_store_operations_has_cafe.6ebade018d", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "not_null_int_store_operations_has_cafe"], "alias": "not_null_int_store_operations_has_cafe", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784566486.934291, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_operations", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_operations"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_cafe.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect has_cafe\nfrom \"RetailDB\".\"bronze\".\"int_store_operations\"\nwhere has_cafe is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "has_cafe", "file_key_name": "models.int_store_operations", "attached_node": "model.dbt_analytics_engineering.int_store_operations", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "has_cafe", "model": "{{ get_where_subquery(ref('int_store_operations')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_cafe__True__False__Unknown.b02c35a29d": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_store_operations_has_cafe__True__False__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1.sql", "original_file_path": "models/intermediate/Stores/_int_stores_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_cafe__True__False__Unknown.b02c35a29d", "fqn": ["dbt_analytics_engineering", "intermediate", "Stores", "accepted_values_int_store_operations_has_cafe__True__False__Unknown"], "alias": "accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1"}, "created_at": 1784566486.9371603, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_store_operations", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_store_operations"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n has_cafe as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_store_operations\"\n group by has_cafe\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "has_cafe", "file_key_name": "models.int_store_operations", "attached_node": "model.dbt_analytics_engineering.int_store_operations", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "has_cafe", "values": ["True", "False", "Unknown"], "model": "{{ get_where_subquery(ref('int_store_operations')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.int_customer_profile": {"database": "RetailDB", "schema": "bronze", "name": "int_customer_profile", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Customers/int_customer_profile.sql", "original_file_path": "models/intermediate/Customers/int_customer_profile.sql", "unique_id": "model.dbt_analytics_engineering.int_customer_profile", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "int_customer_profile"], "alias": "int_customer_profile", "checksum": {"name": "sha256", "checksum": "38e9faca5248e013d8ec618453e71d041b83f23cf021fcd5cbf49432f013cd24"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {"owner": "Analytics Engineering", "email": "analytics@company.com", "team": "Data Platform", "business_owner": "Sales Department", "domain": "Sales", "pii": true, "criticality": "High", "refresh_frequency": "Daily", "environment": "Development", "steward": "Ritik Kumar"}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Creates a trusted customer profile dataset by standardizing personal\nattributes and resolving inconsistencies across customer records. The\nmodel cleans customer titles, derives first and last names from the full\nname, normalizes gender values into business-defined categories, and\nconverts multiple date formats into a consistent DATE data type. The\nresulting dataset provides reliable customer profile information for\nsegmentation, demographic analysis, personalization, and downstream\ndimensional models.\n", "columns": {"title": {"name": "title", "description": "Customer title standardized by removing leading and trailing whitespace.\nPreserves the original honorific (for example, Mr, Mrs, Ms, or Dr etc.) while\nensuring consistent formatting across customer records.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "first_name": {"name": "first_name", "description": "Customer first name extracted from the full_name attribute. Supports\nboth two-part and three-part names to provide a consistent first-name\nfield for customer identification and personalization.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "last_name": {"name": "last_name", "description": "Customer last name extracted from the full_name attribute, providing a\nstandardized surname for customer reporting and identity-related\nanalysis.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "gender": {"name": "gender", "description": "Standardized customer gender derived from multiple source\nrepresentations. Abbreviations and inconsistent values are normalized\ninto the business-defined categories 'Male', 'Female', 'Non-Binary',\n'Other', and 'Unknown' to ensure consistent demographic analysis.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "date_of_birth": {"name": "date_of_birth", "description": "Customer date of birth converted into a standardized DATE data type.\nMultiple source date formats are supported, including ISO, US,\nEuropean, and month-name formats. Invalid or unrecognized values are\nreturned as NULL to preserve data quality while enabling accurate\nage-based analysis and customer segmentation.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {"owner": "Analytics Engineering", "email": "analytics@company.com", "team": "Data Platform", "business_owner": "Sales Department", "domain": "Sales", "pii": true, "criticality": "High", "refresh_frequency": "Daily", "environment": "Development", "steward": "Ritik Kumar"}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Customers/_int__customers_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"], "meta": {"owner": "Analytics Engineering", "email": "analytics@company.com", "team": "Data Platform", "business_owner": "Sales Department", "domain": "Sales", "pii": true, "criticality": "High", "refresh_frequency": "Daily", "environment": "Development", "steward": "Ritik Kumar"}}, "created_at": 1784602859.444051, "relation_name": "\"RetailDB\".\"bronze\".\"int_customer_profile\"", "raw_code": "-- ============================================================================\n-- Model: int_customer_profile\n--\n-- Purpose:\n-- Creates a standardized customer profile dataset by applying business\n-- rules to personal customer attributes. This model derives first and last\n-- names from the full name, normalizes gender values into consistent\n-- categories, and converts multiple source date formats into a reliable\n-- DATE data type. The resulting dataset serves as a trusted foundation for\n-- customer demographics, segmentation, personalization, and downstream\n-- dimensional models.\n--\n-- Maintainer: Ritik\n-- ============================================================================\n\nSELECT\n customer_id,\n TRIM(title) as title,\n\n CASE\n WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 2 \n THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)\n\n WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 1 \n THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)\n \n END AS first_name,\n\n PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 1) AS last_name,\n\n CASE {{ trim_lower('gender') }}\n WHEN 'f' THEN 'Female'\n WHEN 'female' THEN 'Female'\n WHEN 'm' THEN 'Male'\n WHEN 'male' THEN 'Male'\n WHEN 'nb' THEN 'Non-Binary'\n WHEN 'non-binary' THEN 'Non-Binary'\n WHEN 'other' THEN 'Other'\n WHEN 'prefer not to say' THEN 'Other'\n ELSE 'Unknown'\n END as gender,\n\n {{ standardize_date('date_of_birth') }} AS date_of_birth\n \nFROM {{ ref('stg_customers') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_customers", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.trim_lower", "macro.dbt_analytics_engineering.standardize_date"], "nodes": ["model.dbt_analytics_engineering.stg_customers"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_profile.sql", "compiled": true, "compiled_code": "-- ============================================================================\n-- Model: int_customer_profile\n--\n-- Purpose:\n-- Creates a standardized customer profile dataset by applying business\n-- rules to personal customer attributes. This model derives first and last\n-- names from the full name, normalizes gender values into consistent\n-- categories, and converts multiple source date formats into a reliable\n-- DATE data type. The resulting dataset serves as a trusted foundation for\n-- customer demographics, segmentation, personalization, and downstream\n-- dimensional models.\n--\n-- Maintainer: Ritik\n-- ============================================================================\n\nSELECT\n customer_id,\n TRIM(title) as title,\n\n CASE\n WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 2 \n THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)\n\n WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 1 \n THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)\n \n END AS first_name,\n\n PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 1) AS last_name,\n\n CASE \n LOWER(TRIM(gender))\n\n WHEN 'f' THEN 'Female'\n WHEN 'female' THEN 'Female'\n WHEN 'm' THEN 'Male'\n WHEN 'male' THEN 'Male'\n WHEN 'nb' THEN 'Non-Binary'\n WHEN 'non-binary' THEN 'Non-Binary'\n WHEN 'other' THEN 'Other'\n WHEN 'prefer not to say' THEN 'Other'\n ELSE 'Unknown'\n END as gender,\n\n \n\n\n CASE\n WHEN TRIM(date_of_birth) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth))\n\n WHEN TRIM(date_of_birth) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth))\n\n WHEN TRIM(date_of_birth) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 110)\n\n WHEN TRIM(date_of_birth) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 105)\n\n WHEN TRIM(date_of_birth) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth))\n\n WHEN TRIM(date_of_birth) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth))\n\n WHEN TRIM(date_of_birth) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 101)\n\n WHEN TRIM(date_of_birth) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(date_of_birth), 101)\n\n END\n\n AS date_of_birth\n \nFROM \"RetailDB\".\"bronze\".\"stg_customers\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.dbt_analytics_engineering.int_transaction_fulfillment": {"database": "RetailDB", "schema": "bronze", "name": "int_transaction_fulfillment", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Transactions/int_transaction_fulfillment.sql", "original_file_path": "models/intermediate/Transactions/int_transaction_fulfillment.sql", "unique_id": "model.dbt_analytics_engineering.int_transaction_fulfillment", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "int_transaction_fulfillment"], "alias": "int_transaction_fulfillment", "checksum": {"name": "sha256", "checksum": "d941892350ff1a3cf8623db17578e75443aa78803a4db673b3f2ff896c582cf9"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "**Layer:** Silver / Intermediate (Supply Chain & Logistics Chronology)\n**Core Objective:** Constructs an immutable timeline tracking order lifecycle milestones (Order -> Ship -> Deliver).\n**Engineering Strategy:** Solves severe omni-channel system data quality issues. First, it implements a \n**Multi-Locale Temporal Parsing Ladder** to map text inputs into a unified `DATE` type. Second, it resolves supply chain \nlogical anomalies\u2014such as an item being marked shipped before it was bought, or an item marked delivered before it left \nthe warehouse\u2014by executing temporal delta matrices and data rotation logic.\n", "columns": {"transaction_id": {"name": "transaction_id", "description": "Primary key tracking ledger identity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "order_date": {"name": "order_date", "description": "The foundational transaction generation calendar date.\n**Business Logic & SQL Mechanics:** Uses pattern matching (`LIKE`) to parse multiple text layout structures. \nIt evaluates textual names (e.g., `Jan 01, 2026`) and splits ambiguous international vs. US layouts by validating component lengths \nand string thresholds before mapping to standard date conversion types (`101`, `103`, `105`, `110`).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "ship_date": {"name": "ship_date", "description": "The official date the package departed the distribution center.\n**Business Logic & SQL Mechanics:** Employs defensive supply chain chronology rules via `DATEDIFF`:\n- If shipping occurs *before* `order_date` (negative window) or spans *greater than 15 days* (SLA breach), \n the engine uses `DATEFROMPARTS` to fix reversed day/month inputs.\n- If the value is completely unpopulated, it inserts an estimated corporate \n logistics SLA timeline of `DATEADD(DAY, 7, order_date)`.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "delivery_date": {"name": "delivery_date", "description": "The milestone date indicating successful logistics delivery at the destination address.\n**Business Logic & SQL Mechanics:** Processes delivery tracking anomalies via nested chronological filters:\n- If the delivery occurs *greater than 17 days* post-shipment or registers an impossible negative window \n*less than -15 days prior to shipment*, it triggers an active component rearrangement to restore structural order timeline tracking.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_method": {"name": "shipping_method", "description": "The distribution courier tier option chosen (e.g., Standard Ground, Next-Day Air Express).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "sales_channel": {"name": "sales_channel", "description": "The touchpoint platform tracking where the purchase originated (e.g., Online Storefront, Mobile Application, Retail).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method": {"name": "payment_method", "description": "The financial tender type used to settle the transaction ledger.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Transactions/_int_transactions_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784602859.8029315, "relation_name": "\"RetailDB\".\"bronze\".\"int_transaction_fulfillment\"", "raw_code": "WITH transaction_fulfillment AS \n(\n SELECT \n transaction_id,\n\n {{ standardize_date('order_date') }} as order_date,\n {{ standardize_date('ship_date') }} as ship_date,\n {{ standardize_date('delivery_date') }} as delivery_date,\n order_month,\n\n CASE \n WHEN TRIM(LOWER(shipping_method)) IN ('pickup', 'in-store pickup') \n THEN 'Store Pickup'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('overnight', 'overnight shipping') \n THEN 'Overnight Shipping'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('same day', 'same day delivery') \n THEN 'Same Day Delivery'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('express', 'express shipping') \n THEN 'Express Shipping'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('standard', 'standard shipping') \n THEN 'Standard Shipping'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('free ship', 'free shipping') \n THEN 'Free Shipping'\n\n ELSE TRIM(shipping_method)\n END AS shipping_method,\n\n CASE \n WHEN TRIM(LOWER(sales_channel)) IN ('app', 'mobile', 'mobile app') \n THEN 'Mobile App'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('store', 'in store', 'in-store') \n THEN 'In Store'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('online', 'web') \n THEN 'Website'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('phone') \n THEN 'Phone Call'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('catalog') \n THEN 'Catalog'\n\n ELSE 'Unknown'\n END AS sales_channel,\n\n CASE TRIM(LOWER(payment_method))\n WHEN 'debit card' THEN 'Debit Card'\n WHEN 'credit card' THEN 'Credit Card'\n WHEN 'google pay' THEN 'Google Pay'\n WHEN 'apple pay' THEN 'Apple Pay'\n WHEN 'bank transfer' THEN 'Bank Transfer'\n WHEN 'buy now pay later' THEN 'Buy Now Pay Later'\n WHEN 'bnpl' THEN 'Buy Now Pay Later'\n WHEN 'gift card' THEN 'Gift Card'\n WHEN 'paypal' THEN 'PayPal'\n WHEN 'cash' THEN 'Cash'\n ELSE TRIM(payment_method)\n END AS payment_method,\n\n TRY_CONVERT(DATE, record_created_ts) as record_created,\n TRY_CONVERT(DATE, last_modified_ts ) as last_modified\n FROM {{ ref('stg_transactions') }} \n),\norder_date_cleaning AS \n(\n SELECT \n transaction_id,\n\n CASE \n WHEN order_month != MONTH(order_date) \n THEN DATEFROMPARTS(YEAR(order_date), DAY(order_date), MONTH(order_date))\n\n ELSE order_date\n END AS order_date,\n\n ship_date,\n delivery_date,\n\n shipping_method,\n sales_channel,\n payment_method,\n\n CASE \n WHEN record_created IS NULL \n OR record_created NOT LIKE '____-__-__' \n OR TRY_CONVERT(DATE, record_created) IS NULL \n OR YEAR(record_created) < 2019 \n THEN NULL \n\n ELSE record_created\n END as record_created,\n\n CASE \n WHEN last_modified IS NULL \n OR last_modified NOT LIKE '____-__-__' \n OR TRY_CONVERT(DATE, last_modified) IS NULL \n OR YEAR(last_modified) < 2019 \n THEN NULL \n\n ELSE last_modified\n END as last_modified\n\n FROM transaction_fulfillment \n),\nship_date_cleaning AS \n(\n SELECT\n transaction_id,\n order_date ,\n\n CASE\n WHEN DATEDIFF(DAY ,order_date, ship_date) < 0 \n THEN DATEFROMPARTS(YEAR(ship_date), DAY(ship_date), MONTH(ship_date))\n\n WHEN DATEDIFF(DAY ,order_date, ship_date) > 15 \n THEN DATEFROMPARTS(YEAR(ship_date), DAY(ship_date), MONTH(ship_date))\n\n WHEN ship_date IS NULL \n THEN DATEADD(DAY, 7, order_date)\n \n ELSE ship_date \n END as ship_date ,\n\n delivery_date,\n shipping_method,\n sales_channel,\n payment_method,\n record_created,\n last_modified\n FROM order_date_cleaning \n),\nint_transaction_fulfillment AS \n(\n SELECT \n transaction_id,\n order_date,\n ship_date,\n\n CASE \n WHEN DATEDIFF(DAY, ship_date , delivery_date) > 17 \n THEN DATEFROMPARTS(YEAR(delivery_date), DAY(delivery_date), MONTH(delivery_date))\n\n WHEN DATEDIFF(DAY, ship_date , delivery_date) < -15 \n THEN DATEFROMPARTS(YEAR(delivery_date), DAY(delivery_date), MONTH(delivery_date))\n\n ELSE delivery_date\n END as delivery_date,\n\n shipping_method,\n sales_channel,\n payment_method,\n record_created,\n last_modified\n FROM ship_date_cleaning \n)\nSELECT \n transaction_id,\n order_date,\n ship_date,\n delivery_date,\n shipping_method,\n sales_channel,\n payment_method,\n record_created,\n last_modified\nFROM int_transaction_fulfillment;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.standardize_date"], "nodes": ["model.dbt_analytics_engineering.stg_transactions"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_fulfillment.sql", "compiled": true, "compiled_code": "WITH transaction_fulfillment AS \n(\n SELECT \n transaction_id,\n\n \n\n\n CASE\n WHEN TRIM(order_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(order_date))\n\n WHEN TRIM(order_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(order_date))\n\n WHEN TRIM(order_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(order_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(order_date), 110)\n\n WHEN TRIM(order_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(order_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(order_date), 105)\n\n WHEN TRIM(order_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(order_date))\n\n WHEN TRIM(order_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(order_date))\n\n WHEN TRIM(order_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(order_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(order_date), 101)\n\n WHEN TRIM(order_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(order_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(order_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(order_date), 101)\n\n END\n\n as order_date,\n \n\n\n CASE\n WHEN TRIM(ship_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(ship_date))\n\n WHEN TRIM(ship_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(ship_date))\n\n WHEN TRIM(ship_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(ship_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(ship_date), 110)\n\n WHEN TRIM(ship_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(ship_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(ship_date), 105)\n\n WHEN TRIM(ship_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(ship_date))\n\n WHEN TRIM(ship_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(ship_date))\n\n WHEN TRIM(ship_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(ship_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(ship_date), 101)\n\n WHEN TRIM(ship_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(ship_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(ship_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(ship_date), 101)\n\n END\n\n as ship_date,\n \n\n\n CASE\n WHEN TRIM(delivery_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(delivery_date))\n\n WHEN TRIM(delivery_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(delivery_date))\n\n WHEN TRIM(delivery_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(delivery_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(delivery_date), 110)\n\n WHEN TRIM(delivery_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(delivery_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(delivery_date), 105)\n\n WHEN TRIM(delivery_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(delivery_date))\n\n WHEN TRIM(delivery_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(delivery_date))\n\n WHEN TRIM(delivery_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(delivery_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(delivery_date), 101)\n\n WHEN TRIM(delivery_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(delivery_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(delivery_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(delivery_date), 101)\n\n END\n\n as delivery_date,\n order_month,\n\n CASE \n WHEN TRIM(LOWER(shipping_method)) IN ('pickup', 'in-store pickup') \n THEN 'Store Pickup'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('overnight', 'overnight shipping') \n THEN 'Overnight Shipping'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('same day', 'same day delivery') \n THEN 'Same Day Delivery'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('express', 'express shipping') \n THEN 'Express Shipping'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('standard', 'standard shipping') \n THEN 'Standard Shipping'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('free ship', 'free shipping') \n THEN 'Free Shipping'\n\n ELSE TRIM(shipping_method)\n END AS shipping_method,\n\n CASE \n WHEN TRIM(LOWER(sales_channel)) IN ('app', 'mobile', 'mobile app') \n THEN 'Mobile App'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('store', 'in store', 'in-store') \n THEN 'In Store'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('online', 'web') \n THEN 'Website'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('phone') \n THEN 'Phone Call'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('catalog') \n THEN 'Catalog'\n\n ELSE 'Unknown'\n END AS sales_channel,\n\n CASE TRIM(LOWER(payment_method))\n WHEN 'debit card' THEN 'Debit Card'\n WHEN 'credit card' THEN 'Credit Card'\n WHEN 'google pay' THEN 'Google Pay'\n WHEN 'apple pay' THEN 'Apple Pay'\n WHEN 'bank transfer' THEN 'Bank Transfer'\n WHEN 'buy now pay later' THEN 'Buy Now Pay Later'\n WHEN 'bnpl' THEN 'Buy Now Pay Later'\n WHEN 'gift card' THEN 'Gift Card'\n WHEN 'paypal' THEN 'PayPal'\n WHEN 'cash' THEN 'Cash'\n ELSE TRIM(payment_method)\n END AS payment_method,\n\n TRY_CONVERT(DATE, record_created_ts) as record_created,\n TRY_CONVERT(DATE, last_modified_ts ) as last_modified\n FROM \"RetailDB\".\"bronze\".\"stg_transactions\" \n),\norder_date_cleaning AS \n(\n SELECT \n transaction_id,\n\n CASE \n WHEN order_month != MONTH(order_date) \n THEN DATEFROMPARTS(YEAR(order_date), DAY(order_date), MONTH(order_date))\n\n ELSE order_date\n END AS order_date,\n\n ship_date,\n delivery_date,\n\n shipping_method,\n sales_channel,\n payment_method,\n\n CASE \n WHEN record_created IS NULL \n OR record_created NOT LIKE '____-__-__' \n OR TRY_CONVERT(DATE, record_created) IS NULL \n OR YEAR(record_created) < 2019 \n THEN NULL \n\n ELSE record_created\n END as record_created,\n\n CASE \n WHEN last_modified IS NULL \n OR last_modified NOT LIKE '____-__-__' \n OR TRY_CONVERT(DATE, last_modified) IS NULL \n OR YEAR(last_modified) < 2019 \n THEN NULL \n\n ELSE last_modified\n END as last_modified\n\n FROM transaction_fulfillment \n),\nship_date_cleaning AS \n(\n SELECT\n transaction_id,\n order_date ,\n\n CASE\n WHEN DATEDIFF(DAY ,order_date, ship_date) < 0 \n THEN DATEFROMPARTS(YEAR(ship_date), DAY(ship_date), MONTH(ship_date))\n\n WHEN DATEDIFF(DAY ,order_date, ship_date) > 15 \n THEN DATEFROMPARTS(YEAR(ship_date), DAY(ship_date), MONTH(ship_date))\n\n WHEN ship_date IS NULL \n THEN DATEADD(DAY, 7, order_date)\n \n ELSE ship_date \n END as ship_date ,\n\n delivery_date,\n shipping_method,\n sales_channel,\n payment_method,\n record_created,\n last_modified\n FROM order_date_cleaning \n),\nint_transaction_fulfillment AS \n(\n SELECT \n transaction_id,\n order_date,\n ship_date,\n\n CASE \n WHEN DATEDIFF(DAY, ship_date , delivery_date) > 17 \n THEN DATEFROMPARTS(YEAR(delivery_date), DAY(delivery_date), MONTH(delivery_date))\n\n WHEN DATEDIFF(DAY, ship_date , delivery_date) < -15 \n THEN DATEFROMPARTS(YEAR(delivery_date), DAY(delivery_date), MONTH(delivery_date))\n\n ELSE delivery_date\n END as delivery_date,\n\n shipping_method,\n sales_channel,\n payment_method,\n record_created,\n last_modified\n FROM ship_date_cleaning \n)\nSELECT \n transaction_id,\n order_date,\n ship_date,\n delivery_date,\n shipping_method,\n sales_channel,\n payment_method,\n record_created,\n last_modified\nFROM int_transaction_fulfillment;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["transaction_id"], "time_spine": null}, "model.dbt_analytics_engineering.int_customer_segmentation": {"database": "RetailDB", "schema": "bronze", "name": "int_customer_segmentation", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Customers/int_customer_segmentation.sql", "original_file_path": "models/intermediate/Customers/int_customer_segmentation.sql", "unique_id": "model.dbt_analytics_engineering.int_customer_segmentation", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "int_customer_segmentation"], "alias": "int_customer_segmentation", "checksum": {"name": "sha256", "checksum": "f5bd7819556c1d5ee7293d5a5a3b460e7a5f53d717d48953287fdf4d163f71a0"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Creates a trusted customer segmentation dataset by resolving inconsistencies\nacross customer profile attributes and standardizing business-critical\nsegmentation fields. The model normalizes customer segments and account\nstatus values, cleans organization names, converts account creation dates\ninto a consistent DATE data type, and enriches missing annual income values\nusing the median income of customers within the same segment. The resulting\ndataset provides reliable customer attributes for segmentation, customer\nanalytics, marketing, loyalty reporting, and downstream dimensional models.\n", "columns": {"customer_segment": {"name": "customer_segment", "description": "Business-defined customer segment used to classify customers based on their\nrelationship value. Missing or blank values are assigned to 'Unknown' to\nmaintain consistent segmentation and prevent null categories in downstream\nanalytical models.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "loyalty_points": {"name": "loyalty_points", "description": "Customer loyalty points converted to an integer data type. Invalid or\nnon-numeric values are returned as NULL to preserve data quality while\npreventing incorrect numerical calculations.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "annual_income_usd": {"name": "annual_income_usd", "description": "Customer annual income expressed in USD. Missing values are imputed using\nthe median annual income of customers within the same customer segment,\nreducing the impact of missing data while preserving segment-level income\ndistributions.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company": {"name": "company", "description": "Standardized company. Leading and trailing whitespace, carriage returns,\nand line feed characters are removed to eliminate formatting inconsistencies.\nMissing or empty values are replaced with 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_active": {"name": "is_active", "description": "Standardized customer account status derived from multiple source\nrepresentations. Boolean values, textual statuses, and abbreviated values\nare normalized into the business-friendly categories 'True', 'False', and\n'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "account_created_date": {"name": "account_created_date", "description": "Customer account creation date converted into a standardized DATE data type.\nSupports multiple source date formats while resolving regional date format\ninconsistencies. Invalid or unrecognized values are returned as NULL to\npreserve temporal data quality.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Customers/_int__customers_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784602859.4491618, "relation_name": "\"RetailDB\".\"bronze\".\"int_customer_segmentation\"", "raw_code": "-- ============================================================================\n-- Model: int_customer_segmentation\n--\n-- Purpose:\n-- Creates a standardized customer segmentation dataset by applying business\n-- rules to customer profile and account attributes. This model normalizes\n-- customer segments, imputes missing annual income using segment-level\n-- median values, standardizes company names and account status values, and\n-- converts inconsistent account creation dates into a reliable DATE format.\n-- The resulting dataset serves as a trusted foundation for customer\n-- segmentation, loyalty analysis, marketing analytics, and dimensional\n-- modeling.\n--\n-- Maintainer: Ritik\n-- ============================================================================\nSELECT\n customer_id,\n CASE \n WHEN customer_segment IS NULL OR customer_segment = '' \n THEN 'Unknown' \n\n ELSE customer_segment\n END as customer_segment, \n\n TRY_CAST(loyalty_points AS INT) as loyalty_points,\n\n COALESCE(\n annual_income_usd,\n PERCENTILE_CONT(0.5)\n WITHIN GROUP (ORDER BY annual_income_usd)\n OVER (PARTITION BY customer_segment)\n ) as annual_income_usd,\n\n CASE \n WHEN company IS NULL OR company = '' \n THEN 'Unknown'\n\n WHEN TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), '')) = '' \n THEN 'Unknown'\n\n ELSE TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), ''))\n END as company,\n\n CASE \n WHEN {{ trim_lower('is_active') }} IN ('1', 'active', 'true', 'y', 'yes') \n THEN 'True'\n\n WHEN {{ trim_lower('is_active') }} IN ('0', 'inactive', 'false', 'n', 'no') \n THEN 'False'\n\n ELSE 'Unknown'\n END AS is_active,\n\n {{ standardize_date('account_created_date') }} as account_created_date\n\nFROM {{ ref('stg_customers') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_customers", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.trim_lower", "macro.dbt_analytics_engineering.standardize_date"], "nodes": ["model.dbt_analytics_engineering.stg_customers"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_segmentation.sql", "compiled": true, "compiled_code": "-- ============================================================================\n-- Model: int_customer_segmentation\n--\n-- Purpose:\n-- Creates a standardized customer segmentation dataset by applying business\n-- rules to customer profile and account attributes. This model normalizes\n-- customer segments, imputes missing annual income using segment-level\n-- median values, standardizes company names and account status values, and\n-- converts inconsistent account creation dates into a reliable DATE format.\n-- The resulting dataset serves as a trusted foundation for customer\n-- segmentation, loyalty analysis, marketing analytics, and dimensional\n-- modeling.\n--\n-- Maintainer: Ritik\n-- ============================================================================\nSELECT\n customer_id,\n CASE \n WHEN customer_segment IS NULL OR customer_segment = '' \n THEN 'Unknown' \n\n ELSE customer_segment\n END as customer_segment, \n\n TRY_CAST(loyalty_points AS INT) as loyalty_points,\n\n COALESCE(\n annual_income_usd,\n PERCENTILE_CONT(0.5)\n WITHIN GROUP (ORDER BY annual_income_usd)\n OVER (PARTITION BY customer_segment)\n ) as annual_income_usd,\n\n CASE \n WHEN company IS NULL OR company = '' \n THEN 'Unknown'\n\n WHEN TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), '')) = '' \n THEN 'Unknown'\n\n ELSE TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), ''))\n END as company,\n\n CASE \n WHEN \n LOWER(TRIM(is_active))\n IN ('1', 'active', 'true', 'y', 'yes') \n THEN 'True'\n\n WHEN \n LOWER(TRIM(is_active))\n IN ('0', 'inactive', 'false', 'n', 'no') \n THEN 'False'\n\n ELSE 'Unknown'\n END AS is_active,\n\n \n\n\n CASE\n WHEN TRIM(account_created_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(account_created_date))\n\n WHEN TRIM(account_created_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(account_created_date))\n\n WHEN TRIM(account_created_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(account_created_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(account_created_date), 110)\n\n WHEN TRIM(account_created_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(account_created_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(account_created_date), 105)\n\n WHEN TRIM(account_created_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(account_created_date))\n\n WHEN TRIM(account_created_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(account_created_date))\n\n WHEN TRIM(account_created_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(account_created_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(account_created_date), 101)\n\n WHEN TRIM(account_created_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(account_created_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(account_created_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(account_created_date), 101)\n\n END\n\n as account_created_date\n\nFROM \"RetailDB\".\"bronze\".\"stg_customers\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.dbt_analytics_engineering.int_transaction_financial": {"database": "RetailDB", "schema": "bronze", "name": "int_transaction_financial", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Transactions/int_transaction_financial.sql", "original_file_path": "models/intermediate/Transactions/int_transaction_financial.sql", "unique_id": "model.dbt_analytics_engineering.int_transaction_financial", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "int_transaction_financial"], "alias": "int_transaction_financial", "checksum": {"name": "sha256", "checksum": "f3596262cdf91bcc59b3190c1ade3c95e259efd7e303407fc0e825c181111d7c"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "**Layer:** Silver / Intermediate (Financial Analytics Dimension)\n**Core Objective:** Cleanses, standardizes, and calculates itemized financial metrics at the basket line item level.\n**Engineering Strategy:** Implements an automated data quality firewall to sanitize text-polluted currency strings \nand protect downstream revenue dashboards from corrupt outliers. It shields metrics from calculation errors by \napplying a strict business rule bounding matrix. If an upstream element breaches logical rules or contains un-castable \ntext artifacts, the engine performs a defensive coercion to `NULL` to keep the production processing pipeline alive.\n", "columns": {"transaction_id": {"name": "transaction_id", "description": "Primary key uniquely identifying the internal item line ledger record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "quantity_ordered": {"name": "quantity_ordered", "description": "The volume of physical units committed to the purchase line item.\n**Business Logic & SQL Mechanics:** Restricts metrics to a realistic business scale using an explicit \nboundary conditional (`CASE WHEN quantity_ordered < 1 THEN NULL WHEN quantity_ordered > 30 THEN NULL ...`). \nOutliers are coerced to `NULL` to protect downstream calculations like Average Unit Retail (AUR).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_list_price": {"name": "unit_list_price", "description": "The item sticker base MSRP.\n**Business Logic & SQL Mechanics:** Upstream ERP formats include strings with raw currency glyphs \nand formatting punctuation. The SQL engine strips characters via nested string manipulations \n(`REPLACE(REPLACE(unit_list_price, '$', ''), ',', '')`) before executing a high-precision `TRY_CONVERT(DECIMAL(10,2), ...)` operation.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "discount_pct": {"name": "discount_pct", "description": "The authorized marketing markdown percentage applied to the item line.\n**Business Logic & SQL Mechanics:** Uses a guardrail condition to force entries between 0% and 100%. \nCorrupted negatives or values over 100% resolve to `NULL`, while valid decimals are truncated via `ROUND(discount_pct, 0)`.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "line_total_before_tax": {"name": "line_total_before_tax", "description": "Net transaction subtotal prior to government tax evaluation.\n**Business Logic & SQL Mechanics:** Sanitizes values by stripping currency text formatting, casting to `DECIMAL(10,2)`, \nand explicitly coercing impossible negative calculations (`< 0`) to `NULL`.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "tax_rate_pct": {"name": "tax_rate_pct", "description": "The registered state or regional tax percentage category.\n**Business Logic & SQL Mechanics:** Evaluated into a rounded `INT` structure. Standardized strictly between a \n0% minimum and 100% maximum scale to eliminate calculation errors.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "tax_amount": {"name": "tax_amount", "description": "The total absolute tax currency value applied to the ledger row. Stripped of structural text noise (`$`, `,`) and cast to `DECIMAL(10,2)`.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "line_total_with_tax": {"name": "line_total_with_tax", "description": "The final aggregate financial customer liability for the row line item.\n**Business Logic & SQL Mechanics:** Sanitized of currency characters and cast to a clean `DECIMAL(10,2)`. It includes a built-in business check: \nif the aggregate calculates below 0, it indicates data corruption and resolves to `NULL`.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Transactions/_int_transactions_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784602859.808481, "relation_name": "\"RetailDB\".\"bronze\".\"int_transaction_financial\"", "raw_code": "WITH int_transaction_financial AS \n(\nSELECT \n transaction_id,\n\n CASE \n WHEN quantity_ordered < 1 \n THEN NULL \n\n WHEN quantity_ordered > 30 \n THEN NULL\n\n ELSE quantity_ordered\n END as quantity_ordered ,\n\n CASE \n WHEN unit_list_price IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(unit_list_price, '$', ''), ',', '')) \n END as unit_list_price,\n\n CASE \n WHEN discount_pct IS NULL OR discount_pct < 0 OR discount_pct > 100 \n THEN NULL \n\n ELSE ROUND(discount_pct, 0)\n END as discount_pct,\n\n CASE \n WHEN line_total_before_tax IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_before_tax, '$', ''), ',', '')) < 0 \n THEN NULL\n\n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_before_tax, '$', ''), ',', ''))\n END as line_total_before_tax,\n\n CASE \n WHEN tax_rate_pct IS NULL OR TRY_CONVERT(INT, ROUND(tax_rate_pct, 0)) < 0 OR TRY_CONVERT(INT, ROUND(tax_rate_pct, 0)) > 100 THEN NULL \n ELSE TRY_CONVERT(INT, ROUND(tax_rate_pct, 0))\n END as tax_rate_pct,\n\n CASE \n WHEN tax_amount IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(tax_amount, '$', ''), ',', '')) < 0 \n THEN NULL \n\n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(tax_amount, '$', ''), ',', ''))\n END as tax_amount,\n\n CASE \n WHEN line_total_with_tax IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_with_tax, '$', ''), ',', '')) < 0 \n THEN NULL \n \n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_with_tax, '$', ''), ',', ''))\n END as line_total_with_tax\nFROM {{ ref('stg_transactions') }} \n)\nSELECT\n transaction_id,\n quantity_ordered,\n unit_list_price,\n discount_pct,\n ROUND(unit_list_price * (1 - discount_pct/100), 2) as unit_selling_price,\n ROUND(quantity_ordered * ROUND(unit_list_price * (1 - discount_pct/100.0), 2),2) AS line_total_before_tax,\n tax_rate_pct,\n tax_amount,\n ROUND(quantity_ordered * ROUND(unit_list_price * (1 - discount_pct/100.0), 2),2) + tax_amount AS line_total_with_tax\nFROM int_transaction_financial ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.stg_transactions"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_financial.sql", "compiled": true, "compiled_code": "WITH int_transaction_financial AS \n(\nSELECT \n transaction_id,\n\n CASE \n WHEN quantity_ordered < 1 \n THEN NULL \n\n WHEN quantity_ordered > 30 \n THEN NULL\n\n ELSE quantity_ordered\n END as quantity_ordered ,\n\n CASE \n WHEN unit_list_price IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(unit_list_price, '$', ''), ',', '')) \n END as unit_list_price,\n\n CASE \n WHEN discount_pct IS NULL OR discount_pct < 0 OR discount_pct > 100 \n THEN NULL \n\n ELSE ROUND(discount_pct, 0)\n END as discount_pct,\n\n CASE \n WHEN line_total_before_tax IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_before_tax, '$', ''), ',', '')) < 0 \n THEN NULL\n\n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_before_tax, '$', ''), ',', ''))\n END as line_total_before_tax,\n\n CASE \n WHEN tax_rate_pct IS NULL OR TRY_CONVERT(INT, ROUND(tax_rate_pct, 0)) < 0 OR TRY_CONVERT(INT, ROUND(tax_rate_pct, 0)) > 100 THEN NULL \n ELSE TRY_CONVERT(INT, ROUND(tax_rate_pct, 0))\n END as tax_rate_pct,\n\n CASE \n WHEN tax_amount IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(tax_amount, '$', ''), ',', '')) < 0 \n THEN NULL \n\n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(tax_amount, '$', ''), ',', ''))\n END as tax_amount,\n\n CASE \n WHEN line_total_with_tax IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_with_tax, '$', ''), ',', '')) < 0 \n THEN NULL \n \n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_with_tax, '$', ''), ',', ''))\n END as line_total_with_tax\nFROM \"RetailDB\".\"bronze\".\"stg_transactions\" \n)\nSELECT\n transaction_id,\n quantity_ordered,\n unit_list_price,\n discount_pct,\n ROUND(unit_list_price * (1 - discount_pct/100), 2) as unit_selling_price,\n ROUND(quantity_ordered * ROUND(unit_list_price * (1 - discount_pct/100.0), 2),2) AS line_total_before_tax,\n tax_rate_pct,\n tax_amount,\n ROUND(quantity_ordered * ROUND(unit_list_price * (1 - discount_pct/100.0), 2),2) + tax_amount AS line_total_with_tax\nFROM int_transaction_financial ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["transaction_id"], "time_spine": null}, "model.dbt_analytics_engineering.int_customer_location": {"database": "RetailDB", "schema": "bronze", "name": "int_customer_location", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Customers/int_customer_location.sql", "original_file_path": "models/intermediate/Customers/int_customer_location.sql", "unique_id": "model.dbt_analytics_engineering.int_customer_location", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "int_customer_location"], "alias": "int_customer_location", "checksum": {"name": "sha256", "checksum": "c488e5700c5d961100f6ae7a3595b750fbc7d47a5216dd885be8e409b162785b"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Creates a trusted customer location dataset by improving the quality and\nconsistency of customer geographic information. The model standardizes\naddresses, corrects common city name spelling errors, validates state\ninformation and ZIP codes, normalizes country values, and replaces missing\ngeographic attributes with business-defined defaults. The resulting dataset\nsupports customer segmentation, geographic analysis, regional reporting,\nterritory management, and downstream dimensional models.\n", "columns": {"address": {"name": "address", "description": "Customer street address standardized by trimming whitespace and converting\ntext into Title Case. Missing or blank addresses are replaced with\n'Unknown' to maintain consistent address records across customer data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "city": {"name": "city", "description": "Customer city name standardized by correcting common spelling mistakes,\nremoving unnecessary whitespace, and converting values into Title Case.\nMissing or blank values are assigned to 'Unknown' to maintain consistent\ngeographic reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "state_abbr": {"name": "state_abbr", "description": "Standardized two-character state abbreviation. Values that are missing,\nblank, or do not conform to the expected two-letter format are replaced\nwith 'Unknown' to improve geographic data consistency.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "state": {"name": "state", "description": "Customer state or province name after whitespace normalization. Missing\nor blank values are replaced with 'Unknown' to ensure complete geographic\nattributes for downstream analysis.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "zip_code": {"name": "zip_code", "description": "Customer ZIP code validated against the expected five-digit numeric\nformat. Invalid, non-numeric, or incomplete ZIP codes are replaced with\n0 to clearly identify records containing invalid postal information.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "country": {"name": "country", "description": "Standardized customer country name. Multiple representations of the\nUnited States are consolidated into the business-standard value\n'United States', while unrecognized or unsupported values are assigned\nto 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "region": {"name": "region", "description": "Business-defined geographic region associated with the customer.\nMissing or blank values are replaced with 'Unknown' to support\nconsistent regional reporting and market analysis.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Customers/_int__customers_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784602859.454438, "relation_name": "\"RetailDB\".\"bronze\".\"int_customer_location\"", "raw_code": "-- ============================================================================\n-- Model: int_customer_location\n--\n-- Purpose:\n-- Creates a trusted customer location dataset by standardizing geographic\n-- attributes and resolving common data quality issues across customer\n-- addresses. This model corrects city name spelling errors, normalizes\n-- address formatting, validates state and ZIP code information, and\n-- standardizes country values into business-defined categories. The\n-- resulting dataset provides reliable geographic attributes for customer\n-- segmentation, regional reporting, sales analysis, and downstream\n-- dimensional models.\n--\n-- Maintainer: Ritik\n-- ============================================================================\n\n-- dbt.TitleCase is a custom function taht help me to convert string into title case \nSELECT \n customer_id,\n\n CASE \n WHEN address IS NULL OR address = '' \n THEN 'Unknown'\n\n ELSE TRIM(dbo.TitleCase(address))\n END as address,\n\n CASE \n WHEN TRIM(LOWER(city)) = 'an diego' THEN dbo.TitleCase('san diego')\n WHEN TRIM(LOWER(city)) = 'chiago' THEN dbo.TitleCase('chicago')\n WHEN TRIM(LOWER(city)) = 'chrlotte' THEN dbo.TitleCase('charlotte')\n WHEN TRIM(LOWER(city)) = 'dalla' THEN dbo.TitleCase('dallas')\n WHEN TRIM(LOWER(city)) = 'inneapolis' THEN dbo.TitleCase('minneapolis')\n WHEN TRIM(LOWER(city)) = 'louiville' THEN dbo.TitleCase('louisville')\n WHEN TRIM(LOWER(city)) = 'milwakee' THEN dbo.TitleCase('milwaukee')\n WHEN TRIM(LOWER(city)) = 'mnneapolis' THEN dbo.TitleCase('minneapolis')\n WHEN TRIM(LOWER(city)) = 'oklahoma cty' THEN dbo.TitleCase('oklahoma city')\n WHEN TRIM(LOWER(city)) = 'ortland' THEN dbo.TitleCase('portland')\n WHEN TRIM(LOWER(city)) = 'sa diego' THEN dbo.TitleCase('san diego')\n WHEN TRIM(LOWER(city)) = 'san ntonio' THEN dbo.TitleCase('san antonio')\n WHEN TRIM(LOWER(city)) = 'sn antonio' THEN dbo.TitleCase('san antonio')\n WHEN TRIM(city) = '' THEN 'Unknown'\n WHEN city IS NULL THEN 'Unknown'\n ELSE dbo.TitleCase(TRIM(city))\n END AS city,\n \n CASE \n WHEN TRIM(UPPER(state_abbr)) IS NULL OR TRIM(UPPER(state_abbr)) = '' \n THEN 'Unknown'\n\n WHEN LEN(TRIM(UPPER(state_abbr))) != 2 \n THEN 'Unknown'\n \n ELSE TRIM(UPPER(state_abbr))\n END as state_abbr,\n\n CASE\n WHEN TRIM(state_full) IS NULL OR TRIM(state_full) = '' \n THEN 'Unknown'\n\n ELSE TRIM(state_full)\n END AS state,\n\n CASE \n WHEN zip_code IS NULL \n THEN 0\n \n WHEN LEN(zip_code) != 5 \n THEN 0\n\n WHEN TRY_CAST(zip_code AS INT) IS NULL \n THEN 0\n\n ELSE zip_code\n END as zip_code,\n\n CASE \n WHEN {{ trim_lower('country') }} IN ('u.s.a', 'us', 'usa', 'united states') \n THEN 'United States'\n\n ELSE 'Unknown'\n END as country,\n\n CASE \n WHEN region IS NULL OR TRIM(region) = '' \n THEN 'Unknown'\n\n ELSE TRIM(region)\n END as region\nFROM {{ ref('stg_customers') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_customers", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.trim_lower"], "nodes": ["model.dbt_analytics_engineering.stg_customers"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customer_location.sql", "compiled": true, "compiled_code": "-- ============================================================================\n-- Model: int_customer_location\n--\n-- Purpose:\n-- Creates a trusted customer location dataset by standardizing geographic\n-- attributes and resolving common data quality issues across customer\n-- addresses. This model corrects city name spelling errors, normalizes\n-- address formatting, validates state and ZIP code information, and\n-- standardizes country values into business-defined categories. The\n-- resulting dataset provides reliable geographic attributes for customer\n-- segmentation, regional reporting, sales analysis, and downstream\n-- dimensional models.\n--\n-- Maintainer: Ritik\n-- ============================================================================\n\n-- dbt.TitleCase is a custom function taht help me to convert string into title case \nSELECT \n customer_id,\n\n CASE \n WHEN address IS NULL OR address = '' \n THEN 'Unknown'\n\n ELSE TRIM(dbo.TitleCase(address))\n END as address,\n\n CASE \n WHEN TRIM(LOWER(city)) = 'an diego' THEN dbo.TitleCase('san diego')\n WHEN TRIM(LOWER(city)) = 'chiago' THEN dbo.TitleCase('chicago')\n WHEN TRIM(LOWER(city)) = 'chrlotte' THEN dbo.TitleCase('charlotte')\n WHEN TRIM(LOWER(city)) = 'dalla' THEN dbo.TitleCase('dallas')\n WHEN TRIM(LOWER(city)) = 'inneapolis' THEN dbo.TitleCase('minneapolis')\n WHEN TRIM(LOWER(city)) = 'louiville' THEN dbo.TitleCase('louisville')\n WHEN TRIM(LOWER(city)) = 'milwakee' THEN dbo.TitleCase('milwaukee')\n WHEN TRIM(LOWER(city)) = 'mnneapolis' THEN dbo.TitleCase('minneapolis')\n WHEN TRIM(LOWER(city)) = 'oklahoma cty' THEN dbo.TitleCase('oklahoma city')\n WHEN TRIM(LOWER(city)) = 'ortland' THEN dbo.TitleCase('portland')\n WHEN TRIM(LOWER(city)) = 'sa diego' THEN dbo.TitleCase('san diego')\n WHEN TRIM(LOWER(city)) = 'san ntonio' THEN dbo.TitleCase('san antonio')\n WHEN TRIM(LOWER(city)) = 'sn antonio' THEN dbo.TitleCase('san antonio')\n WHEN TRIM(city) = '' THEN 'Unknown'\n WHEN city IS NULL THEN 'Unknown'\n ELSE dbo.TitleCase(TRIM(city))\n END AS city,\n \n CASE \n WHEN TRIM(UPPER(state_abbr)) IS NULL OR TRIM(UPPER(state_abbr)) = '' \n THEN 'Unknown'\n\n WHEN LEN(TRIM(UPPER(state_abbr))) != 2 \n THEN 'Unknown'\n \n ELSE TRIM(UPPER(state_abbr))\n END as state_abbr,\n\n CASE\n WHEN TRIM(state_full) IS NULL OR TRIM(state_full) = '' \n THEN 'Unknown'\n\n ELSE TRIM(state_full)\n END AS state,\n\n CASE \n WHEN zip_code IS NULL \n THEN 0\n \n WHEN LEN(zip_code) != 5 \n THEN 0\n\n WHEN TRY_CAST(zip_code AS INT) IS NULL \n THEN 0\n\n ELSE zip_code\n END as zip_code,\n\n CASE \n WHEN \n LOWER(TRIM(country))\n IN ('u.s.a', 'us', 'usa', 'united states') \n THEN 'United States'\n\n ELSE 'Unknown'\n END as country,\n\n CASE \n WHEN region IS NULL OR TRIM(region) = '' \n THEN 'Unknown'\n\n ELSE TRIM(region)\n END as region\nFROM \"RetailDB\".\"bronze\".\"stg_customers\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "test.dbt_analytics_engineering.not_null_int_customer_profile_first_name.601ca24c11": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_profile_first_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_profile_first_name.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_profile_first_name.601ca24c11", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_profile_first_name"], "alias": "not_null_int_customer_profile_first_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.668796, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_first_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect first_name\nfrom \"RetailDB\".\"bronze\".\"int_customer_profile\"\nwhere first_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "first_name", "file_key_name": "models.int_customer_profile", "attached_node": "model.dbt_analytics_engineering.int_customer_profile", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "first_name", "model": "{{ get_where_subquery(ref('int_customer_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_profile_last_name.406eccd58c": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_profile_last_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_profile_last_name.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_profile_last_name.406eccd58c", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_profile_last_name"], "alias": "not_null_int_customer_profile_last_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.6726632, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_last_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect last_name\nfrom \"RetailDB\".\"bronze\".\"int_customer_profile\"\nwhere last_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "last_name", "file_key_name": "models.int_customer_profile", "attached_node": "model.dbt_analytics_engineering.int_customer_profile", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "last_name", "model": "{{ get_where_subquery(ref('int_customer_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_profile_gender.f510f79209": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_profile_gender", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_profile_gender.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_profile_gender.f510f79209", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_profile_gender"], "alias": "not_null_int_customer_profile_gender", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.6760187, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_gender.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect gender\nfrom \"RetailDB\".\"bronze\".\"int_customer_profile\"\nwhere gender is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "gender", "file_key_name": "models.int_customer_profile", "attached_node": "model.dbt_analytics_engineering.int_customer_profile", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "gender", "model": "{{ get_where_subquery(ref('int_customer_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_customer_profile_gender__Male__Female__Non_Binary__Other__Unknown.68b6d3ed48": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_customer_profile_gender__Male__Female__Non_Binary__Other__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customer_profile_gender__Male__Female__Non_Binary__Other__Unknown.68b6d3ed48", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "accepted_values_int_customer_profile_gender__Male__Female__Non_Binary__Other__Unknown"], "alias": "accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977"}, "created_at": 1784602859.6794112, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_profile", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_profile"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n gender as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customer_profile\"\n group by gender\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Male','Female','Non-Binary','Other','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "gender", "file_key_name": "models.int_customer_profile", "attached_node": "model.dbt_analytics_engineering.int_customer_profile", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "gender", "values": ["Male", "Female", "Non-Binary", "Other", "Unknown"], "model": "{{ get_where_subquery(ref('int_customer_profile')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_segmentation_customer_segment.491592cc63": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_segmentation_customer_segment", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_segmentation_customer_segment.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_segmentation_customer_segment.491592cc63", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_segmentation_customer_segment"], "alias": "not_null_int_customer_segmentation_customer_segment", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.7257884, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_segmentation", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_segmentation"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_customer_segment.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_segment\nfrom \"RetailDB\".\"bronze\".\"int_customer_segmentation\"\nwhere customer_segment is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "customer_segment", "file_key_name": "models.int_customer_segmentation", "attached_node": "model.dbt_analytics_engineering.int_customer_segmentation", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_segment", "model": "{{ get_where_subquery(ref('int_customer_segmentation')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_customer_segment__Bronze__Silver__Gold__Platinum__Unknown.08c611db09": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_customer_segmentation_customer_segment__Bronze__Silver__Gold__Platinum__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_customer_segment__Bronze__Silver__Gold__Platinum__Unknown.08c611db09", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "accepted_values_int_customer_segmentation_customer_segment__Bronze__Silver__Gold__Platinum__Unknown"], "alias": "accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7"}, "created_at": 1784602859.7295082, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_segmentation", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_segmentation"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n customer_segment as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customer_segmentation\"\n group by customer_segment\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Bronze','Silver','Gold','Platinum','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "customer_segment", "file_key_name": "models.int_customer_segmentation", "attached_node": "model.dbt_analytics_engineering.int_customer_segmentation", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "customer_segment", "values": ["Bronze", "Silver", "Gold", "Platinum", "Unknown"], "model": "{{ get_where_subquery(ref('int_customer_segmentation')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_segmentation_company.828a751ca9": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_segmentation_company", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_segmentation_company.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_segmentation_company.828a751ca9", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_segmentation_company"], "alias": "not_null_int_customer_segmentation_company", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.7404313, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_segmentation", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_segmentation"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_company.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect company\nfrom \"RetailDB\".\"bronze\".\"int_customer_segmentation\"\nwhere company is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "company", "file_key_name": "models.int_customer_segmentation", "attached_node": "model.dbt_analytics_engineering.int_customer_segmentation", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "company", "model": "{{ get_where_subquery(ref('int_customer_segmentation')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_segmentation_is_active.6eae5bb04d": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_segmentation_is_active", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_segmentation_is_active.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_segmentation_is_active.6eae5bb04d", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_segmentation_is_active"], "alias": "not_null_int_customer_segmentation_is_active", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.743426, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_segmentation", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_segmentation"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_is_active.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect is_active\nfrom \"RetailDB\".\"bronze\".\"int_customer_segmentation\"\nwhere is_active is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "is_active", "file_key_name": "models.int_customer_segmentation", "attached_node": "model.dbt_analytics_engineering.int_customer_segmentation", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "is_active", "model": "{{ get_where_subquery(ref('int_customer_segmentation')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_is_active__True__False__Unknown.a740e8b8b9": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_customer_segmentation_is_active__True__False__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_is_active__True__False__Unknown.a740e8b8b9", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "accepted_values_int_customer_segmentation_is_active__True__False__Unknown"], "alias": "accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04"}, "created_at": 1784602859.7463944, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_segmentation", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_segmentation"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_active as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customer_segmentation\"\n group by is_active\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "is_active", "file_key_name": "models.int_customer_segmentation", "attached_node": "model.dbt_analytics_engineering.int_customer_segmentation", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "is_active", "values": ["True", "False", "Unknown"], "model": "{{ get_where_subquery(ref('int_customer_segmentation')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_location_address.0477470aa5": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_location_address", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_location_address.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_address.0477470aa5", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_location_address"], "alias": "not_null_int_customer_location_address", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.7558365, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_address.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect address\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere address is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "address", "file_key_name": "models.int_customer_location", "attached_node": "model.dbt_analytics_engineering.int_customer_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "address", "model": "{{ get_where_subquery(ref('int_customer_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_location_city.8e1a6a4cee": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_location_city", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_location_city.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_city.8e1a6a4cee", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_location_city"], "alias": "not_null_int_customer_location_city", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.7588809, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_city.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect city\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere city is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "city", "file_key_name": "models.int_customer_location", "attached_node": "model.dbt_analytics_engineering.int_customer_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "city", "model": "{{ get_where_subquery(ref('int_customer_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_location_state_abbr.15ac178793": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_location_state_abbr", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_location_state_abbr.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_state_abbr.15ac178793", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_location_state_abbr"], "alias": "not_null_int_customer_location_state_abbr", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.761803, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state_abbr.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect state_abbr\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere state_abbr is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "state_abbr", "file_key_name": "models.int_customer_location", "attached_node": "model.dbt_analytics_engineering.int_customer_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "state_abbr", "model": "{{ get_where_subquery(ref('int_customer_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_location_state.f7b75af023": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_location_state", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_location_state.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_state.f7b75af023", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_location_state"], "alias": "not_null_int_customer_location_state", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.765162, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect state\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere state is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "state", "file_key_name": "models.int_customer_location", "attached_node": "model.dbt_analytics_engineering.int_customer_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "state", "model": "{{ get_where_subquery(ref('int_customer_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_location_zip_code.a7263a9e3a": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_location_zip_code", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_location_zip_code.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_zip_code.a7263a9e3a", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_location_zip_code"], "alias": "not_null_int_customer_location_zip_code", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.7682078, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_zip_code.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect zip_code\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere zip_code is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "zip_code", "file_key_name": "models.int_customer_location", "attached_node": "model.dbt_analytics_engineering.int_customer_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "zip_code", "model": "{{ get_where_subquery(ref('int_customer_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_location_country.39087bf4f2": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_location_country", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_location_country.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_country.39087bf4f2", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_location_country"], "alias": "not_null_int_customer_location_country", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.7710528, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_country.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect country\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere country is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "country", "file_key_name": "models.int_customer_location", "attached_node": "model.dbt_analytics_engineering.int_customer_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "country", "model": "{{ get_where_subquery(ref('int_customer_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_customer_location_country__United_States__Unknown.86cb2451d3": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_customer_location_country__United_States__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customer_location_country__United_States__Unknown.86cb2451d3", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "accepted_values_int_customer_location_country__United_States__Unknown"], "alias": "accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b"}, "created_at": 1784602859.7739062, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n country as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customer_location\"\n group by country\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'United States','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "country", "file_key_name": "models.int_customer_location", "attached_node": "model.dbt_analytics_engineering.int_customer_location", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "country", "values": ["United States", "Unknown"], "model": "{{ get_where_subquery(ref('int_customer_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customer_location_region.bb382037e2": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customer_location_region", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customer_location_region.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_region.bb382037e2", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customer_location_region"], "alias": "not_null_int_customer_location_region", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.7854116, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_region.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect region\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere region is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "region", "file_key_name": "models.int_customer_location", "attached_node": "model.dbt_analytics_engineering.int_customer_location", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "region", "model": "{{ get_where_subquery(ref('int_customer_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_customer_location_region__Midwest__Northeast__South__West.941ae25bfa": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_customer_location_region__Midwest__Northeast__South__West", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customer_location_region__Midwest__Northeast__South__West.941ae25bfa", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "accepted_values_int_customer_location_region__Midwest__Northeast__South__West"], "alias": "accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09"}, "created_at": 1784602859.7884953, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customer_location", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customer_location"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n region as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customer_location\"\n group by region\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Midwest','Northeast','South','West'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "region", "file_key_name": "models.int_customer_location", "attached_node": "model.dbt_analytics_engineering.int_customer_location", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "region", "values": ["Midwest", "Northeast", "South", "West"], "model": "{{ get_where_subquery(ref('int_customer_location')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_transaction_fulfillment_transaction_id.19535076ac": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_transaction_fulfillment_transaction_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_transaction_fulfillment_transaction_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_transaction_fulfillment_transaction_id.19535076ac", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "unique_int_transaction_fulfillment_transaction_id"], "alias": "unique_int_transaction_fulfillment_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.810486, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_fulfillment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_fulfillment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_fulfillment_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n transaction_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_transaction_fulfillment\"\nwhere transaction_id is not null\ngroup by transaction_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "transaction_id", "file_key_name": "models.int_transaction_fulfillment", "attached_node": "model.dbt_analytics_engineering.int_transaction_fulfillment", "test_metadata": {"name": "unique", "kwargs": {"column_name": "transaction_id", "model": "{{ get_where_subquery(ref('int_transaction_fulfillment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_transaction_id.6074867dc7": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_fulfillment_transaction_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_fulfillment_transaction_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_transaction_id.6074867dc7", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_fulfillment_transaction_id"], "alias": "not_null_int_transaction_fulfillment_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.8135526, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_fulfillment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_fulfillment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect transaction_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_fulfillment\"\nwhere transaction_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "transaction_id", "file_key_name": "models.int_transaction_fulfillment", "attached_node": "model.dbt_analytics_engineering.int_transaction_fulfillment", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "transaction_id", "model": "{{ get_where_subquery(ref('int_transaction_fulfillment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_order_date.2248138cc0": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_fulfillment_order_date", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_fulfillment_order_date.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_order_date.2248138cc0", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_fulfillment_order_date"], "alias": "not_null_int_transaction_fulfillment_order_date", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.8164053, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_fulfillment", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_fulfillment"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_order_date.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect order_date\nfrom \"RetailDB\".\"bronze\".\"int_transaction_fulfillment\"\nwhere order_date is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "order_date", "file_key_name": "models.int_transaction_fulfillment", "attached_node": "model.dbt_analytics_engineering.int_transaction_fulfillment", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "order_date", "model": "{{ get_where_subquery(ref('int_transaction_fulfillment')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.unique_int_transaction_financial_transaction_id.9f42b7645d": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_transaction_financial_transaction_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_transaction_financial_transaction_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_transaction_financial_transaction_id.9f42b7645d", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "unique_int_transaction_financial_transaction_id"], "alias": "unique_int_transaction_financial_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.8192098, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_financial", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_financial"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_financial_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n transaction_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_transaction_financial\"\nwhere transaction_id is not null\ngroup by transaction_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "transaction_id", "file_key_name": "models.int_transaction_financial", "attached_node": "model.dbt_analytics_engineering.int_transaction_financial", "test_metadata": {"name": "unique", "kwargs": {"column_name": "transaction_id", "model": "{{ get_where_subquery(ref('int_transaction_financial')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_financial_transaction_id.b0c6238393": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_financial_transaction_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_financial_transaction_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_financial_transaction_id.b0c6238393", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_financial_transaction_id"], "alias": "not_null_int_transaction_financial_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784602859.822245, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_financial", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_financial"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_financial_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect transaction_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_financial\"\nwhere transaction_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "transaction_id", "file_key_name": "models.int_transaction_financial", "attached_node": "model.dbt_analytics_engineering.int_transaction_financial", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "transaction_id", "model": "{{ get_where_subquery(ref('int_transaction_financial')) }}"}, "namespace": null}}, "model.dbt_analytics_engineering.int_transaction_status": {"database": "RetailDB", "schema": "bronze", "name": "int_transaction_status", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Transactions/int_transaction_status.sql", "original_file_path": "models/intermediate/Transactions/int_transaction_status.sql", "unique_id": "model.dbt_analytics_engineering.int_transaction_status", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "int_transaction_status"], "alias": "int_transaction_status", "checksum": {"name": "sha256", "checksum": "646bc092baf29e0a37c24d06bbe4c8f42bd66e004bbeed313bbc655aa1e3e529"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "**Layer:** Silver / Intermediate (Categorical Status & Campaign Context Layer)\n**Core Objective:** Standardizes alphanumeric operational states, status markers, marketing descriptors, and source system tags.\n**Engineering Strategy:** Implements categorical smoothing to fix text fragmentation. It cleanses leading/trailing whitespace, \nnormalizes mixed-case strings, removes hidden carriage returns, and consolidates fragmented system statuses into a uniform corporate taxonomy.\n", "columns": {"transaction_id": {"name": "transaction_id", "description": "Primary identification transaction key.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "promo_id": {"name": "promo_id", "description": "Core tracking code link for the applied marketing promotion campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "promo_name": {"name": "promo_name", "description": "Standardized label of the marketing campaign applied to the transaction.\n**Business Logic & SQL Mechanics:** Evaluates disparate user inputs and system text markers \n(`TRIM(LOWER(promo_name))`) into a standardized Title Case taxonomy (e.g., 'Winter Clearance', 'Bundle Deal', 'Flash Sale'). \nUnmapped campaign descriptors preserve their raw text layout but are cleaned of trailing whitespace.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "order_status": {"name": "order_status", "description": "The normalized state tracking the operational milestone of the order lifecycle.\n**Business Logic & SQL Mechanics:** Translates fragmented system markers using an explicit taxonomy \nmapping tree. It forces character uniformity to standard options: 'Pending', 'Processing', 'Shipped', 'Delivered', 'Returned', or 'Cancelled'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_returned": {"name": "is_returned", "description": "A clean boolean indicator identifying if an order line was returned post-purchase.\n**Business Logic & SQL Mechanics:** Standardizes inconsistent system inputs (`yes`, `y`, `true`, `1`) into a \nuniform `'True'` category. Negative inputs resolve to `'False'`, and corrupted rows map safely to `'Unknown'`.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "data_source": {"name": "data_source", "description": "A system tracking metric that records the source application of origin (e.g., 'CRM', 'Web'). \nThis field is crucial for data lineage audits and root-cause error analysis.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Transactions/_int_transactions_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784606913.1709483, "relation_name": "\"RetailDB\".\"bronze\".\"int_transaction_status\"", "raw_code": "SELECT\n transaction_id,\n\n promo_id,\n\n CASE TRIM(LOWER(promo_name))\n WHEN 'winter clearance' THEN 'Winter Clearance'\n WHEN 'bundle deal' THEN 'Bundle Deal'\n WHEN 'no promo' THEN 'No Promo'\n WHEN 'flash sale' THEN 'Flash Sale'\n WHEN 'black friday' THEN 'Black Friday'\n WHEN 'holiday special' THEN 'Holiday Special'\n WHEN 'weekend deal' THEN 'Weekend Deal'\n WHEN 'loyalty reward' THEN 'Loyalty Reward'\n WHEN 'cyber monday' THEN 'Cyber Monday'\n ELSE TRIM(promo_name)\n END AS promo_name,\n\n CASE TRIM(LOWER(order_status))\n WHEN 'pending' THEN 'Pending'\n WHEN 'processing' THEN 'Processing'\n WHEN 'shipped' THEN 'Shipped'\n WHEN 'delivered' THEN 'Delivered'\n WHEN 'returned' THEN 'Returned'\n WHEN 'cancelled' THEN 'Cancelled'\n ELSE TRIM(order_status)\n END AS order_status,\n\n CASE \n WHEN TRIM(LOWER(is_returned)) IN ('yes', 'y', 'true', '1') \n THEN 'True'\n\n WHEN TRIM(LOWER(is_returned)) IN ('no', 'n', 'false', '0') \n THEN 'False'\n \n ELSE 'Unknown'\n END AS is_returned,\n\n CASE TRIM(LOWER(data_source))\n WHEN 'crm' THEN 'CRM'\n WHEN 'web' THEN 'Web'\n WHEN 'pos' THEN 'POS'\n WHEN 'manual' THEN 'Manual'\n WHEN 'erp' THEN 'ERP'\n ELSE 'Unknown'\n END AS data_source\n\nFROM {{ ref('stg_transactions') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.dbt_analytics_engineering.stg_transactions"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_status.sql", "compiled": true, "compiled_code": "SELECT\n transaction_id,\n\n promo_id,\n\n CASE TRIM(LOWER(promo_name))\n WHEN 'winter clearance' THEN 'Winter Clearance'\n WHEN 'bundle deal' THEN 'Bundle Deal'\n WHEN 'no promo' THEN 'No Promo'\n WHEN 'flash sale' THEN 'Flash Sale'\n WHEN 'black friday' THEN 'Black Friday'\n WHEN 'holiday special' THEN 'Holiday Special'\n WHEN 'weekend deal' THEN 'Weekend Deal'\n WHEN 'loyalty reward' THEN 'Loyalty Reward'\n WHEN 'cyber monday' THEN 'Cyber Monday'\n ELSE TRIM(promo_name)\n END AS promo_name,\n\n CASE TRIM(LOWER(order_status))\n WHEN 'pending' THEN 'Pending'\n WHEN 'processing' THEN 'Processing'\n WHEN 'shipped' THEN 'Shipped'\n WHEN 'delivered' THEN 'Delivered'\n WHEN 'returned' THEN 'Returned'\n WHEN 'cancelled' THEN 'Cancelled'\n ELSE TRIM(order_status)\n END AS order_status,\n\n CASE \n WHEN TRIM(LOWER(is_returned)) IN ('yes', 'y', 'true', '1') \n THEN 'True'\n\n WHEN TRIM(LOWER(is_returned)) IN ('no', 'n', 'false', '0') \n THEN 'False'\n \n ELSE 'Unknown'\n END AS is_returned,\n\n CASE TRIM(LOWER(data_source))\n WHEN 'crm' THEN 'CRM'\n WHEN 'web' THEN 'Web'\n WHEN 'pos' THEN 'POS'\n WHEN 'manual' THEN 'Manual'\n WHEN 'erp' THEN 'ERP'\n ELSE 'Unknown'\n END AS data_source\n\nFROM \"RetailDB\".\"bronze\".\"stg_transactions\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": ["transaction_id"], "time_spine": null}, "model.dbt_analytics_engineering.int_customers_contact": {"database": "RetailDB", "schema": "bronze", "name": "int_customers_contact", "resource_type": "model", "package_name": "dbt_analytics_engineering", "path": "intermediate/Customers/int_customers_contact.sql", "original_file_path": "models/intermediate/Customers/int_customers_contact.sql", "unique_id": "model.dbt_analytics_engineering.int_customers_contact", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "int_customers_contact"], "alias": "int_customers_contact", "checksum": {"name": "sha256", "checksum": "76afac998f73c36820815fa96db8336650b14eb3d07143fd75a5249b564c67a9"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": ["intermediate", "silver"], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": ["intermediate", "silver"], "description": "Creates a trusted customer contact dataset by improving the quality and\nconsistency of customer communication attributes. The model validates and\nrepairs email addresses, standardizes phone numbers into a common format,\nand normalizes preferred communication channels into business-defined\ncategories. The resulting dataset provides reliable contact information\nfor CRM processes, customer engagement, marketing campaigns, and\ndownstream analytical models.\n", "columns": {"email": {"name": "email", "description": "Customer email address after validation and standardization. Invalid,\nincomplete, or malformed email addresses are replaced with 'Unknown',\nwhile common domain spelling mistakes and duplicate '@' characters are\nautomatically corrected to improve communication reliability.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "phone": {"name": "phone", "description": "Customer phone number standardized into the format\n'+1 (XXX) XXX-XXXX'. Supports multiple source formats, including\ncontinuous digits, hyphen-separated values, dotted notation, and\nparenthesized area codes. Invalid or missing phone numbers are\nreplaced with 'Unknown'.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "preferred_channel": {"name": "preferred_channel", "description": "Customer's preferred communication channel normalized into\nbusiness-standard categories. Multiple source representations are\nconsolidated into consistent values to support reliable communication\npreference analysis and customer engagement reporting.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "dbt_analytics_engineering://models/intermediate/Customers/_int__customers_models.yml", "build_path": null, "unrendered_config": {"materialized": "table", "tags": ["intermediate", "silver"]}, "created_at": 1784606913.5029886, "relation_name": "\"RetailDB\".\"bronze\".\"int_customers_contact\"", "raw_code": "-- ============================================================================\n-- Model: int_customers_contact\n--\n-- Purpose:\n-- Creates a trusted customer contact dataset by validating, correcting, and\n-- standardizing customer communication attributes. This model repairs common\n-- email formatting issues and domain typographical errors, transforms phone\n-- numbers into a consistent business format, and normalizes preferred\n-- communication channels into standardized business categories. The resulting\n-- dataset provides reliable contact information for customer communication,\n-- marketing campaigns, CRM operations, and downstream analytical models.\n--\n-- Maintainer: Ritik\n-- ============================================================================\nSELECT\n customer_id,\n\n CASE\n WHEN email IS NULL OR TRIM(email) = '' THEN 'Unknown'\n WHEN {{ trim_lower('email') }} NOT LIKE '%@%' \n THEN 'Unknown'\n\n WHEN PATINDEX('%@%@%', {{ trim_lower('email') }}) > 0 \n THEN\n LEFT({{ trim_lower('email') }},CHARINDEX('@', {{ trim_lower('email') }}) - 1)\n + '@' +\n REPLACE(\n SUBSTRING(\n {{ trim_lower('email') }},\n CHARINDEX('@', {{ trim_lower('email') }}) + 1,\n LEN(email)),'@','')\n ELSE\n CONCAT(\n LEFT({{ trim_lower('email') }},CHARINDEX('@', {{ trim_lower('email') }}) - 1), '@',\n CASE\n WHEN RIGHT(\n {{ trim_lower('email') }},\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'yahoocom' THEN 'yahoo.com'\n\n WHEN RIGHT(\n {{ trim_lower('email') }},\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'iclod.com' THEN 'icloud.com'\n\n WHEN RIGHT(\n {{ trim_lower('email') }},\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'outook.com' THEN 'outlook.com'\n\n WHEN RIGHT(\n {{ trim_lower('email') }},\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'ahoo.com' THEN 'yahoo.com'\n\n ELSE RIGHT(\n {{ trim_lower('email') }},\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email)))\n END\n )\n END AS email,\n \n {{ standardize_phone('phone') }} as phone,\n\n CASE {{ trim_lower('preferred_channel') }}\n WHEN 'app' THEN 'Mobile App'\n WHEN 'mobile app' THEN 'Mobile App'\n WHEN 'mobile' THEN 'Mobile App'\n WHEN 'in store' THEN 'In Store'\n WHEN 'in-store' THEN 'In Store'\n WHEN 'store' THEN 'In Store'\n WHEN 'catalog' THEN 'Catalog'\n WHEN 'online' THEN 'Website'\n WHEN 'web' THEN 'Website'\n WHEN 'phone' THEN 'Phone Call'\n ELSE 'Unknown'\n END as preferred_channel\n\nFROM {{ ref('stg_customers') }} ;", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_customers", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_analytics_engineering.trim_lower", "macro.dbt_analytics_engineering.standardize_phone"], "nodes": ["model.dbt_analytics_engineering.stg_customers"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/int_customers_contact.sql", "compiled": true, "compiled_code": "-- ============================================================================\n-- Model: int_customers_contact\n--\n-- Purpose:\n-- Creates a trusted customer contact dataset by validating, correcting, and\n-- standardizing customer communication attributes. This model repairs common\n-- email formatting issues and domain typographical errors, transforms phone\n-- numbers into a consistent business format, and normalizes preferred\n-- communication channels into standardized business categories. The resulting\n-- dataset provides reliable contact information for customer communication,\n-- marketing campaigns, CRM operations, and downstream analytical models.\n--\n-- Maintainer: Ritik\n-- ============================================================================\nSELECT\n customer_id,\n\n CASE\n WHEN email IS NULL OR TRIM(email) = '' THEN 'Unknown'\n WHEN \n LOWER(TRIM(email))\n NOT LIKE '%@%' \n THEN 'Unknown'\n\n WHEN PATINDEX('%@%@%', \n LOWER(TRIM(email))\n) > 0 \n THEN\n LEFT(\n LOWER(TRIM(email))\n,CHARINDEX('@', \n LOWER(TRIM(email))\n) - 1)\n + '@' +\n REPLACE(\n SUBSTRING(\n \n LOWER(TRIM(email))\n,\n CHARINDEX('@', \n LOWER(TRIM(email))\n) + 1,\n LEN(email)),'@','')\n ELSE\n CONCAT(\n LEFT(\n LOWER(TRIM(email))\n,CHARINDEX('@', \n LOWER(TRIM(email))\n) - 1), '@',\n CASE\n WHEN RIGHT(\n \n LOWER(TRIM(email))\n,\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'yahoocom' THEN 'yahoo.com'\n\n WHEN RIGHT(\n \n LOWER(TRIM(email))\n,\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'iclod.com' THEN 'icloud.com'\n\n WHEN RIGHT(\n \n LOWER(TRIM(email))\n,\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'outook.com' THEN 'outlook.com'\n\n WHEN RIGHT(\n \n LOWER(TRIM(email))\n,\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'ahoo.com' THEN 'yahoo.com'\n\n ELSE RIGHT(\n \n LOWER(TRIM(email))\n,\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email)))\n END\n )\n END AS email,\n \n \n\n CASE \n WHEN TRIM(phone) LIKE '+1__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 3, 3), ') ',\n SUBSTRING(TRIM(phone), 6, 3),'-',\n SUBSTRING(TRIM(phone),9,4))\n\n WHEN TRIM(phone) LIKE '__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1 ,3), ') ',\n SUBSTRING(TRIM(phone), 4 ,3), '-',\n SUBSTRING(TRIM(phone), 7, 4))\n\n WHEN TRIM(phone) LIKE '___-___-____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone), 9 ,4))\n\n WHEN TRIM(phone) LIKE '___.___.____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone),9, 4))\n\n WHEN TRIM(phone) LIKE '(___) ___-____' \n THEN CONCAT('+1 ', SUBSTRING(TRIM(phone), 1, 14))\n\n WHEN TRIM(phone) IS NULL OR TRIM(phone) = '' \n THEN 'Unknown'\n\n ELSE 'Unknown'\n END\n as phone,\n\n CASE \n LOWER(TRIM(preferred_channel))\n\n WHEN 'app' THEN 'Mobile App'\n WHEN 'mobile app' THEN 'Mobile App'\n WHEN 'mobile' THEN 'Mobile App'\n WHEN 'in store' THEN 'In Store'\n WHEN 'in-store' THEN 'In Store'\n WHEN 'store' THEN 'In Store'\n WHEN 'catalog' THEN 'Catalog'\n WHEN 'online' THEN 'Website'\n WHEN 'web' THEN 'Website'\n WHEN 'phone' THEN 'Phone Call'\n ELSE 'Unknown'\n END as preferred_channel\n\nFROM \"RetailDB\".\"bronze\".\"stg_customers\" ;", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "test.dbt_analytics_engineering.unique_int_transaction_status_transaction_id.5a928112d7": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "unique_int_transaction_status_transaction_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "unique_int_transaction_status_transaction_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.unique_int_transaction_status_transaction_id.5a928112d7", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "unique_int_transaction_status_transaction_id"], "alias": "unique_int_transaction_status_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784606913.4242198, "relation_name": null, "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_status", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_status"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_status_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\nselect\n transaction_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_transaction_status\"\nwhere transaction_id is not null\ngroup by transaction_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "transaction_id", "file_key_name": "models.int_transaction_status", "attached_node": "model.dbt_analytics_engineering.int_transaction_status", "test_metadata": {"name": "unique", "kwargs": {"column_name": "transaction_id", "model": "{{ get_where_subquery(ref('int_transaction_status')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_status_transaction_id.307f36c18d": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_status_transaction_id", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_status_transaction_id.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_status_transaction_id.307f36c18d", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_status_transaction_id"], "alias": "not_null_int_transaction_status_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784606913.4287806, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_status", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_status"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect transaction_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_status\"\nwhere transaction_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "transaction_id", "file_key_name": "models.int_transaction_status", "attached_node": "model.dbt_analytics_engineering.int_transaction_status", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "transaction_id", "model": "{{ get_where_subquery(ref('int_transaction_status')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_status_promo_name.73af556bae": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_status_promo_name", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_status_promo_name.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_status_promo_name.73af556bae", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_status_promo_name"], "alias": "not_null_int_transaction_status_promo_name", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784606913.4320378, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_status", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_status"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_promo_name.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect promo_name\nfrom \"RetailDB\".\"bronze\".\"int_transaction_status\"\nwhere promo_name is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "promo_name", "file_key_name": "models.int_transaction_status", "attached_node": "model.dbt_analytics_engineering.int_transaction_status", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "promo_name", "model": "{{ get_where_subquery(ref('int_transaction_status')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_status_order_status.e2edc43658": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_status_order_status", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_status_order_status.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_status_order_status.e2edc43658", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_status_order_status"], "alias": "not_null_int_transaction_status_order_status", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784606913.4350445, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_status", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_status"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_order_status.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect order_status\nfrom \"RetailDB\".\"bronze\".\"int_transaction_status\"\nwhere order_status is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "order_status", "file_key_name": "models.int_transaction_status", "attached_node": "model.dbt_analytics_engineering.int_transaction_status", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "order_status", "model": "{{ get_where_subquery(ref('int_transaction_status')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_transaction_status_order_status__Pending__Processing__Shipped__Delivered__Returned__Cancelled.d3263719c7": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_transaction_status_order_status__Pending__Processing__Shipped__Delivered__Returned__Cancelled", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_transaction_status_order_status__Pending__Processing__Shipped__Delivered__Returned__Cancelled.d3263719c7", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "accepted_values_int_transaction_status_order_status__Pending__Processing__Shipped__Delivered__Returned__Cancelled"], "alias": "accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9"}, "created_at": 1784606913.4384425, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_status", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_status"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n order_status as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_transaction_status\"\n group by order_status\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Pending','Processing','Shipped','Delivered','Returned','Cancelled'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "order_status", "file_key_name": "models.int_transaction_status", "attached_node": "model.dbt_analytics_engineering.int_transaction_status", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "order_status", "values": ["Pending", "Processing", "Shipped", "Delivered", "Returned", "Cancelled"], "model": "{{ get_where_subquery(ref('int_transaction_status')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_transaction_status_is_returned.68242f5dfd": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_transaction_status_is_returned", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_transaction_status_is_returned.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_status_is_returned.68242f5dfd", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "not_null_int_transaction_status_is_returned"], "alias": "not_null_int_transaction_status_is_returned", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784606913.4857953, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_status", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_status"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_is_returned.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect is_returned\nfrom \"RetailDB\".\"bronze\".\"int_transaction_status\"\nwhere is_returned is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "is_returned", "file_key_name": "models.int_transaction_status", "attached_node": "model.dbt_analytics_engineering.int_transaction_status", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "is_returned", "model": "{{ get_where_subquery(ref('int_transaction_status')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_transaction_status_is_returned__True__False__Unknown.fcbf6be4ad": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_transaction_status_is_returned__True__False__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af.sql", "original_file_path": "models/intermediate/Transactions/_int_transactions_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_transaction_status_is_returned__True__False__Unknown.fcbf6be4ad", "fqn": ["dbt_analytics_engineering", "intermediate", "Transactions", "accepted_values_int_transaction_status_is_returned__True__False__Unknown"], "alias": "accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af"}, "created_at": 1784606913.4899194, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_transaction_status", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_transaction_status"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_returned as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_transaction_status\"\n group by is_returned\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "is_returned", "file_key_name": "models.int_transaction_status", "attached_node": "model.dbt_analytics_engineering.int_transaction_status", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "is_returned", "values": ["True", "False", "Unknown"], "model": "{{ get_where_subquery(ref('int_transaction_status')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customers_contact_email.7b842fa5e7": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customers_contact_email", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customers_contact_email.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customers_contact_email.7b842fa5e7", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customers_contact_email"], "alias": "not_null_int_customers_contact_email", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784606913.505734, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customers_contact", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customers_contact"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_email.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect email\nfrom \"RetailDB\".\"bronze\".\"int_customers_contact\"\nwhere email is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "email", "file_key_name": "models.int_customers_contact", "attached_node": "model.dbt_analytics_engineering.int_customers_contact", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('int_customers_contact')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customers_contact_phone.fe6527d505": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customers_contact_phone", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customers_contact_phone.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customers_contact_phone.fe6527d505", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customers_contact_phone"], "alias": "not_null_int_customers_contact_phone", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784606913.5096676, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customers_contact", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customers_contact"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_phone.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect phone\nfrom \"RetailDB\".\"bronze\".\"int_customers_contact\"\nwhere phone is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "phone", "file_key_name": "models.int_customers_contact", "attached_node": "model.dbt_analytics_engineering.int_customers_contact", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "phone", "model": "{{ get_where_subquery(ref('int_customers_contact')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.not_null_int_customers_contact_preferred_channel.ab818846a7": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "not_null_int_customers_contact_preferred_channel", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "not_null_int_customers_contact_preferred_channel.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.not_null_int_customers_contact_preferred_channel.ab818846a7", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "not_null_int_customers_contact_preferred_channel"], "alias": "not_null_int_customers_contact_preferred_channel", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784606913.51353, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customers_contact", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customers_contact"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_preferred_channel.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect preferred_channel\nfrom \"RetailDB\".\"bronze\".\"int_customers_contact\"\nwhere preferred_channel is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "preferred_channel", "file_key_name": "models.int_customers_contact", "attached_node": "model.dbt_analytics_engineering.int_customers_contact", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "preferred_channel", "model": "{{ get_where_subquery(ref('int_customers_contact')) }}"}, "namespace": null}}, "test.dbt_analytics_engineering.accepted_values_int_customers_contact_preferred_channel__Mobile_App__In_Store__Catalog__Website__Phone_Call__Unknown.1735c0ec9c": {"database": "RetailDB", "schema": "bronze_dbt_test__audit", "name": "accepted_values_int_customers_contact_preferred_channel__Mobile_App__In_Store__Catalog__Website__Phone_Call__Unknown", "resource_type": "test", "package_name": "dbt_analytics_engineering", "path": "accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47.sql", "original_file_path": "models/intermediate/Customers/_int__customers_models.yml", "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customers_contact_preferred_channel__Mobile_App__In_Store__Catalog__Website__Phone_Call__Unknown.1735c0ec9c", "fqn": ["dbt_analytics_engineering", "intermediate", "Customers", "accepted_values_int_customers_contact_preferred_channel__Mobile_App__In_Store__Catalog__Website__Phone_Call__Unknown"], "alias": "accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47"}, "created_at": 1784606913.516875, "relation_name": null, "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_customers_contact", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_accepted_values", "macro.dbt.get_where_subquery"], "nodes": ["model.dbt_analytics_engineering.int_customers_contact"]}, "compiled_path": "target/compiled/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47.sql", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n preferred_channel as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customers_contact\"\n group by preferred_channel\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Mobile App','In Store','Catalog','Website','Phone Call','Unknown'\n)\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "preferred_channel", "file_key_name": "models.int_customers_contact", "attached_node": "model.dbt_analytics_engineering.int_customers_contact", "test_metadata": {"name": "accepted_values", "kwargs": {"column_name": "preferred_channel", "values": ["Mobile App", "In Store", "Catalog", "Website", "Phone Call", "Unknown"], "model": "{{ get_where_subquery(ref('int_customers_contact')) }}"}, "namespace": null}}}, "sources": {"source.dbt_analytics_engineering.bronze.customers": {"database": "RetailDB", "schema": "bronze", "name": "customers", "resource_type": "source", "package_name": "dbt_analytics_engineering", "path": "models/staging/_stg__retail__sources.yml", "original_file_path": "models/staging/_stg__retail__sources.yml", "unique_id": "source.dbt_analytics_engineering.bronze.customers", "fqn": ["dbt_analytics_engineering", "staging", "bronze", "customers"], "source_name": "bronze", "source_description": "Bronze layer contains raw, untransformed data ingested from source systems.\nThese tables represent the initial landing zone of the Retail Data Warehouse\nand serve as the source for all staging models.\n", "loader": "", "identifier": "customers", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "loaded_at_query": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Raw customer master dataset containing customer demographic, contact,\ngeographic, account and loyalty information. Data profiling identified\nmultiple data quality issues including duplicate customer identifiers,\ninconsistent categorical values, mixed date formats, malformed email\naddresses, non-standard phone number patterns, missing values, incomplete\naddress information, invalid ZIP codes, inconsistent state and city names,\nand varying text formats across several attributes. The dataset represents\nsource-system data in its original form and may contain operational data\nentry errors, formatting inconsistencies and missing business attributes.\n", "columns": {}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"RetailDB\".\"bronze\".\"customers\"", "created_at": 1782269923.8567824, "unrendered_database": "RetailDB", "unrendered_schema": "bronze", "doc_blocks": []}, "source.dbt_analytics_engineering.bronze.employees": {"database": "RetailDB", "schema": "bronze", "name": "employees", "resource_type": "source", "package_name": "dbt_analytics_engineering", "path": "models/staging/_stg__retail__sources.yml", "original_file_path": "models/staging/_stg__retail__sources.yml", "unique_id": "source.dbt_analytics_engineering.bronze.employees", "fqn": ["dbt_analytics_engineering", "staging", "bronze", "employees"], "source_name": "bronze", "source_description": "Bronze layer contains raw, untransformed data ingested from source systems.\nThese tables represent the initial landing zone of the Retail Data Warehouse\nand serve as the source for all staging models.\n", "loader": "", "identifier": "employees", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "loaded_at_query": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Raw employee master dataset containing employee identity, contact,\norganizational, compensation and performance-related information.\nData profiling identified multiple data quality issues including\ninvalid or duplicate employee identifiers, inconsistent name formats,\nleading and trailing whitespace, malformed email addresses, multiple\nphone number patterns, missing values, inconsistent categorical values,\nmixed hire date formats, invalid numeric values in compensation fields,\nincomplete store information and inconsistencies across employee\nmanagement and performance attributes. The dataset represents source\nsystem data in its original form and may contain operational data entry\nerrors, formatting inconsistencies and incomplete business records.\n", "columns": {}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"RetailDB\".\"bronze\".\"employees\"", "created_at": 1782269923.860053, "unrendered_database": "RetailDB", "unrendered_schema": "bronze", "doc_blocks": []}, "source.dbt_analytics_engineering.bronze.inventory_snapshots": {"database": "RetailDB", "schema": "bronze", "name": "inventory_snapshots", "resource_type": "source", "package_name": "dbt_analytics_engineering", "path": "models/staging/_stg__retail__sources.yml", "original_file_path": "models/staging/_stg__retail__sources.yml", "unique_id": "source.dbt_analytics_engineering.bronze.inventory_snapshots", "fqn": ["dbt_analytics_engineering", "staging", "bronze", "inventory_snapshots"], "source_name": "bronze", "source_description": "Bronze layer contains raw, untransformed data ingested from source systems.\nThese tables represent the initial landing zone of the Retail Data Warehouse\nand serve as the source for all staging models.\n", "loader": "", "identifier": "inventory_snapshots", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "loaded_at_query": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Raw inventory snapshot data containing product stock levels, pricing,\nwarehouse locations and store allocation details. Data profiling\nidentified mixed date formats, invalid product identifiers, category\ninconsistencies, missing values and formatting issues across inventory\nand pricing attributes.\n", "columns": {}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"RetailDB\".\"bronze\".\"inventory_snapshots\"", "created_at": 1782269923.861069, "unrendered_database": "RetailDB", "unrendered_schema": "bronze", "doc_blocks": []}, "source.dbt_analytics_engineering.bronze.products": {"database": "RetailDB", "schema": "bronze", "name": "products", "resource_type": "source", "package_name": "dbt_analytics_engineering", "path": "models/staging/_stg__retail__sources.yml", "original_file_path": "models/staging/_stg__retail__sources.yml", "unique_id": "source.dbt_analytics_engineering.bronze.products", "fqn": ["dbt_analytics_engineering", "staging", "bronze", "products"], "source_name": "bronze", "source_description": "Bronze layer contains raw, untransformed data ingested from source systems.\nThese tables represent the initial landing zone of the Retail Data Warehouse\nand serve as the source for all staging models.\n", "loader": "", "identifier": "products", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "loaded_at_query": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Raw product master dataset containing product catalog, pricing,\ninventory, supplier and product lifecycle information. Data profiling\nidentified invalid product identifiers, inconsistent text formatting,\nmissing product attributes, pricing anomalies, mixed date formats,\ninvalid inventory values and inconsistent supplier information.\n", "columns": {}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"RetailDB\".\"bronze\".\"products\"", "created_at": 1782269923.8620574, "unrendered_database": "RetailDB", "unrendered_schema": "bronze", "doc_blocks": []}, "source.dbt_analytics_engineering.bronze.returns": {"database": "RetailDB", "schema": "bronze", "name": "returns", "resource_type": "source", "package_name": "dbt_analytics_engineering", "path": "models/staging/_stg__retail__sources.yml", "original_file_path": "models/staging/_stg__retail__sources.yml", "unique_id": "source.dbt_analytics_engineering.bronze.returns", "fqn": ["dbt_analytics_engineering", "staging", "bronze", "returns"], "source_name": "bronze", "source_description": "Bronze layer contains raw, untransformed data ingested from source systems.\nThese tables represent the initial landing zone of the Retail Data Warehouse\nand serve as the source for all staging models.\n", "loader": "", "identifier": "returns", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "loaded_at_query": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Raw returns data containing customer return and refund transactions.\nProfiling revealed identifier quality issues, formatting inconsistencies,\nmissing values, invalid monetary amounts, mixed date formats and\ninconsistent categorical values across return channels, statuses and\noperational attributes.\n", "columns": {}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"RetailDB\".\"bronze\".\"returns\"", "created_at": 1782269923.8630044, "unrendered_database": "RetailDB", "unrendered_schema": "bronze", "doc_blocks": []}, "source.dbt_analytics_engineering.bronze.reviews": {"database": "RetailDB", "schema": "bronze", "name": "reviews", "resource_type": "source", "package_name": "dbt_analytics_engineering", "path": "models/staging/_stg__retail__sources.yml", "original_file_path": "models/staging/_stg__retail__sources.yml", "unique_id": "source.dbt_analytics_engineering.bronze.reviews", "fqn": ["dbt_analytics_engineering", "staging", "bronze", "reviews"], "source_name": "bronze", "source_description": "Bronze layer contains raw, untransformed data ingested from source systems.\nThese tables represent the initial landing zone of the Retail Data Warehouse\nand serve as the source for all staging models.\n", "loader": "", "identifier": "reviews", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "loaded_at_query": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Raw review data containing customer feedback records. Profiling revealed\nidentifier quality issues, inconsistent categorical values, mixed date\nformats, invalid ratings, missing references and formatting anomalies\nacross multiple review attributes.\n", "columns": {}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"RetailDB\".\"bronze\".\"reviews\"", "created_at": 1782269923.8639379, "unrendered_database": "RetailDB", "unrendered_schema": "bronze", "doc_blocks": []}, "source.dbt_analytics_engineering.bronze.sales_transactions": {"database": "RetailDB", "schema": "bronze", "name": "sales_transactions", "resource_type": "source", "package_name": "dbt_analytics_engineering", "path": "models/staging/_stg__retail__sources.yml", "original_file_path": "models/staging/_stg__retail__sources.yml", "unique_id": "source.dbt_analytics_engineering.bronze.sales_transactions", "fqn": ["dbt_analytics_engineering", "staging", "bronze", "sales_transactions"], "source_name": "bronze", "source_description": "Bronze layer contains raw, untransformed data ingested from source systems.\nThese tables represent the initial landing zone of the Retail Data Warehouse\nand serve as the source for all staging models.\n", "loader": "", "identifier": "sales_transactions", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "loaded_at_query": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Raw sales transaction data collected from multiple operational systems.\nProfiling revealed date format variations, duplicate records, invalid\nfinancial values, inconsistent business categories, missing foreign key\nreferences, formatting anomalies and transactional integrity issues\nacross the dataset.\n", "columns": {}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"RetailDB\".\"bronze\".\"sales_transactions\"", "created_at": 1782269923.8653386, "unrendered_database": "RetailDB", "unrendered_schema": "bronze", "doc_blocks": []}, "source.dbt_analytics_engineering.bronze.stores": {"database": "RetailDB", "schema": "bronze", "name": "stores", "resource_type": "source", "package_name": "dbt_analytics_engineering", "path": "models/staging/_stg__retail__sources.yml", "original_file_path": "models/staging/_stg__retail__sources.yml", "unique_id": "source.dbt_analytics_engineering.bronze.stores", "fqn": ["dbt_analytics_engineering", "staging", "bronze", "stores"], "source_name": "bronze", "source_description": "Bronze layer contains raw, untransformed data ingested from source systems.\nThese tables represent the initial landing zone of the Retail Data Warehouse\nand serve as the source for all staging models.\n", "loader": "", "identifier": "stores", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "loaded_at_query": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Raw store dataset containing location and operational information.\nProfiling revealed identifier quality issues, geographic data\ninconsistencies, invalid contact information, mixed date formats,\nmalformed ZIP codes, missing values and inconsistent categorical\nrepresentations across the dataset.", "columns": {}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"RetailDB\".\"bronze\".\"stores\"", "created_at": 1782269923.8663201, "unrendered_database": "RetailDB", "unrendered_schema": "bronze", "doc_blocks": []}}, "macros": {"macro.dbt_sqlserver.sqlserver__get_test_sql": {"name": "sqlserver__get_test_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/tests.sql", "original_file_path": "macros/materializations/tests.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_test_sql", "macro_sql": "{% macro sqlserver__get_test_sql(main_sql, fail_calc, warn_if, error_if, limit) -%}\n\n -- Create target schema if it does not\n USE [{{ target.database }}];\n IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = '{{ target.schema }}')\n BEGIN\n EXEC('CREATE SCHEMA [{{ target.schema }}]')\n END\n\n {% set testview %}\n [{{ target.schema }}].[testview_{{ local_md5(main_sql) }}_{{ range(1300, 19000) | random }}]\n {% endset %}\n\n {% set sql = main_sql.replace(\"'\", \"''\")%}\n EXEC('create view {{testview}} as {{ sql }};')\n select\n {{ \"top (\" ~ limit ~ ')' if limit != none }}\n {{ fail_calc }} as failures,\n case when {{ fail_calc }} {{ warn_if }}\n then 'true' else 'false' end as should_warn,\n case when {{ fail_calc }} {{ error_if }}\n then 'true' else 'false' end as should_error\n from (\n select * from {{testview}}\n ) dbt_internal_test;\n\n EXEC('drop view {{testview}};')\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.replace"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.901936, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_unit_test_sql": {"name": "sqlserver__get_unit_test_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/unit_tests.sql", "original_file_path": "macros/materializations/unit_tests.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_unit_test_sql", "macro_sql": "{% macro sqlserver__get_unit_test_sql(main_sql, expected_fixture_sql, expected_column_names) -%}\n\n USE [{{ target.database }}];\n IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = '{{ target.schema }}')\n BEGIN\n EXEC('CREATE SCHEMA [{{ target.schema }}]')\n END\n\n {% set test_view %}\n [{{ target.schema }}].[testview_{{ local_md5(main_sql) }}_{{ range(1300, 19000) | random }}]\n {% endset %}\n {% set test_sql = main_sql.replace(\"'\", \"''\")%}\n EXEC('create view {{test_view}} as {{ test_sql }};')\n\n {% set expected_view %}\n [{{ target.schema }}].[expectedview_{{ local_md5(expected_fixture_sql) }}_{{ range(1300, 19000) | random }}]\n {% endset %}\n {% set expected_sql = expected_fixture_sql.replace(\"'\", \"''\")%}\n EXEC('create view {{expected_view}} as {{ expected_sql }};')\n\n -- Build actual result given inputs\n {% set unittest_sql %}\n with dbt_internal_unit_test_actual as (\n select\n {% for expected_column_name in expected_column_names %}{{expected_column_name}}{% if not loop.last -%},{% endif %}{%- endfor -%}, {{ dbt.string_literal(\"actual\") }} as {{ adapter.quote(\"actual_or_expected\") }}\n from\n {{ test_view }}\n ),\n -- Build expected result\n dbt_internal_unit_test_expected as (\n select\n {% for expected_column_name in expected_column_names %}{{expected_column_name}}{% if not loop.last -%}, {% endif %}{%- endfor -%}, {{ dbt.string_literal(\"expected\") }} as {{ adapter.quote(\"actual_or_expected\") }}\n from\n {{ expected_view }}\n )\n -- Union actual and expected results\n select * from dbt_internal_unit_test_actual\n union all\n select * from dbt_internal_unit_test_expected\n {% endset %}\n\n EXEC('{{- escape_single_quotes(unittest_sql) -}}')\n\n EXEC('drop view {{test_view}};')\n EXEC('drop view {{expected_view}};')\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.string_literal", "macro.dbt.escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.907804, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__snapshot_hash_arguments": {"name": "sqlserver__snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__snapshot_hash_arguments", "macro_sql": "{% macro sqlserver__snapshot_hash_arguments(args) %}\n CONVERT(VARCHAR(32), HashBytes('MD5', {% for arg in args %}\n coalesce(cast({{ arg }} as varchar(8000)), '') {% if not loop.last %} + '|' + {% endif %}\n {% endfor %}), 2)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9088128, "supported_languages": null}, "macro.dbt_sqlserver.materialization_snapshot_sqlserver": {"name": "materialization_snapshot_sqlserver", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/snapshots/snapshot.sql", "original_file_path": "macros/materializations/snapshots/snapshot.sql", "unique_id": "macro.dbt_sqlserver.materialization_snapshot_sqlserver", "macro_sql": "{% materialization snapshot, adapter='sqlserver' %}\n\n {%- set config = model['config'] -%}\n {%- set target_table = model.get('alias', model.get('name')) -%}\n {%- set strategy_name = config.get('strategy') -%}\n {%- set unique_key = config.get('unique_key') %}\n -- grab current tables grants config for comparision later on\n {%- set grant_config = config.get('grants') -%}\n\n {% set target_relation_exists, target_relation = get_or_create_relation(\n database=model.database,\n schema=model.schema,\n identifier=target_table,\n type='table') -%}\n\n {%- if not target_relation.is_table -%}\n {% do exceptions.relation_wrong_type(target_relation, 'table') %}\n {%- endif -%}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set strategy_macro = strategy_dispatch(strategy_name) %}\n {% set strategy = strategy_macro(model, \"snapshotted_data\", \"source_data\", config, target_relation_exists) %}\n\n {% set temp_snapshot_relation_exists, temp_snapshot_relation = get_or_create_relation(\n database=model.database,\n schema=model.schema,\n identifier=target_table+\"_snapshot_staging_temp_view\",\n type='view') -%}\n\n -- Create a temporary view to manage if user SQl uses CTE\n {% set temp_snapshot_relation_sql = model['compiled_code'] %}\n {{ adapter.drop_relation(temp_snapshot_relation) }}\n\n {% call statement('create temp_snapshot_relation') -%}\n {{ get_create_view_as_sql(temp_snapshot_relation, temp_snapshot_relation_sql) }}\n {%- endcall %}\n\n {% if not target_relation_exists %}\n\n {% set build_sql = build_snapshot_table(strategy, temp_snapshot_relation) %}\n {% set build_or_select_sql = build_sql %}\n\n -- naming a temp relation\n {% set tmp_relation_view = target_relation.incorporate(path={\"identifier\": target_relation.identifier ~ '__dbt_tmp_vw'}, type='view')-%}\n -- SQL server adapter uses temp relation because of lack of CTE support for CTE in CTAS, Insert\n -- drop temp relation if exists\n {{ adapter.drop_relation(tmp_relation_view) }}\n {% set final_sql = get_create_table_as_sql(False, target_relation, build_sql) %}\n {{ adapter.drop_relation(tmp_relation_view) }}\n\n {% else %}\n\n {% set columns = get_snapshot_table_column_names() %}\n {% set meta = config.get(\"snapshot_meta_column_names\") %}\n {% if meta %}\n {% if meta.dbt_valid_from %}{% do columns.update({\"dbt_valid_from\": meta.dbt_valid_from}) %}{% endif %}\n {% if meta.dbt_valid_to %}{% do columns.update({\"dbt_valid_to\": meta.dbt_valid_to}) %}{% endif %}\n {% if meta.dbt_scd_id %}{% do columns.update({\"dbt_scd_id\": meta.dbt_scd_id}) %}{% endif %}\n {% if meta.dbt_updated_at %}{% do columns.update({\"dbt_updated_at\": meta.dbt_updated_at}) %}{% endif %}\n {% if meta.dbt_is_deleted %}{% do columns.update({\"dbt_is_deleted\": meta.dbt_is_deleted}) %}{% endif %}\n {% endif %}\n {{ adapter.valid_snapshot_target(target_relation, columns) }}\n {% set build_or_select_sql = snapshot_staging_table(strategy, temp_snapshot_relation, target_relation) %}\n {% set staging_table = build_snapshot_staging_table(strategy, temp_snapshot_relation, target_relation) %}\n -- this may no-op if the database does not require column expansion\n {% do adapter.expand_target_column_types(from_relation=staging_table,\n to_relation=target_relation) %}\n\n {% set remove_columns = ['dbt_change_type', 'DBT_CHANGE_TYPE', 'dbt_unique_key', 'DBT_UNIQUE_KEY'] %}\n {% if unique_key | is_list %}\n {% for key in strategy.unique_key %}\n {{ remove_columns.append('dbt_unique_key_' + loop.index|string) }}\n {{ remove_columns.append('DBT_UNIQUE_KEY_' + loop.index|string) }}\n {% endfor %}\n {% endif %}\n {% set missing_columns = adapter.get_missing_columns(staging_table, target_relation)\n | rejectattr('name', 'in', remove_columns)\n | list %}\n {% if missing_columns|length > 0 %}\n {{log(\"Missing columns length is: \"~ missing_columns|length)}}\n {% do create_columns(target_relation, missing_columns) %}\n {% endif %}\n {% set source_columns = adapter.get_columns_in_relation(staging_table)\n | rejectattr('name', 'in', remove_columns)\n | list %}\n {% set quoted_source_columns = [] %}\n {% for column in source_columns %}\n {% do quoted_source_columns.append(adapter.quote(column.name)) %}\n {% endfor %}\n {% set final_sql = snapshot_merge_sql(\n target = target_relation,\n source = staging_table,\n insert_cols = quoted_source_columns\n )\n %}\n {% endif %}\n {{ check_time_data_types(build_or_select_sql) }}\n {% call statement('main') %}\n {{ final_sql }}\n {% endcall %}\n\n {{ adapter.drop_relation(temp_snapshot_relation) }}\n {% set should_revoke = should_revoke(target_relation_exists, full_refresh_mode=False) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if not target_relation_exists %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n {{ adapter.commit() }}\n\n {% if staging_table is defined %}\n {% do post_snapshot(staging_table) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.get_or_create_relation", "macro.dbt.run_hooks", "macro.dbt.strategy_dispatch", "macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.build_snapshot_table", "macro.dbt.get_create_table_as_sql", "macro.dbt.get_snapshot_table_column_names", "macro.dbt.snapshot_staging_table", "macro.dbt_sqlserver.build_snapshot_staging_table", "macro.dbt.create_columns", "macro.dbt.snapshot_merge_sql", "macro.dbt.check_time_data_types", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes", "macro.dbt.post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9276857, "supported_languages": ["sql"]}, "macro.dbt_sqlserver.sqlserver__create_columns": {"name": "sqlserver__create_columns", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__create_columns", "macro_sql": "{% macro sqlserver__create_columns(relation, columns) %}\n {% set column_list %}\n {% for column_entry in columns %}\n {{column_entry.name}} {{column_entry.data_type}}{{ \", \" if not loop.last }}\n {% endfor %}\n {% endset %}\n\n {% set alter_sql %}\n ALTER TABLE {{ relation }}\n ADD {{ column_list }}\n {% endset %}\n\n {% set results = run_query(alter_sql) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9343176, "supported_languages": null}, "macro.dbt_sqlserver.build_snapshot_staging_table": {"name": "build_snapshot_staging_table", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt_sqlserver.build_snapshot_staging_table", "macro_sql": "{% macro build_snapshot_staging_table(strategy, temp_snapshot_relation, target_relation) %}\n {% set temp_relation = make_temp_relation(target_relation) %}\n {{ adapter.drop_relation(temp_relation) }}\n\n {% set select = snapshot_staging_table(strategy, temp_snapshot_relation, target_relation) %}\n\n {% set tmp_tble_vw_relation = temp_relation.incorporate(path={\"identifier\": temp_relation.identifier ~ '__dbt_tmp_vw'}, type='view')-%}\n -- Dropping temp view relation if it exists\n {{ adapter.drop_relation(tmp_tble_vw_relation) }}\n\n {% call statement('build_snapshot_staging_relation') %}\n {{ get_create_table_as_sql(True, temp_relation, select) }}\n {% endcall %}\n\n -- Dropping temp view relation if it exists\n {{ adapter.drop_relation(tmp_tble_vw_relation) }}\n\n {% do return(temp_relation) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_temp_relation", "macro.dbt.snapshot_staging_table", "macro.dbt.statement", "macro.dbt.get_create_table_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9366062, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__post_snapshot": {"name": "sqlserver__post_snapshot", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__post_snapshot", "macro_sql": "{% macro sqlserver__post_snapshot(staging_relation) %}\n -- Clean up the snapshot temp table\n {% do drop_relation_if_exists(staging_relation) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.drop_relation_if_exists"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9370706, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_true_sql": {"name": "sqlserver__get_true_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_true_sql", "macro_sql": "{% macro sqlserver__get_true_sql() %}\n {{ return('1=1') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.93742, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__build_snapshot_table": {"name": "sqlserver__build_snapshot_table", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__build_snapshot_table", "macro_sql": "{% macro sqlserver__build_snapshot_table(strategy, relation) %}\n {% set columns = config.get('snapshot_table_column_names') or get_snapshot_table_column_names() %}\n select *,\n {{ strategy.scd_id }} as {{ columns.dbt_scd_id }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ get_dbt_valid_to_current(strategy, columns) }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , 'False' as {{ columns.dbt_is_deleted }}\n {% endif -%}\n from (\n select * from {{ relation }}\n ) sbq\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.get_dbt_valid_to_current"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.939011, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__snapshot_staging_table": {"name": "sqlserver__snapshot_staging_table", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__snapshot_staging_table", "macro_sql": "{% macro sqlserver__snapshot_staging_table(strategy, temp_snapshot_relation, target_relation) -%}\n\n {% set columns = config.get('snapshot_table_column_names') or get_snapshot_table_column_names() %}\n\n with snapshot_query as (\n select * from {{ temp_snapshot_relation }}\n ),\n snapshotted_data as (\n select *,\n {{ unique_key_fields(strategy.unique_key) }}\n from {{ target_relation }}\n where\n {% if config.get('dbt_valid_to_current') %}\n {# Check for either dbt_valid_to_current OR null, in order to correctly update records with nulls #}\n ( {{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }} or {{ columns.dbt_valid_to }} is null)\n {% else %}\n {{ columns.dbt_valid_to }} is null\n {% endif %}\n {%- if strategy.hard_deletes == 'new_record' -%}\n and {{ columns.dbt_is_deleted }} = 'False'\n {% endif -%}\n ),\n insertions_source_data as (\n select *,\n {{ unique_key_fields(strategy.unique_key) }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ get_dbt_valid_to_current(strategy, columns) }},\n {{ strategy.scd_id }} as {{ columns.dbt_scd_id }}\n from snapshot_query\n ),\n updates_source_data as (\n select *,\n {{ unique_key_fields(strategy.unique_key) }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_to }}\n from snapshot_query\n ),\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n deletes_source_data as (\n select *, {{ unique_key_fields(strategy.unique_key) }}\n from snapshot_query\n ),\n {% endif %}\n insertions as (\n select 'insert' as dbt_change_type, source_data.*\n {%- if strategy.hard_deletes == 'new_record' -%}\n ,'False' as {{ columns.dbt_is_deleted }}\n {%- endif %}\n from insertions_source_data as source_data\n left outer join snapshotted_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"snapshotted_data\") }}\n or ({{ unique_key_is_not_null(strategy.unique_key, \"snapshotted_data\") }} and ({{ strategy.row_changed }}))\n ),\n updates as (\n select 'update' as dbt_change_type, source_data.*,\n snapshotted_data.{{ columns.dbt_scd_id }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , snapshotted_data.{{ columns.dbt_is_deleted }}\n {%- endif %}\n from updates_source_data as source_data\n join snapshotted_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where ({{ strategy.row_changed }})\n )\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n ,\n deletes as (\n select 'delete' as dbt_change_type,\n source_data.*,\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_from }},\n {{ snapshot_get_time() }} as {{ columns.dbt_updated_at }},\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_to }},\n snapshotted_data.{{ columns.dbt_scd_id }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , snapshotted_data.{{ columns.dbt_is_deleted }}\n {%- endif %}\n from snapshotted_data\n left join deletes_source_data as source_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"source_data\") }}\n )\n {%- endif %}\n {%- if strategy.hard_deletes == 'new_record' %}\n {%set source_query = \"select * from \"~temp_snapshot_relation%}\n {% set source_sql_cols = get_column_schema_from_query(source_query) %}\n ,\n deletion_records as (\n\n select\n 'insert' as dbt_change_type,\n {%- for col in source_sql_cols -%}\n snapshotted_data.{{ adapter.quote(col.column) }},\n {% endfor -%}\n {%- if strategy.unique_key | is_list -%}\n {%- for key in strategy.unique_key -%}\n snapshotted_data.{{ key }} as dbt_unique_key_{{ loop.index }},\n {% endfor -%}\n {%- else -%}\n snapshotted_data.dbt_unique_key as dbt_unique_key,\n {% endif -%}\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_from }},\n {{ snapshot_get_time() }} as {{ columns.dbt_updated_at }},\n snapshotted_data.{{ columns.dbt_valid_to }} as {{ columns.dbt_valid_to }},\n snapshotted_data.{{ columns.dbt_scd_id }},\n 'True' as {{ columns.dbt_is_deleted }}\n from snapshotted_data\n left join deletes_source_data as source_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"source_data\") }}\n )\n {%- endif %}\n select * from insertions\n union all\n select * from updates\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n union all\n select * from deletes\n {%- endif %}\n {%- if strategy.hard_deletes == 'new_record' %}\n union all\n select * from deletion_records\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.unique_key_fields", "macro.dbt.get_dbt_valid_to_current", "macro.dbt.unique_key_join_on", "macro.dbt.unique_key_is_null", "macro.dbt.unique_key_is_not_null", "macro.dbt.snapshot_get_time", "macro.dbt.get_column_schema_from_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9496565, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__snapshot_merge_sql": {"name": "sqlserver__snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__snapshot_merge_sql", "macro_sql": "{% macro sqlserver__snapshot_merge_sql(target, source, insert_cols) %}\n\n {%- set insert_cols_csv = insert_cols | join(', ') -%}\n {%- set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() -%}\n {%- set target_table = target.include(database=False) -%}\n {%- set source_table = source.include(database=False) -%}\n {% set target_columns_list = [] %}\n {% for column in insert_cols %}\n {% set target_columns_list = target_columns_list.append(\"DBT_INTERNAL_SOURCE.\"+column) %}\n {% endfor %}\n {%- set target_columns = target_columns_list | join(', ') -%}\n\n update DBT_INTERNAL_DEST\n set {{ columns.dbt_valid_to }} = DBT_INTERNAL_SOURCE.{{ columns.dbt_valid_to }}\n from {{ target_table }} as DBT_INTERNAL_DEST\n inner join {{ source_table }} as DBT_INTERNAL_SOURCE\n on DBT_INTERNAL_SOURCE.{{ columns.dbt_scd_id }} = DBT_INTERNAL_DEST.{{ columns.dbt_scd_id }}\n where DBT_INTERNAL_SOURCE.dbt_change_type in ('update', 'delete')\n {% if config.get(\"dbt_valid_to_current\") %}\n and (DBT_INTERNAL_DEST.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }} or DBT_INTERNAL_DEST.{{ columns.dbt_valid_to }} is null)\n {% else %}\n and DBT_INTERNAL_DEST.{{ columns.dbt_valid_to }} is null\n {% endif %}\n {{ get_query_options(parse_options=True) }}\n\n insert into {{ target_table }} ({{ insert_cols_csv }})\n select {{target_columns}} from {{ source_table }} as DBT_INTERNAL_SOURCE\n where DBT_INTERNAL_SOURCE.dbt_change_type = 'insert'\n {{ get_query_options(parse_options=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt_sqlserver.get_query_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9544327, "supported_languages": null}, "macro.dbt_sqlserver.materialization_view_sqlserver": {"name": "materialization_view_sqlserver", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/view/view.sql", "original_file_path": "macros/materializations/models/view/view.sql", "unique_id": "macro.dbt_sqlserver.materialization_view_sqlserver", "macro_sql": "{%- materialization view, adapter='sqlserver' -%}\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='view') -%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n This relation (probably) doesn't exist yet. If it does exist, it's a leftover from\n a previous run, and we're going to try to drop it immediately. At the end of this\n materialization, we're going to rename the \"existing_relation\" to this identifier,\n and then we're going to drop it. In order to make sure we run the correct one of:\n - drop view ...\n - drop table ...\n\n We need to set the type of this relation to be the type of the existing_relation, if it exists,\n or else \"view\" as a sane default if it does not. Note that if the existing_relation does not\n exist, then there is nothing to move out of the way and subsequentally drop. In that case,\n this relation will be effectively unused.\n */\n {%- set backup_relation_type = 'view' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n {% set preserved_grants = {} %}\n {% set should_skip_view_update = false %}\n {% set build_sql = none %}\n\n {% if existing_relation is not none and existing_relation.type != 'view' %}\n {% set current_grants_table = run_query(get_show_grant_sql(existing_relation)) %}\n {% set current_grants_dict = adapter.standardize_grants_dict(current_grants_table) %}\n {% set preserved_grants = {} %}\n {% for privilege, grantees in diff_of_two_dicts(current_grants_dict, grant_config).items() %}\n {% if privilege | lower in ['select', 'insert', 'update', 'delete'] %}\n {% do preserved_grants.update({privilege: grantees}) %}\n {% endif %}\n {% endfor %}\n {% set build_sql = get_create_view_as_sql(intermediate_relation, sql) %}\n {% elif existing_relation is not none and existing_relation.type == 'view' %}\n {% set current_view_definition_table = run_query(get_view_definition_sql(existing_relation)) %}\n {% if current_view_definition_table is not none and current_view_definition_table.rows | length > 0 %}\n {% set normalized_relation = target_relation.include(database=False) | lower | replace('\\n', '') | replace('\\r', '') | replace('\\t', '') | replace(' ', '') | replace(';', '') %}\n {% set normalized_sql = sql | lower | replace('\\n', '') | replace('\\r', '') | replace('\\t', '') | replace(' ', '') | replace(';', '') %}\n {% set normalized_definition = current_view_definition_table.rows[0][0] | lower | replace('\\n', '') | replace('\\r', '') | replace('\\t', '') | replace(' ', '') | replace(';', '') %}\n {% set should_skip_view_update = normalized_definition.endswith(normalized_sql) %}\n {% endif %}\n {% if should_skip_view_update %}\n {% set build_sql = 'declare @dbt_sqlserver_noop int;' %}\n {% else %}\n {% set build_sql = get_create_view_as_sql(target_relation, sql) %}\n {% endif %}\n {% else %}\n {% set build_sql = get_create_view_as_sql(target_relation, sql) %}\n {% endif %}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% if existing_relation is not none and existing_relation.type != 'view' %}\n -- build model\n {% call statement('main') -%}\n {{ build_sql }}\n {%- endcall %}\n\n -- cleanup\n -- move the existing relation out of the way\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n {% else %}\n -- build model\n {% call statement('main') -%}\n {{ build_sql }}\n {%- endcall %}\n {% endif %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% if preserved_grants %}\n {% do apply_grants(target_relation, preserved_grants, should_revoke=False) %}\n {% endif %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n {{ drop_relation_if_exists(backup_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.run_query", "macro.dbt.get_show_grant_sql", "macro.dbt.get_create_view_as_sql", "macro.dbt_sqlserver.get_view_definition_sql", "macro.dbt.run_hooks", "macro.dbt.drop_relation_if_exists", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9710395, "supported_languages": ["sql"]}, "macro.dbt_sqlserver.sqlserver__create_view_exec": {"name": "sqlserver__create_view_exec", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__create_view_exec", "macro_sql": "{% macro sqlserver__create_view_exec(relation, sql) -%}\n\n {%- set temp_view_sql = sql.replace(\"'\", \"''\") -%}\n {{ get_use_database_sql(relation.database) }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {%- endif %}\n\n EXEC('create view {{ relation.include(database=False) }} as {{ temp_view_sql }};');\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt_sqlserver.get_use_database_sql", "macro.dbt.get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.973476, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_incremental_default_sql": {"name": "sqlserver__get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/incremental/incremental_strategies.sql", "original_file_path": "macros/materializations/models/incremental/incremental_strategies.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_incremental_default_sql", "macro_sql": "{% macro sqlserver__get_incremental_default_sql(arg_dict) %}\n\n {% if arg_dict[\"unique_key\"] %}\n -- Delete + Insert Strategy, calls get_delete_insert_merge_sql\n {% do return(get_incremental_merge_sql(arg_dict)) %}\n {% else %}\n -- Incremental Append will insert data into target table.\n {% do return(get_incremental_append_sql(arg_dict)) %}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_merge_sql", "macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9748266, "supported_languages": null}, "macro.dbt_sqlserver.materialization_incremental_sqlserver": {"name": "materialization_incremental_sqlserver", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/incremental/incremental.sql", "original_file_path": "macros/materializations/models/incremental/incremental.sql", "unique_id": "macro.dbt_sqlserver.materialization_incremental_sqlserver", "macro_sql": "{% materialization incremental, adapter='sqlserver' -%}\n\n -- relations\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') -%}\n {%- set temp_relation = make_temp_relation(target_relation)-%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation)-%}\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n\n -- configs\n {%- set unique_key = config.get('unique_key') -%}\n {%- set full_refresh_mode = (should_full_refresh() or existing_relation.is_view) -%}\n {%- set on_schema_change = incremental_validate_on_schema_change(config.get('on_schema_change'), default='ignore') -%}\n\n -- the temp_ and backup_ relations should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation. This has to happen before\n -- BEGIN, in a separate transaction\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation)-%}\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set to_drop = [] %}\n\n {% if existing_relation is none %}\n {% set build_sql = get_create_table_as_sql(False, target_relation, sql) %}\n {% elif full_refresh_mode %}\n {% set build_sql = get_create_table_as_sql(False, intermediate_relation, sql) %}\n {% set need_swap = true %}\n {% else %}\n\n {% do run_query(get_create_table_as_sql(True, temp_relation, sql)) %}\n\n {% set contract_config = config.get('contract') %}\n {% if not contract_config or not contract_config.enforced %}\n {% do adapter.expand_target_column_types(\n from_relation=temp_relation,\n to_relation=target_relation) %}\n {% endif %}\n {#-- Process schema changes. Returns dict of changes if successful. Use source columns for upserting/merging --#}\n {% set dest_columns = process_schema_changes(on_schema_change, temp_relation, existing_relation) %}\n {% if not dest_columns %}\n {% set dest_columns = adapter.get_columns_in_relation(existing_relation) %}\n {% endif %}\n\n {#-- Get the incremental_strategy, the macro to use for the strategy, and build the sql --#}\n {% set incremental_strategy = config.get('incremental_strategy') or 'default' %}\n {% set incremental_predicates = config.get('predicates', none) or config.get('incremental_predicates', none) %}\n {% set strategy_sql_macro_func = adapter.get_incremental_strategy_macro(context, incremental_strategy) %}\n {% set strategy_arg_dict = ({'target_relation': target_relation, 'temp_relation': temp_relation, 'unique_key': unique_key, 'dest_columns': dest_columns, 'incremental_predicates': incremental_predicates }) %}\n {% set build_sql = strategy_sql_macro_func(strategy_arg_dict) %}\n\n {% do to_drop.append(temp_relation) %}\n {% endif %}\n\n {% call statement(\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% if need_swap %}\n {% do adapter.rename_relation(target_relation, backup_relation) %}\n {% do adapter.rename_relation(intermediate_relation, target_relation) %}\n {% do to_drop.append(backup_relation) %}\n {% endif %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if existing_relation is none or existing_relation.is_view or should_full_refresh() %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n -- `COMMIT` happens here\n {% do adapter.commit() %}\n\n {% for rel in to_drop %}\n {% do adapter.drop_relation(rel) %}\n {% endfor %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_temp_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.should_full_refresh", "macro.dbt.incremental_validate_on_schema_change", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt.get_create_table_as_sql", "macro.dbt.run_query", "macro.dbt.process_schema_changes", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9878411, "supported_languages": ["sql"]}, "macro.dbt_sqlserver.sqlserver__get_merge_sql": {"name": "sqlserver__get_merge_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_merge_sql", "macro_sql": "{% macro sqlserver__get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) %}\n {{ default__get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) }}\n {{ get_query_options(parse_options=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_sql", "macro.dbt_sqlserver.get_query_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9909644, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_insert_overwrite_merge_sql": {"name": "sqlserver__get_insert_overwrite_merge_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_insert_overwrite_merge_sql", "macro_sql": "{% macro sqlserver__get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header) %}\n {{ default__get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header) }};\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9916117, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_delete_insert_merge_sql": {"name": "sqlserver__get_delete_insert_merge_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_delete_insert_merge_sql", "macro_sql": "{% macro sqlserver__get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) %}\n\n {% set query_label = get_query_options(parse_options=True) %}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n {% if unique_key %}\n {% if unique_key is sequence and unique_key is not string %}\n delete from {{ target }}\n where exists (\n select null\n from {{ source }}\n where\n {% for key in unique_key %}\n {{ source }}.{{ key }} = {{ target }}.{{ key }}\n {{ \"and \" if not loop.last }}\n {% endfor %}\n )\n {% if incremental_predicates %}\n {% for predicate in incremental_predicates %}\n and {{ predicate }}\n {% endfor %}\n {% endif %}\n {{ query_label }}\n {% else %}\n delete from {{ target }}\n where (\n {{ unique_key }}) in (\n select ({{ unique_key }})\n from {{ source }}\n )\n {%- if incremental_predicates %}\n {% for predicate in incremental_predicates %}\n and {{ predicate }}\n {% endfor %}\n {%- endif -%}\n {{ query_label }}\n {% endif %}\n {% endif %}\n\n insert into {{ target }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ source }}\n ){{ query_label }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.get_query_options", "macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269919.9952846, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_incremental_microbatch_sql": {"name": "sqlserver__get_incremental_microbatch_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_incremental_microbatch_sql", "macro_sql": "{% macro sqlserver__get_incremental_microbatch_sql(arg_dict) %}\n {%- set target = arg_dict[\"target_relation\"] -%}\n {%- set source = arg_dict[\"temp_relation\"] -%}\n {%- set dest_columns = arg_dict[\"dest_columns\"] -%}\n {%- set incremental_predicates = [] if arg_dict.get('incremental_predicates') is none else arg_dict.get('incremental_predicates') -%}\n {%- set query_label = get_query_options(parse_options=True) -%}\n\n {#-- Add additional incremental_predicates to filter for batch --#}\n {% if model.config.get(\"__dbt_internal_microbatch_event_time_start\") -%}\n {{ log(\"incremental append event start time > DBT_INTERNAL_TARGET.\" ~ model.config.event_time ~ \" >= cast('\" ~ model.config.__dbt_internal_microbatch_event_time_start ~ \"' as datetimeoffset)\") }}\n {% do incremental_predicates.append(\"DBT_INTERNAL_TARGET.\" ~ model.config.event_time ~ \" >= cast('\" ~ model.config.__dbt_internal_microbatch_event_time_start ~ \"' as datetimeoffset)\") %}\n {% endif %}\n {% if model.config.__dbt_internal_microbatch_event_time_end -%}\n {{ log(\"incremental append event end time < DBT_INTERNAL_TARGET.\" ~ model.config.event_time ~ \" < cast('\" ~ model.config.__dbt_internal_microbatch_event_time_end ~ \"' as datetimeoffset)\") }}\n {% do incremental_predicates.append(\"DBT_INTERNAL_TARGET.\" ~ model.config.event_time ~ \" < cast('\" ~ model.config.__dbt_internal_microbatch_event_time_end ~ \"' as datetimeoffset)\") %}\n {% endif %}\n {% do arg_dict.update({'incremental_predicates': incremental_predicates}) %}\n\n delete DBT_INTERNAL_TARGET from {{ target }} AS DBT_INTERNAL_TARGET\n where (\n {% for predicate in incremental_predicates %}\n {%- if not loop.first %}and {% endif -%} {{ predicate }}\n {% endfor %}\n )\n {{ query_label }}\n\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n insert into {{ target }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ source }}\n )\n {{ query_label }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.get_query_options", "macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0004308, "supported_languages": null}, "macro.dbt_sqlserver.materialization_table_sqlserver": {"name": "materialization_table_sqlserver", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/table/table.sql", "original_file_path": "macros/materializations/models/table/table.sql", "unique_id": "macro.dbt_sqlserver.materialization_table_sqlserver", "macro_sql": "{% materialization table, adapter='sqlserver' %}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') %}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n See ../view/view.sql for more information about this relation.\n */\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n {%- set table_refresh_method = config.get('table_refresh_method', 'rename') -%}\n {%- if table_refresh_method not in ['rename', 'dml'] -%}\n {{ exceptions.raise_compiler_error(\n \"Invalid table_refresh_method '\" ~ table_refresh_method ~ \"'. \"\n \"Valid values are: 'rename' (default), 'dml'.\"\n ) }}\n {%- endif -%}\n {%- set use_dml_refresh = (\n table_refresh_method == 'dml'\n and existing_relation is not none\n and existing_relation.type == 'table'\n ) -%}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% if use_dml_refresh %}\n {{ sqlserver__table_dml_refresh(target_relation, sql) }}\n {% else %}\n -- build model\n {% call statement('main') -%}\n {{ get_create_table_as_sql(False, intermediate_relation, sql) }}\n {%- endcall %}\n\n -- cleanup\n {% if existing_relation is not none %}\n /* Do the equivalent of rename_if_exists. 'existing_relation' could have been dropped\n since the variable was first set. */\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n {% endif %}\n\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n -- `COMMIT` happens here\n {{ adapter.commit() }}\n\n {% if not use_dml_refresh %}\n -- finally, drop the existing/backup relation after the commit\n {{ drop_relation_if_exists(backup_relation) }}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt_sqlserver.sqlserver__table_dml_refresh", "macro.dbt.statement", "macro.dbt.get_create_table_as_sql", "macro.dbt.create_indexes", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0093877, "supported_languages": ["sql"]}, "macro.dbt_sqlserver.sqlserver__table_dml_refresh": {"name": "sqlserver__table_dml_refresh", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/table/table_dml_refresh.sql", "original_file_path": "macros/materializations/models/table/table_dml_refresh.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__table_dml_refresh", "macro_sql": "{% macro sqlserver__table_dml_refresh(target_relation, sql) %}\n {#\n DML-only table refresh for use under RCSI.\n\n Instead of rename-swap (which uses DDL and creates a window where the\n table name doesnt resolve), this macro:\n 1. Builds new data into a scratch table via SELECT INTO (minimally logged)\n 2. Compares schemas \u2014 if columns changed, falls back to rename-swap\n 3. Swaps data via DELETE + INSERT inside an explicit transaction\n (RCSI ensures concurrent readers see old data until COMMIT)\n 4. Cleans up the scratch table\n\n The scratch table is a regular table with a __dbt_refresh suffix,\n not a global temp table. This avoids cross-session visibility issues\n and ensures cleanup on failure (DROP IF EXISTS at the start of each run).\n #}\n\n {%- set refresh_relation = target_relation.incorporate(\n path={\"identifier\": target_relation.identifier ~ '__dbt_refresh'}\n ) -%}\n {%- set tmp_vw_relation = refresh_relation.incorporate(\n path={\"identifier\": refresh_relation.identifier ~ '__dbt_tmp_vw'}\n ) -%}\n\n {# Clean up any leftovers from a prior failed run #}\n {% call statement('dml_refresh_cleanup_pre') -%}\n DROP VIEW IF EXISTS {{ tmp_vw_relation.include(database=False) }};\n DROP TABLE IF EXISTS {{ refresh_relation }};\n {%- endcall %}\n\n {# Build new data into scratch table via temp view (handles CTEs in model SQL) #}\n {# Named 'main' because dbt requires a statement('main') call in every materialization #}\n {% call statement('dml_refresh_create_view') -%}\n {{ get_create_view_as_sql(tmp_vw_relation, sql) }}\n {%- endcall %}\n\n {% call statement('main') -%}\n SELECT * INTO {{ refresh_relation }} FROM {{ tmp_vw_relation }};\n {%- endcall %}\n\n {% call statement('dml_refresh_drop_view') -%}\n DROP VIEW IF EXISTS {{ tmp_vw_relation.include(database=False) }};\n {%- endcall %}\n\n {# Compare schemas: if columns differ, fall back to rename-swap #}\n {%- set schema_changes = check_for_schema_changes(refresh_relation, target_relation) -%}\n {%- set schema_match = not schema_changes['schema_changed'] -%}\n\n {% if schema_match %}\n {# Use the target's physical column order for both INSERT and SELECT. #}\n {# The scratch table has the same columns but possibly in a different order, #}\n {# so naming columns explicitly makes the swap order-independent. #}\n {%- set target_columns = adapter.get_columns_in_relation(target_relation) -%}\n {%- set column_list = target_columns | map(attribute='quoted') | join(', ') -%}\n\n {# Atomic DML swap \u2014 RCSI protects concurrent readers #}\n {# dbt-sqlserver uses autocommit=True and add_begin_query/add_commit_query #}\n {# are no-ops, so this creates a simple (non-nested) transaction. #}\n {% call statement('dml_refresh_swap') -%}\n BEGIN TRANSACTION;\n DELETE FROM {{ target_relation }};\n INSERT INTO {{ target_relation }} ({{ column_list }})\n SELECT {{ column_list }} FROM {{ refresh_relation }};\n COMMIT TRANSACTION;\n {%- endcall %}\n\n {# Cleanup scratch table #}\n {% call statement('dml_refresh_cleanup_post') -%}\n DROP TABLE IF EXISTS {{ refresh_relation }};\n {%- endcall %}\n\n {% else %}\n {# Schema changed \u2014 fall back to rename-swap for this run #}\n {{ log(\"Schema change detected for \" ~ target_relation ~ \" \u2014 falling back to rename-swap\", info=true) }}\n\n {%- set backup_relation_type = target_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n {{ drop_relation_if_exists(backup_relation) }}\n\n {# Rename scratch table into position #}\n {% set existing_relation = load_cached_relation(target_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n\n {{ adapter.rename_relation(refresh_relation, target_relation) }}\n\n {% do create_indexes(target_relation) %}\n\n {{ drop_relation_if_exists(backup_relation) }}\n\n {# scratch table is now the target, nothing to drop #}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.check_for_schema_changes", "macro.dbt.make_backup_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.load_cached_relation", "macro.dbt.create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0177884, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__create_or_replace_clone": {"name": "sqlserver__create_or_replace_clone", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/table/clone.sql", "original_file_path": "macros/materializations/models/table/clone.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__create_or_replace_clone", "macro_sql": "{% macro sqlserver__create_or_replace_clone(target_relation, defer_relation) %}\n CREATE TABLE {{target_relation}}\n AS CLONE OF {{defer_relation}}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.018528, "supported_languages": null}, "macro.dbt_sqlserver.build_columns_constraints": {"name": "build_columns_constraints", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/table/columns_spec_ddl.sql", "original_file_path": "macros/materializations/models/table/columns_spec_ddl.sql", "unique_id": "macro.dbt_sqlserver.build_columns_constraints", "macro_sql": "{% macro build_columns_constraints(relation) %}\n {{ return(adapter.dispatch('build_columns_constraints', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__build_columns_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0198956, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__build_columns_constraints": {"name": "sqlserver__build_columns_constraints", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/table/columns_spec_ddl.sql", "original_file_path": "macros/materializations/models/table/columns_spec_ddl.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__build_columns_constraints", "macro_sql": "{% macro sqlserver__build_columns_constraints(relation) %}\n {# loop through user_provided_columns to create DDL with data types and constraints #}\n {%- set raw_column_constraints = adapter.render_raw_columns_constraints(raw_columns=model['columns']) -%}\n (\n {% for c in raw_column_constraints -%}\n {{ c }}{{ \",\" if not loop.last }}\n {% endfor %}\n )\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0209346, "supported_languages": null}, "macro.dbt_sqlserver.build_model_constraints": {"name": "build_model_constraints", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/table/columns_spec_ddl.sql", "original_file_path": "macros/materializations/models/table/columns_spec_ddl.sql", "unique_id": "macro.dbt_sqlserver.build_model_constraints", "macro_sql": "{% macro build_model_constraints(relation) %}\n {{ return(adapter.dispatch('build_model_constraints', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__build_model_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0214808, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__build_model_constraints": {"name": "sqlserver__build_model_constraints", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/table/columns_spec_ddl.sql", "original_file_path": "macros/materializations/models/table/columns_spec_ddl.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__build_model_constraints", "macro_sql": "{% macro sqlserver__build_model_constraints(relation) %}\n {# loop through user_provided_columns to create DDL with data types and constraints #}\n {%- set raw_model_constraints = adapter.render_raw_model_constraints(raw_constraints=model['constraints']) -%}\n {% for c in raw_model_constraints -%}\n {% set alter_table_script %}\n alter table {{ relation.include(database=False) }} {{c}};\n {%endset%}\n {% call statement('alter_table_add_constraint') -%}\n {{alter_table_script}}\n {%- endcall %}\n {% endfor -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0228207, "supported_languages": null}, "macro.dbt_sqlserver.check_for_nested_cte": {"name": "check_for_nested_cte", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/unit_test/unit_test_create_table_as.sql", "original_file_path": "macros/materializations/models/unit_test/unit_test_create_table_as.sql", "unique_id": "macro.dbt_sqlserver.check_for_nested_cte", "macro_sql": "{% macro check_for_nested_cte(sql) %}\n {% if execute %} {# Ensure this runs only at execution time #}\n {% set cleaned_sql = sql | lower | replace(\"\\n\", \" \") %} {# Convert to lowercase and remove newlines #}\n {% set cte_count = cleaned_sql.count(\"with \") %} {# Count occurrences of \"WITH \" #}\n {% if cte_count > 1 %}\n {{ return(True) }}\n {% else %}\n {{ return(False) }} {# No nested CTEs found #}\n {% endif %}\n {% else %}\n {{ return(False) }} {# Return False during parsing #}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0259228, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__unit_test_create_table_as": {"name": "sqlserver__unit_test_create_table_as", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/materializations/models/unit_test/unit_test_create_table_as.sql", "original_file_path": "macros/materializations/models/unit_test/unit_test_create_table_as.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__unit_test_create_table_as", "macro_sql": "{% macro sqlserver__unit_test_create_table_as(temporary, relation, sql) -%}\n {% set query_label = get_query_options(parse_options=True) %}\n {% set contract_config = config.get('contract') %}\n {% set is_nested_cte = check_for_nested_cte(sql) %}\n\n {% if is_nested_cte %}\n {{ exceptions.warn(\n \"Nested CTE warning: Nested CTE's do not support CTAS. However, 2-level nested CTEs are supported due to a code bug. Please expect this fix in the future.\"\n ) }}\n {% endif %}\n\n {% if is_nested_cte and contract_config.enforced %}\n\n {{ exceptions.raise_compiler_error(\n \"Unit test Materialization error: Since the contract is enforced and the model contains a nested CTE, unit tests cannot be materialized. Please refactor your model or unenforce model and try again.\"\n ) }}\n\n {%- elif not is_nested_cte and contract_config.enforced %}\n\n CREATE TABLE {{relation}}\n {{ build_columns_constraints(relation) }}\n {{ get_assert_columns_equivalent(sql) }}\n\n {% set listColumns %}\n {% for column in model['columns'] %}\n {{ \"[\"~column~\"]\" }}{{ \", \" if not loop.last }}\n {% endfor %}\n {%endset%}\n\n {% set tmp_vw_relation = relation.incorporate(path={\"identifier\": relation.identifier ~ '__dbt_tmp_vw'}, type='view')-%}\n {% do adapter.drop_relation(tmp_vw_relation) %}\n {{ get_create_view_as_sql(tmp_vw_relation, sql) }}\n\n INSERT INTO {{relation}} ({{listColumns}})\n SELECT {{listColumns}} FROM {{tmp_vw_relation}} {{ query_label }}\n\n {%- else %}\n\n {%- set query_label_option = query_label.replace(\"'\", \"''\") -%}\n {%- set sql_with_quotes = sql.replace(\"'\", \"''\") -%}\n EXEC('CREATE TABLE {{relation}} AS {{sql_with_quotes}} {{ query_label_option }}');\n\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.get_query_options", "macro.dbt_sqlserver.check_for_nested_cte", "macro.dbt_sqlserver.build_columns_constraints", "macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_create_view_as_sql", "macro.dbt.replace"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0306664, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__concat": {"name": "sqlserver__concat", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__concat", "macro_sql": "{% macro sqlserver__concat(fields) -%}\n {%- if fields|length < 2 -%}\n {{ fields[0] }}\n {%- else -%}\n concat({{ fields|join(', ') }})\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.031743, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__dateadd": {"name": "sqlserver__dateadd", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__dateadd", "macro_sql": "{% macro sqlserver__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n cast({{ from_date_or_timestamp }} as datetime2(6))\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0324368, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__array_construct": {"name": "sqlserver__array_construct", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__array_construct", "macro_sql": "{% macro sqlserver__array_construct(inputs, data_type) -%}\n JSON_ARRAY({{ inputs|join(' , ') }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0329819, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__last_day": {"name": "sqlserver__last_day", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__last_day", "macro_sql": "{% macro sqlserver__last_day(date, datepart) -%}\n\n {%- if datepart == 'quarter' -%}\n \tCAST(DATEADD(QUARTER, DATEDIFF(QUARTER, 0, {{ date }}) + 1, -1) AS DATE)\n {%- elif datepart == 'month' -%}\n EOMONTH ( {{ date }})\n {%- elif datepart == 'year' -%}\n CAST(DATEADD(YEAR, DATEDIFF(year, 0, {{ date }}) + 1, -1) AS DATE)\n {%- else -%}\n {{dbt_utils.default_last_day(date, datepart)}}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0344033, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__safe_cast": {"name": "sqlserver__safe_cast", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__safe_cast", "macro_sql": "{% macro sqlserver__safe_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0349157, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__hash": {"name": "sqlserver__hash", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__hash", "macro_sql": "{% macro sqlserver__hash(field) %}\n lower(convert(varchar(50), hashbytes('md5', coalesce(convert(varchar(8000), {{field}}), '')), 2))\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.035333, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__listagg": {"name": "sqlserver__listagg", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__listagg", "macro_sql": "{% macro sqlserver__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n string_agg({{ measure }}, {{ delimiter_text }})\n {%- if order_by_clause != None %}\n within group ({{ order_by_clause }})\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.036218, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_tables_by_pattern_sql": {"name": "sqlserver__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/get_tables_by_pattern.sql", "original_file_path": "macros/utils/get_tables_by_pattern.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_tables_by_pattern_sql", "macro_sql": "{% macro sqlserver__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n select distinct\n table_schema as {{ adapter.quote('table_schema') }},\n table_name as {{ adapter.quote('table_name') }},\n {{ dbt_utils.get_table_types_sql() }}\n from {{ database }}.INFORMATION_SCHEMA.TABLES\n where table_schema like '{{ schema_pattern }}'\n and table_name like '{{ table_pattern }}'\n and table_name not like '{{ exclude }}'\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0375888, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__length": {"name": "sqlserver__length", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__length", "macro_sql": "{% macro sqlserver__length(expression) %}\n\n len( {{ expression }} )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0380077, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__any_value": {"name": "sqlserver__any_value", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__any_value", "macro_sql": "{% macro sqlserver__any_value(expression) -%}\n\n min({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.038403, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__date_trunc": {"name": "sqlserver__date_trunc", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__date_trunc", "macro_sql": "{% macro sqlserver__date_trunc(datepart, date) %}\n CAST(DATEADD({{datepart}}, DATEDIFF({{datepart}}, 0, {{date}}), 0) AS DATE)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0389814, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__split_part": {"name": "sqlserver__split_part", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__split_part", "macro_sql": "{% macro sqlserver__split_part(string_text, delimiter_text, part_number) %}\n {% if part_number >= 0 %}\n LTRIM(CAST((''+REPLACE({{ string_text }},{{ delimiter_text }} ,'')+'') AS XML).value('(/X)[{{ part_number }}]', 'VARCHAR(128)'))\n {% else %}\n LTRIM(CAST((''+REPLACE({{ string_text }},{{ delimiter_text }} ,'')+'') AS XML).value('(/X)[position() = last(){{ part_number }}+1][1]', 'VARCHAR(128)'))\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.040379, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__current_timestamp": {"name": "sqlserver__current_timestamp", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/timestamps.sql", "original_file_path": "macros/utils/timestamps.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__current_timestamp", "macro_sql": "{% macro sqlserver__current_timestamp() -%}\n CAST(SYSDATETIME() AS DATETIME2(6))\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0408194, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__snapshot_string_as_time": {"name": "sqlserver__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/timestamps.sql", "original_file_path": "macros/utils/timestamps.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__snapshot_string_as_time", "macro_sql": "{% macro sqlserver__snapshot_string_as_time(timestamp) -%}\n {%- set result = \"CONVERT(DATETIME2(6), '\" ~ timestamp ~ \"')\" -%}\n {{ return(result) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0413558, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__cast_bool_to_text": {"name": "sqlserver__cast_bool_to_text", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__cast_bool_to_text", "macro_sql": "{% macro sqlserver__cast_bool_to_text(field) %}\n case {{ field }}\n when 1 then 'true'\n when 0 then 'false'\n else null\n end\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0418215, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__position": {"name": "sqlserver__position", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__position", "macro_sql": "{% macro sqlserver__position(substring_text, string_text) %}\n\n CHARINDEX(\n {{ substring_text }},\n {{ string_text }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0423462, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__make_temp_relation": {"name": "sqlserver__make_temp_relation", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__make_temp_relation", "macro_sql": "{% macro sqlserver__make_temp_relation(base_relation, suffix='__dbt_temp') %}\n {%- set temp_identifier = base_relation.identifier ~ suffix -%}\n {%- set temp_relation = base_relation.incorporate(\n path={\"identifier\": temp_identifier}) -%}\n\n {{ return(temp_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0444021, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_drop_sql": {"name": "sqlserver__get_drop_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_drop_sql", "macro_sql": "{% macro sqlserver__get_drop_sql(relation) -%}\n {% if relation.type == 'view' -%}\n {% call statement('find_references', fetch_result=true) %}\n {{ get_use_database_sql(relation.database) }}\n select\n sch.name as schema_name,\n obj.name as view_name\n from sys.sql_expression_dependencies refs\n inner join sys.objects obj\n on refs.referencing_id = obj.object_id\n inner join sys.schemas sch\n on obj.schema_id = sch.schema_id\n where refs.referenced_database_name = '{{ relation.database }}'\n and refs.referenced_schema_name = '{{ relation.schema }}'\n and refs.referenced_entity_name = '{{ relation.identifier }}'\n and obj.type = 'V'\n {{ get_query_options() }}\n {% endcall %}\n {% set references = load_result('find_references')['data'] %}\n {% for reference in references -%}\n -- dropping referenced view {{ reference[0] }}.{{ reference[1] }}\n {% do adapter.drop_relation\n (api.Relation.create(\n identifier = reference[1], schema = reference[0], database = relation.database, type='view'\n ))%}\n {% endfor %}\n {% elif relation.type == 'table'%}\n {% set object_id_type = 'U' %}\n {%- else -%}\n {{ exceptions.raise_not_implemented('Invalid relation being dropped: ' ~ relation) }}\n {% endif %}\n {{ get_use_database_sql(relation.database) }}\n EXEC('DROP {{ relation.type }} IF EXISTS {{ relation.include(database=False) }};');\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_sqlserver.get_use_database_sql", "macro.dbt_sqlserver.get_query_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.048081, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__rename_relation": {"name": "sqlserver__rename_relation", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__rename_relation", "macro_sql": "{% macro sqlserver__rename_relation(from_relation, to_relation) -%}\n {% call statement('rename_relation') -%}\n {{ get_use_database_sql(from_relation.database) }}\n EXEC sp_rename '{{ from_relation.schema }}.{{ from_relation.identifier }}', '{{ to_relation.identifier }}'\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_sqlserver.get_use_database_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0493982, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__truncate_relation": {"name": "sqlserver__truncate_relation", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__truncate_relation", "macro_sql": "{% macro sqlserver__truncate_relation(relation) -%}\n {% call statement('truncate_relation') -%}\n truncate table {{ relation }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0499191, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__create_schema": {"name": "sqlserver__create_schema", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__create_schema", "macro_sql": "{% macro sqlserver__create_schema(relation) -%}\n {% call statement('create_schema') -%}\n USE [{{ relation.database }}];\n IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = '{{ relation.schema }}')\n BEGIN\n EXEC('CREATE SCHEMA [{{ relation.schema }}]')\n END\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0519528, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__create_schema_with_authorization": {"name": "sqlserver__create_schema_with_authorization", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__create_schema_with_authorization", "macro_sql": "{% macro sqlserver__create_schema_with_authorization(relation, schema_authorization) -%}\n {% call statement('create_schema') -%}\n {{ get_use_database_sql(relation.database) }}\n IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = '{{ relation.schema }}')\n BEGIN\n EXEC('CREATE SCHEMA [{{ relation.schema }}] AUTHORIZATION [{{ schema_authorization }}]')\n END\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_sqlserver.get_use_database_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0528488, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__drop_schema": {"name": "sqlserver__drop_schema", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__drop_schema", "macro_sql": "{% macro sqlserver__drop_schema(relation) -%}\n {%- set relations_in_schema = list_relations_without_caching(relation) %}\n\n {% for row in relations_in_schema %}\n {%- set schema_relation = api.Relation.create(database=relation.database,\n schema=relation.schema,\n identifier=row[1],\n type=row[3]\n ) -%}\n {% do adapter.drop_relation(schema_relation) %}\n {%- endfor %}\n\n {% call statement('drop_schema') -%}\n {{ get_use_database_sql(relation.database) }}\n EXEC('DROP SCHEMA IF EXISTS {{ relation.schema }}')\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.list_relations_without_caching", "macro.dbt.statement", "macro.dbt_sqlserver.get_use_database_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0545757, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__drop_schema_named": {"name": "sqlserver__drop_schema_named", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__drop_schema_named", "macro_sql": "{% macro sqlserver__drop_schema_named(schema_name) %}\n {% set schema_relation = api.Relation.create(schema=schema_name) %}\n {{ adapter.drop_schema(schema_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0552397, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__generate_schema_name": {"name": "sqlserver__generate_schema_name", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__generate_schema_name", "macro_sql": "{% macro sqlserver__generate_schema_name(custom_schema_name, node) -%}\n {%- if adapter.behavior.dbt_sqlserver_use_default_schema_concat -%}\n {{ default__generate_schema_name(custom_schema_name, node) }}\n {%- elif var('dbt_sqlserver_use_default_schema_concat', false) -%}\n {{ default__generate_schema_name(custom_schema_name, node) }}\n {%- else -%}\n {%- set default_schema = target.schema -%}\n {%- if custom_schema_name is none -%}\n {{ default_schema }}\n {%- else -%}\n {{ custom_schema_name | trim }}\n {%- endif -%}\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0566516, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_empty_subquery_sql": {"name": "sqlserver__get_empty_subquery_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_empty_subquery_sql", "macro_sql": "{% macro sqlserver__get_empty_subquery_sql(select_sql, select_sql_header=none) %}\n {%- set select_sql_stripped = modules.re.sub('(?s)/\\\\*.*?\\\\*/|--[^\\n]*\\n', '', select_sql) -%}\n {% if select_sql_stripped.strip().lower().startswith('with') %}\n {{ select_sql }}\n {% else -%}\n select * from (\n {{ select_sql }}\n ) dbt_sbq_tmp\n where 1 = 0\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0596619, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_columns_in_query": {"name": "sqlserver__get_columns_in_query", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_columns_in_query", "macro_sql": "{% macro sqlserver__get_columns_in_query(select_sql) %}\n {% set query_label = get_query_options() %}\n {% call statement('get_columns_in_query', fetch_result=True, auto_begin=False) -%}\n select TOP 0 * from (\n {{ select_sql }}\n ) as __dbt_sbq\n where 0 = 1\n {{ query_label }}\n {% endcall %}\n\n {{ return(load_result('get_columns_in_query').table.columns | map(attribute='name') | list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.get_query_options", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0609796, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__alter_column_type": {"name": "sqlserver__alter_column_type", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__alter_column_type", "macro_sql": "{% macro sqlserver__alter_column_type(relation, column_name, new_column_type) %}\n\n {%- set tmp_column = column_name + \"__dbt_alter\" -%}\n {% set alter_column_type %}\n alter {{ relation.type }} {{ relation }} add \"{{ tmp_column }}\" {{ new_column_type }};\n {%- endset %}\n\n {% set update_column %}\n update {{ relation }} set \"{{ tmp_column }}\" = \"{{ column_name }}\";\n {%- endset %}\n\n {% set drop_column %}\n alter {{ relation.type }} {{ relation }} drop column \"{{ column_name }}\";\n {%- endset %}\n\n {% set rename_column %}\n exec sp_rename '{{ relation | replace('\"', '') }}.{{ tmp_column }}', '{{ column_name }}', 'column'\n {%- endset %}\n\n {% do run_query(alter_column_type) %}\n {% do run_query(update_column) %}\n {% do run_query(drop_column) %}\n {% do run_query(rename_column) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0634823, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__alter_relation_add_remove_columns": {"name": "sqlserver__alter_relation_add_remove_columns", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__alter_relation_add_remove_columns", "macro_sql": "{% macro sqlserver__alter_relation_add_remove_columns(relation, add_columns, remove_columns) %}\n {% call statement('add_drop_columns') -%}\n {% if add_columns %}\n alter {{ relation.type }} {{ relation }}\n add {% for column in add_columns %}\"{{ column.name }}\" {{ column.data_type }}{{ ', ' if not loop.last }}{% endfor %};\n {% endif %}\n\n {% if remove_columns %}\n alter {{ relation.type }} {{ relation }}\n drop column {% for column in remove_columns %}\"{{ column.name }}\"{{ ',' if not loop.last }}{% endfor %};\n {% endif %}\n {%- endcall -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0654593, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_columns_in_relation": {"name": "sqlserver__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_columns_in_relation", "macro_sql": "{% macro sqlserver__get_columns_in_relation(relation) -%}\n {% set query_label = get_query_options() %}\n {% call statement('get_columns_in_relation', fetch_result=True) %}\n {{ get_use_database_sql(relation.database) }}\n select\n c.name collate database_default as column_name,\n t.name as data_type,\n case\n when (t.name in ('nchar', 'nvarchar', 'sysname') and c.max_length <> -1) then c.max_length / 2\n else c.max_length\n end as character_maximum_length,\n c.precision as numeric_precision,\n c.scale as numeric_scale\n from sys.columns c {{ information_schema_hints() }}\n inner join sys.types t {{ information_schema_hints() }}\n on c.user_type_id = t.user_type_id\n where c.object_id = object_id('{{ 'tempdb..' ~ relation.include(database=false, schema=false) if '#' in relation.identifier else relation }}')\n order by c.column_id\n {{ query_label }}\n\n {% endcall %}\n {% set table = load_result('get_columns_in_relation').table %}\n {{ return(sql_convert_columns_in_relation(table)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.get_query_options", "macro.dbt.statement", "macro.dbt_sqlserver.get_use_database_sql", "macro.dbt_sqlserver.information_schema_hints", "macro.dbt.sql_convert_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0674586, "supported_languages": null}, "macro.dbt_sqlserver.get_query_options": {"name": "get_query_options", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.get_query_options", "macro_sql": "{% macro get_query_options(parse_options=False) %}\n {{ log (config.get('query_tag','dbt-sqlserver'))}}\n {%- set query_label = config.get('query_tag','dbt-sqlserver') -%}\n {%- set query_options = config.get('query_options', {}) -%}\n {%- set query_options_raw = config.get('query_options_raw', []) -%}\n\n {%- set options_list = [\"LABEL = '\" ~ query_label ~ \"'\"] -%}\n\n {%- if parse_options -%}\n {%- set valid_options = [\n 'HASH GROUP', 'ORDER GROUP',\n 'CONCAT UNION', 'HASH UNION', 'MERGE UNION',\n 'LOOP JOIN', 'MERGE JOIN', 'HASH JOIN',\n 'DISABLE_OPTIMIZED_PLAN_FORCING',\n 'EXPAND VIEWS',\n 'FAST',\n 'FORCE ORDER',\n 'FORCE EXTERNALPUSHDOWN', 'DISABLE EXTERNALPUSHDOWN',\n 'FORCE SCALEOUTEXECUTION', 'DISABLE SCALEOUTEXECUTION',\n 'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX',\n 'KEEP PLAN',\n 'KEEPFIXED PLAN',\n 'MAX_GRANT_PERCENT',\n 'MIN_GRANT_PERCENT',\n 'MAXDOP',\n 'MAXRECURSION',\n 'NO_PERFORMANCE_SPOOL',\n 'OPTIMIZE FOR UNKNOWN',\n 'QUERYTRACEON',\n 'RECOMPILE',\n 'ROBUST PLAN',\n ] -%}\n {#- SQL Server uses `OPTION (X = N)` for grant-percent hints, not `OPTION (X N)`. -#}\n {%- set equals_syntax_options = ['MAX_GRANT_PERCENT', 'MIN_GRANT_PERCENT'] -%}\n\n {%- for key, value in query_options.items() -%}\n {%- if key | upper not in valid_options -%}\n {{ exceptions.raise_compiler_error(\"Invalid query option: '\" ~ key ~ \"'. Use query_options_raw for non-standard hints. Allowed: \" ~ valid_options | join(', ')) }}\n {%- endif -%}\n\n {%- if value is none -%}\n {%- do options_list.append(key | upper) -%}\n {%- else -%}\n {%- if value is not number -%}\n {{ exceptions.raise_compiler_error(\"Query option '\" ~ key ~ \"' value must be a number, got: '\" ~ value ~ \"'\") }}\n {%- endif -%}\n {%- set separator = ' = ' if key | upper in equals_syntax_options else ' ' -%}\n {#- Render the value verbatim: ints become \"1\", floats become \"12.5\".\n MAX_GRANT_PERCENT / MIN_GRANT_PERCENT accept decimals 0.0\u2013100.0; integer-only\n options will surface a clear SQL Server parse error on invalid decimals. -#}\n {%- do options_list.append(key | upper ~ separator ~ value) -%}\n {%- endif -%}\n {%- endfor -%}\n\n {#- query_options_raw bypasses the allowlist; users opt in to writing valid SQL Server syntax themselves.\n Shape-check only: a plain string would be iterated character-by-character into garbage. -#}\n {%- if query_options_raw is string or query_options_raw is mapping -%}\n {{ exceptions.raise_compiler_error(\"query_options_raw must be a list of strings, got: '\" ~ query_options_raw ~ \"'\") }}\n {%- endif -%}\n {%- for raw in query_options_raw -%}\n {%- do options_list.append(raw) -%}\n {%- endfor -%}\n {%- endif -%}\n\n OPTION ({{ options_list | join(', ') }});\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.077873, "supported_languages": null}, "macro.dbt_sqlserver.apply_label": {"name": "apply_label", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.apply_label", "macro_sql": "{% macro apply_label() %}\n {{ log (config.get('query_tag','dbt-sqlserver'))}}\n {%- set query_label = config.get('query_tag','dbt-sqlserver') -%}\n OPTION (LABEL = '{{query_label}}');\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0786846, "supported_languages": null}, "macro.dbt_sqlserver.raise_if_query_options_set": {"name": "raise_if_query_options_set", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.raise_if_query_options_set", "macro_sql": "{% macro raise_if_query_options_set(context_label) %}\n {%- if config.get('query_options') or config.get('query_options_raw') -%}\n {{ exceptions.raise_compiler_error(\n \"query_options/query_options_raw is not supported on \" ~ context_label\n ~ \". Remove the config or switch to a supported materialization (table, incremental delete+insert, snapshot, unit_test).\"\n ) }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0794566, "supported_languages": null}, "macro.dbt_sqlserver.default__information_schema_hints": {"name": "default__information_schema_hints", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.default__information_schema_hints", "macro_sql": "{% macro default__information_schema_hints() %}{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0796793, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__information_schema_hints": {"name": "sqlserver__information_schema_hints", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__information_schema_hints", "macro_sql": "{% macro sqlserver__information_schema_hints() %}with (nolock){% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0799022, "supported_languages": null}, "macro.dbt_sqlserver.information_schema_hints": {"name": "information_schema_hints", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.information_schema_hints", "macro_sql": "{% macro information_schema_hints() %}\n {{ return(adapter.dispatch('information_schema_hints')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__information_schema_hints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.08034, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__information_schema_name": {"name": "sqlserver__information_schema_name", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__information_schema_name", "macro_sql": "{% macro sqlserver__information_schema_name(database) -%}\n information_schema\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0806236, "supported_languages": null}, "macro.dbt_sqlserver.get_use_database_sql": {"name": "get_use_database_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.get_use_database_sql", "macro_sql": "{% macro get_use_database_sql(database) %}\n {{ return(adapter.dispatch('get_use_database_sql', 'dbt')(database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_use_database_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.08121, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_use_database_sql": {"name": "sqlserver__get_use_database_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_use_database_sql", "macro_sql": "\n\n{%- macro sqlserver__get_use_database_sql(database) -%}\n USE [{{database | replace('\"', '')}}];\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0816476, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__list_schemas": {"name": "sqlserver__list_schemas", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__list_schemas", "macro_sql": "{% macro sqlserver__list_schemas(database) %}\n {% call statement('list_schemas', fetch_result=True, auto_begin=False) -%}\n {{ get_use_database_sql(database) }}\n select name as [schema]\n from sys.schemas {{ information_schema_hints() }} {{ get_query_options() }}\n {% endcall %}\n {{ return(load_result('list_schemas').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_sqlserver.get_use_database_sql", "macro.dbt_sqlserver.information_schema_hints", "macro.dbt_sqlserver.get_query_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.082744, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__check_schema_exists": {"name": "sqlserver__check_schema_exists", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__check_schema_exists", "macro_sql": "{% macro sqlserver__check_schema_exists(information_schema, schema) -%}\n {% call statement('check_schema_exists', fetch_result=True, auto_begin=False) -%}\n SELECT count(*) as schema_exist FROM sys.schemas WHERE name = '{{ schema }}' {{ get_query_options() }}\n {%- endcall %}\n {{ return(load_result('check_schema_exists').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_sqlserver.get_query_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0855005, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__list_relations_without_caching": {"name": "sqlserver__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__list_relations_without_caching", "macro_sql": "{% macro sqlserver__list_relations_without_caching(schema_relation) -%}\n {% call statement('list_relations_without_caching', fetch_result=True) -%}\n {{ get_use_database_sql(schema_relation.database) }}\n declare @schema_id int = schema_id('{{ schema_relation.schema }}');\n select\n DB_NAME() as [database],\n t.name as [name],\n '{{ schema_relation.schema }}' as [schema],\n 'table' as table_type\n from sys.tables as t {{ information_schema_hints() }}\n where t.schema_id = @schema_id\n union all\n select\n DB_NAME() as [database],\n v.name as [name],\n '{{ schema_relation.schema }}' as [schema],\n 'view' as table_type\n from sys.views as v {{ information_schema_hints() }}\n where v.schema_id = @schema_id\n {{ get_query_options() }}\n {% endcall %}\n {{ return(load_result('list_relations_without_caching').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_sqlserver.get_use_database_sql", "macro.dbt_sqlserver.information_schema_hints", "macro.dbt_sqlserver.get_query_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0870059, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_relation_without_caching": {"name": "sqlserver__get_relation_without_caching", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_relation_without_caching", "macro_sql": "{% macro sqlserver__get_relation_without_caching(schema_relation) -%}\n {% call statement('get_relation_without_caching', fetch_result=True) -%}\n {{ get_use_database_sql(schema_relation.database) }}\n declare @schema_id int = schema_id('{{ schema_relation.schema }}');\n select\n DB_NAME() as [database],\n t.name as [name],\n '{{ schema_relation.schema }}' as [schema],\n 'table' as table_type\n from sys.tables as t {{ information_schema_hints() }}\n where t.schema_id = @schema_id and t.name = '{{ schema_relation.identifier }}'\n union all\n select\n DB_NAME() as [database],\n v.name as [name],\n '{{ schema_relation.schema }}' as [schema],\n 'view' as table_type\n from sys.views as v {{ information_schema_hints() }}\n where v.schema_id = @schema_id and v.name = '{{ schema_relation.identifier }}'\n {{ get_query_options() }}\n {% endcall %}\n {{ return(load_result('get_relation_without_caching').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_sqlserver.get_use_database_sql", "macro.dbt_sqlserver.information_schema_hints", "macro.dbt_sqlserver.get_query_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0885835, "supported_languages": null}, "macro.dbt_sqlserver.get_view_definition_sql": {"name": "get_view_definition_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.get_view_definition_sql", "macro_sql": "{% macro get_view_definition_sql(relation) %}\n {{ return(adapter.dispatch('get_view_definition_sql')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_view_definition_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0890985, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_view_definition_sql": {"name": "sqlserver__get_view_definition_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_view_definition_sql", "macro_sql": "{% macro sqlserver__get_view_definition_sql(relation) -%}\n {%- set object_name = \"quotename('\" ~ relation.schema ~ \"') + '.' + quotename('\" ~ relation.identifier ~ \"')\" -%}\n {{ get_use_database_sql(relation.database) }}\n select object_definition(object_id({{ object_name }}, 'V')) as definition\n where object_id({{ object_name }}, 'V') is not null\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.get_use_database_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.089911, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_relation_last_modified": {"name": "sqlserver__get_relation_last_modified", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_relation_last_modified", "macro_sql": "{% macro sqlserver__get_relation_last_modified(information_schema, relations) -%}\n {%- call statement('last_modified', fetch_result=True) -%}\n select\n o.name as [identifier]\n , s.name as [schema]\n , o.modify_date as last_modified\n , current_timestamp as snapshotted_at\n from sys.objects o\n inner join sys.schemas s on o.schema_id = s.schema_id and [type] = 'U'\n where (\n {%- for relation in relations -%}\n (upper(s.name) = upper('{{ relation.schema }}') and\n upper(o.name) = upper('{{ relation.identifier }}')){%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n )\n {{ get_query_options() }}\n {%- endcall -%}\n {{ return(load_result('last_modified')) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_sqlserver.get_query_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0912812, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_limit_sql": {"name": "sqlserver__get_limit_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_limit_sql", "macro_sql": "{% macro sqlserver__get_limit_sql(sql, limit) %}\n {%- if limit == -1 or limit is none -%}\n {{ sql }}\n {#- Special processing if the last non-blank line starts with order by -#}\n {%- elif sql.strip().splitlines()[-1].strip().lower().startswith('order by') -%}\n {{ sql }}\n offset 0 rows fetch first {{ limit }} rows only\n {%- else -%}\n {{ sql }}\n order by (select null) offset 0 rows fetch first {{ limit }} rows only\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0930917, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__create_clustered_columnstore_index": {"name": "sqlserver__create_clustered_columnstore_index", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__create_clustered_columnstore_index", "macro_sql": "{% macro sqlserver__create_clustered_columnstore_index(relation) -%}\n {%- set cci_name = (relation.schema ~ '_' ~ relation.identifier ~ '_cci') | replace(\".\", \"\") | replace(\" \", \"\") -%}\n {%- set relation_name = relation.schema ~ '_' ~ relation.identifier -%}\n {%- set full_relation = '\"' ~ relation.schema ~ '\".\"' ~ relation.identifier ~ '\"' -%}\n use [{{ relation.database }}];\n if EXISTS (\n SELECT *\n FROM sys.indexes {{ information_schema_hints() }}\n WHERE name = '{{cci_name}}'\n AND object_id=object_id('{{relation_name}}')\n )\n DROP index {{full_relation}}.{{cci_name}}\n CREATE CLUSTERED COLUMNSTORE INDEX {{cci_name}}\n ON {{full_relation}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.information_schema_hints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.09828, "supported_languages": null}, "macro.dbt_sqlserver.drop_xml_indexes": {"name": "drop_xml_indexes", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt_sqlserver.drop_xml_indexes", "macro_sql": "{% macro drop_xml_indexes() -%}\n {{ log(\"Running drop_xml_indexes() macro...\") }}\n\n declare @drop_xml_indexes nvarchar(max);\n select @drop_xml_indexes = (\n select 'IF INDEXPROPERTY(' + CONVERT(VARCHAR(MAX), sys.tables.[object_id]) + ', ''' + sys.indexes.[name] + ''', ''IndexId'') IS NOT NULL DROP INDEX [' + sys.indexes.[name] + '] ON ' + '[' + SCHEMA_NAME(sys.tables.[schema_id]) + '].[' + OBJECT_NAME(sys.tables.[object_id]) + ']; '\n from sys.indexes {{ information_schema_hints() }}\n inner join sys.tables {{ information_schema_hints() }}\n on sys.indexes.object_id = sys.tables.object_id\n where sys.indexes.[name] is not null\n and sys.indexes.type_desc = 'XML'\n and sys.tables.[name] = '{{ this.table }}'\n for xml path('')\n ); exec sp_executesql @drop_xml_indexes;\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.information_schema_hints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0990534, "supported_languages": null}, "macro.dbt_sqlserver.drop_spatial_indexes": {"name": "drop_spatial_indexes", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt_sqlserver.drop_spatial_indexes", "macro_sql": "{% macro drop_spatial_indexes() -%}\n {# Altered from https://stackoverflow.com/q/1344401/10415173 #}\n {# and https://stackoverflow.com/a/33785833/10415173 #}\n\n {{ log(\"Running drop_spatial_indexes() macro...\") }}\n\n declare @drop_spatial_indexes nvarchar(max);\n select @drop_spatial_indexes = (\n select 'IF INDEXPROPERTY(' + CONVERT(VARCHAR(MAX), sys.tables.[object_id]) + ', ''' + sys.indexes.[name] + ''', ''IndexId'') IS NOT NULL DROP INDEX [' + sys.indexes.[name] + '] ON ' + '[' + SCHEMA_NAME(sys.tables.[schema_id]) + '].[' + OBJECT_NAME(sys.tables.[object_id]) + ']; '\n from sys.indexes {{ information_schema_hints() }}\n inner join sys.tables {{ information_schema_hints() }}\n on sys.indexes.object_id = sys.tables.object_id\n where sys.indexes.[name] is not null\n and sys.indexes.type_desc = 'Spatial'\n and sys.tables.[name] = '{{ this.table }}'\n for xml path('')\n ); exec sp_executesql @drop_spatial_indexes;\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.information_schema_hints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.0998383, "supported_languages": null}, "macro.dbt_sqlserver.drop_fk_constraints": {"name": "drop_fk_constraints", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt_sqlserver.drop_fk_constraints", "macro_sql": "{% macro drop_fk_constraints() -%}\n {# Altered from https://stackoverflow.com/q/1344401/10415173 #}\n\n {{ log(\"Running drop_fk_constraints() macro...\") }}\n\n declare @drop_fk_constraints nvarchar(max);\n select @drop_fk_constraints = (\n select 'IF OBJECT_ID(''' + SCHEMA_NAME(CONVERT(VARCHAR(MAX), sys.foreign_keys.[schema_id])) + '.' + sys.foreign_keys.[name] + ''', ''F'') IS NOT NULL ALTER TABLE [' + SCHEMA_NAME(sys.foreign_keys.[schema_id]) + '].[' + OBJECT_NAME(sys.foreign_keys.[parent_object_id]) + '] DROP CONSTRAINT [' + sys.foreign_keys.[name]+ '];'\n from sys.foreign_keys\n inner join sys.tables on sys.foreign_keys.[referenced_object_id] = sys.tables.[object_id]\n where sys.tables.[name] = '{{ this.table }}'\n for xml path('')\n ); exec sp_executesql @drop_fk_constraints;\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1004758, "supported_languages": null}, "macro.dbt_sqlserver.drop_pk_constraints": {"name": "drop_pk_constraints", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt_sqlserver.drop_pk_constraints", "macro_sql": "{% macro drop_pk_constraints() -%}\n {# Altered from https://stackoverflow.com/q/1344401/10415173 #}\n {# and https://stackoverflow.com/a/33785833/10415173 #}\n\n {{ drop_xml_indexes() }}\n\n {{ drop_spatial_indexes() }}\n\n {{ drop_fk_constraints() }}\n\n {{ log(\"Running drop_pk_constraints() macro...\") }}\n\n declare @drop_pk_constraints nvarchar(max);\n select @drop_pk_constraints = (\n select 'IF INDEXPROPERTY(' + CONVERT(VARCHAR(MAX), sys.tables.[object_id]) + ', ''' + sys.indexes.[name] + ''', ''IndexId'') IS NOT NULL ALTER TABLE [' + SCHEMA_NAME(sys.tables.[schema_id]) + '].[' + sys.tables.[name] + '] DROP CONSTRAINT [' + sys.indexes.[name]+ '];'\n from sys.indexes\n inner join sys.tables on sys.indexes.[object_id] = sys.tables.[object_id]\n where sys.indexes.is_primary_key = 1\n and sys.tables.[name] = '{{ this.table }}'\n for xml path('')\n ); exec sp_executesql @drop_pk_constraints;\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.drop_xml_indexes", "macro.dbt_sqlserver.drop_spatial_indexes", "macro.dbt_sqlserver.drop_fk_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1013598, "supported_languages": null}, "macro.dbt_sqlserver.drop_all_indexes_on_table": {"name": "drop_all_indexes_on_table", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt_sqlserver.drop_all_indexes_on_table", "macro_sql": "{% macro drop_all_indexes_on_table() -%}\n {# Altered from https://stackoverflow.com/q/1344401/10415173 #}\n {# and https://stackoverflow.com/a/33785833/10415173 #}\n\n {{ drop_pk_constraints() }}\n\n {{ log(\"Dropping remaining indexes...\") }}\n\n declare @drop_remaining_indexes_last nvarchar(max);\n select @drop_remaining_indexes_last = (\n select 'IF INDEXPROPERTY(' + CONVERT(VARCHAR(MAX), sys.tables.[object_id]) + ', ''' + sys.indexes.[name] + ''', ''IndexId'') IS NOT NULL DROP INDEX [' + sys.indexes.[name] + '] ON ' + '[' + SCHEMA_NAME(sys.tables.[schema_id]) + '].[' + OBJECT_NAME(sys.tables.[object_id]) + ']; '\n from sys.indexes {{ information_schema_hints() }}\n inner join sys.tables {{ information_schema_hints() }}\n on sys.indexes.object_id = sys.tables.object_id\n where sys.indexes.[name] is not null\n and SCHEMA_NAME(sys.tables.schema_id) = '{{ this.schema }}'\n and sys.tables.[name] = '{{ this.table }}'\n for xml path('')\n ); exec sp_executesql @drop_remaining_indexes_last;\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.drop_pk_constraints", "macro.dbt_sqlserver.information_schema_hints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.102303, "supported_languages": null}, "macro.dbt_sqlserver.create_clustered_index": {"name": "create_clustered_index", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt_sqlserver.create_clustered_index", "macro_sql": "{% macro create_clustered_index(columns, unique=False) -%}\n {{ log(\"Creating clustered index...\") }}\n\n {% set idx_name = \"clustered_\" + local_md5(columns | join(\"_\")) %}\n\n if not exists(select *\n from sys.indexes {{ information_schema_hints() }}\n where name = '{{ idx_name }}'\n and object_id = OBJECT_ID('{{ this }}')\n )\n begin\n\n create\n {% if unique -%}\n unique\n {% endif %}\n clustered index\n {{ idx_name }}\n on {{ this }} ({{ '[' + columns|join(\"], [\") + ']' }})\n end\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.information_schema_hints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.10379, "supported_languages": null}, "macro.dbt_sqlserver.create_nonclustered_index": {"name": "create_nonclustered_index", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt_sqlserver.create_nonclustered_index", "macro_sql": "{% macro create_nonclustered_index(columns, includes=False) %}\n\n {{ log(\"Creating nonclustered index...\") }}\n\n {% if includes -%}\n {% set idx_name = (\n \"nonclustered_\"\n + local_md5(columns | join(\"_\"))\n + \"_incl_\"\n + local_md5(includes | join(\"_\"))\n ) %}\n {% else -%}\n {% set idx_name = \"nonclustered_\" + local_md5(columns | join(\"_\")) %}\n {% endif %}\n\n if not exists(select *\n from sys.indexes {{ information_schema_hints() }}\n where name = '{{ idx_name }}'\n and object_id = OBJECT_ID('{{ this }}')\n )\n begin\n create nonclustered index\n {{ idx_name }}\n on {{ this }} ({{ '[' + columns|join(\"], [\") + ']' }})\n {% if includes -%}\n include ({{ '[' + includes|join(\"], [\") + ']' }})\n {% endif %}\n end\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.information_schema_hints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1062307, "supported_languages": null}, "macro.dbt_sqlserver.drop_fk_indexes_on_table": {"name": "drop_fk_indexes_on_table", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt_sqlserver.drop_fk_indexes_on_table", "macro_sql": "{% macro drop_fk_indexes_on_table(relation) -%}\n {% call statement('find_references', fetch_result=true) %}\n USE [{{ relation.database }}];\n SELECT obj.name AS FK_NAME,\n sch.name AS [schema_name],\n tab1.name AS [table],\n col1.name AS [column],\n tab2.name AS [referenced_table],\n col2.name AS [referenced_column]\n FROM sys.foreign_key_columns fkc\n INNER JOIN sys.objects obj\n ON obj.object_id = fkc.constraint_object_id\n INNER JOIN sys.tables tab1\n ON tab1.object_id = fkc.parent_object_id\n INNER JOIN sys.schemas sch\n ON tab1.schema_id = sch.schema_id\n INNER JOIN sys.columns col1\n ON col1.column_id = parent_column_id AND col1.object_id = tab1.object_id\n INNER JOIN sys.tables tab2\n ON tab2.object_id = fkc.referenced_object_id\n INNER JOIN sys.columns col2\n ON col2.column_id = referenced_column_id AND col2.object_id = tab2.object_id\n WHERE sch.name = '{{ relation.schema }}' and tab2.name = '{{ relation.identifier }}'\n {% endcall %}\n {% set references = load_result('find_references')['data'] %}\n {% for reference in references -%}\n {% call statement('main') -%}\n alter table [{{reference[1]}}].[{{reference[2]}}] drop constraint [{{reference[0]}}]\n {%- endcall %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1080778, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__list_nonclustered_rowstore_indexes": {"name": "sqlserver__list_nonclustered_rowstore_indexes", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__list_nonclustered_rowstore_indexes", "macro_sql": "{% macro sqlserver__list_nonclustered_rowstore_indexes(relation) -%}\n {% call statement('list_nonclustered_rowstore_indexes', fetch_result=True) -%}\n\n SELECT i.name AS index_name\n , i.name + '__dbt_backup' as index_new_name\n , COL_NAME(ic.object_id,ic.column_id) AS column_name\n FROM sys.indexes AS i\n INNER JOIN sys.index_columns AS ic\n ON i.object_id = ic.object_id AND i.index_id = ic.index_id and i.type <> 5\n WHERE i.object_id = OBJECT_ID('{{ relation.schema }}.{{ relation.identifier }}')\n\n UNION ALL\n\n SELECT obj.name AS index_name\n , obj.name + '__dbt_backup' as index_new_name\n , col1.name AS column_name\n FROM sys.foreign_key_columns fkc\n INNER JOIN sys.objects obj\n ON obj.object_id = fkc.constraint_object_id\n INNER JOIN sys.tables tab1\n ON tab1.object_id = fkc.parent_object_id\n INNER JOIN sys.schemas sch\n ON tab1.schema_id = sch.schema_id\n INNER JOIN sys.columns col1\n ON col1.column_id = parent_column_id AND col1.object_id = tab1.object_id\n INNER JOIN sys.tables tab2\n ON tab2.object_id = fkc.referenced_object_id\n INNER JOIN sys.columns col2\n ON col2.column_id = referenced_column_id AND col2.object_id = tab2.object_id\n WHERE sch.name = '{{ relation.schema }}' and tab1.name = '{{ relation.identifier }}'\n\n {% endcall %}\n {{ return(load_result('list_nonclustered_rowstore_indexes').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.109299, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_catalog": {"name": "sqlserver__get_catalog", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/catalog.sql", "original_file_path": "macros/adapters/catalog.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_catalog", "macro_sql": "{% macro sqlserver__get_catalog(information_schemas, schemas) -%}\n {% set query_label = get_query_options() %}\n {%- call statement('catalog', fetch_result=True) -%}\n {{ get_use_database_sql(information_schemas.database) }}\n with\n principals as (\n select\n name as principal_name,\n principal_id as principal_id\n from\n sys.database_principals {{ information_schema_hints() }}\n ),\n\n schemas as (\n select\n name as schema_name,\n schema_id as schema_id,\n principal_id as principal_id\n from\n sys.schemas {{ information_schema_hints() }}\n ),\n\n tables as (\n select\n object_id,\n name as table_name,\n schema_id as schema_id,\n principal_id as principal_id,\n 'BASE TABLE' as table_type\n from\n sys.tables {{ information_schema_hints() }}\n ),\n\n tables_with_metadata as (\n select\n object_id,\n table_name,\n schema_name,\n coalesce(tables.principal_id, schemas.principal_id) as owner_principal_id,\n table_type\n from\n tables\n join schemas on tables.schema_id = schemas.schema_id\n ),\n\n views as (\n select\n object_id,\n name as table_name,\n schema_id as schema_id,\n principal_id as principal_id,\n 'VIEW' as table_type\n from\n sys.views {{ information_schema_hints() }}\n ),\n\n views_with_metadata as (\n select\n object_id,\n table_name,\n schema_name,\n coalesce(views.principal_id, schemas.principal_id) as owner_principal_id,\n table_type\n from\n views\n join schemas on views.schema_id = schemas.schema_id\n ),\n\n tables_and_views as (\n select\n object_id,\n table_name,\n schema_name,\n principal_name,\n table_type\n from\n tables_with_metadata\n join principals on tables_with_metadata.owner_principal_id = principals.principal_id\n union all\n select\n object_id,\n table_name,\n schema_name,\n principal_name,\n table_type\n from\n views_with_metadata\n join principals on views_with_metadata.owner_principal_id = principals.principal_id\n ),\n\n cols as (\n\n select\n c.object_id,\n c.name as column_name,\n c.column_id as column_index,\n t.name as column_type\n from sys.columns as c {{ information_schema_hints() }}\n left join sys.types as t {{ information_schema_hints() }} on c.system_type_id = t.system_type_id\n )\n\n select\n DB_NAME() as table_database,\n tv.schema_name as table_schema,\n tv.table_name,\n tv.table_type,\n null as table_comment,\n tv.principal_name as table_owner,\n cols.column_name,\n cols.column_index,\n cols.column_type,\n null as column_comment\n from tables_and_views tv\n join cols on tv.object_id = cols.object_id\n where ({%- for schema in schemas -%}\n upper(tv.schema_name) = upper('{{ schema }}'){%- if not loop.last %} or {% endif -%}\n {%- endfor -%})\n\n order by column_index\n {{ query_label }}\n\n {%- endcall -%}\n\n {{ return(load_result('catalog').table) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.get_query_options", "macro.dbt.statement", "macro.dbt_sqlserver.get_use_database_sql", "macro.dbt_sqlserver.information_schema_hints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1144633, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_catalog_relations": {"name": "sqlserver__get_catalog_relations", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/catalog.sql", "original_file_path": "macros/adapters/catalog.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_catalog_relations", "macro_sql": "{% macro sqlserver__get_catalog_relations(information_schema, relations) -%}\n {% set query_label = get_query_options() %}\n {%- set distinct_databases = relations | map(attribute='database') | unique | list -%}\n\n {%- if distinct_databases | length == 1 -%}\n {%- call statement('catalog', fetch_result=True) -%}\n {{ get_use_database_sql(distinct_databases[0]) }}\n with\n principals as (\n select\n name as principal_name,\n principal_id as principal_id\n from\n sys.database_principals {{ information_schema_hints() }}\n ),\n\n schemas as (\n select\n name as schema_name,\n schema_id as schema_id,\n principal_id as principal_id\n from\n sys.schemas {{ information_schema_hints() }}\n ),\n\n tables as (\n select\n object_id,\n name as table_name,\n schema_id as schema_id,\n principal_id as principal_id,\n 'BASE TABLE' as table_type\n from\n sys.tables {{ information_schema_hints() }}\n ),\n\n tables_with_metadata as (\n select\n object_id,\n table_name,\n schema_name,\n coalesce(tables.principal_id, schemas.principal_id) as owner_principal_id,\n table_type\n from\n tables\n join schemas on tables.schema_id = schemas.schema_id\n ),\n\n views as (\n select\n object_id,\n name as table_name,\n schema_id as schema_id,\n principal_id as principal_id,\n 'VIEW' as table_type\n from\n sys.views {{ information_schema_hints() }}\n ),\n\n views_with_metadata as (\n select\n object_id,\n table_name,\n schema_name,\n coalesce(views.principal_id, schemas.principal_id) as owner_principal_id,\n table_type\n from\n views\n join schemas on views.schema_id = schemas.schema_id\n ),\n\n tables_and_views as (\n select\n object_id,\n table_name,\n schema_name,\n principal_name,\n table_type\n from\n tables_with_metadata\n join principals on tables_with_metadata.owner_principal_id = principals.principal_id\n union all\n select\n object_id,\n table_name,\n schema_name,\n principal_name,\n table_type\n from\n views_with_metadata\n join principals on views_with_metadata.owner_principal_id = principals.principal_id\n ),\n\n cols as (\n\n select\n c.object_id,\n c.name as column_name,\n c.column_id as column_index,\n t.name as column_type\n from sys.columns as c {{ information_schema_hints() }}\n left join sys.types as t on c.system_type_id = t.system_type_id\n )\n\n select\n DB_NAME() as table_database,\n tv.schema_name as table_schema,\n tv.table_name,\n tv.table_type,\n null as table_comment,\n tv.principal_name as table_owner,\n cols.column_name,\n cols.column_index,\n cols.column_type,\n null as column_comment\n from tables_and_views tv\n join cols on tv.object_id = cols.object_id\n where (\n {%- for relation in relations -%}\n {% if relation.schema and relation.identifier %}\n (\n upper(tv.schema_name) = upper('{{ relation.schema }}')\n and upper(tv.table_name) = upper('{{ relation.identifier }}')\n )\n {% elif relation.schema %}\n (\n upper(tv.schema_name) = upper('{{ relation.schema }}')\n )\n {% else %}\n {% do exceptions.raise_compiler_error(\n '`get_catalog_relations` requires a list of relations, each with a schema'\n ) %}\n {% endif %}\n\n {%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n )\n\n order by column_index\n {{ query_label }}\n\n {%- endcall -%}\n {{ return(load_result('catalog').table) }}\n {% else %}\n {% do exceptions.raise_compiler_error(\n '`get_catalog_relations` can catalog one database at a time'\n ) %}\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.get_query_options", "macro.dbt.statement", "macro.dbt_sqlserver.get_use_database_sql", "macro.dbt_sqlserver.information_schema_hints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.119056, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__validate_sql": {"name": "sqlserver__validate_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/validate_sql.sql", "original_file_path": "macros/adapters/validate_sql.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__validate_sql", "macro_sql": "{% macro sqlserver__validate_sql(sql) -%}\n {% call statement('validate_sql') -%}\n {{ sql }}\n {% endcall %}\n {{ return(load_result('validate_sql')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1199927, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__apply_grants": {"name": "sqlserver__apply_grants", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__apply_grants", "macro_sql": "{% macro sqlserver__apply_grants(relation, grant_config, should_revoke=True) %}\n {#-- If grant_config is {} or None, this is a no-op --#}\n {% if grant_config %}\n {% if should_revoke %}\n {#-- We think previous grants may have carried over --#}\n {#-- Show current grants and calculate diffs --#}\n {% set current_grants_table = run_query(get_show_grant_sql(relation)) %}\n {% set current_grants_dict = adapter.standardize_grants_dict(current_grants_table) %}\n {% set needs_granting = diff_of_two_dicts(grant_config, current_grants_dict) %}\n {% set needs_revoking = diff_of_two_dicts(current_grants_dict, grant_config) %}\n {% if not (needs_granting or needs_revoking) %}\n {{ log('On ' ~ relation ~': All grants are in place, no revocation or granting needed.')}}\n {% endif %}\n {% else %}\n {#-- We don't think there's any chance of previous grants having carried over. --#}\n {#-- Jump straight to granting what the user has configured. --#}\n {% set needs_revoking = {} %}\n {% set needs_granting = grant_config %}\n {% endif %}\n {% if needs_granting or needs_revoking %}\n {% set revoke_statement_list = get_dcl_statement_list(relation, needs_revoking, get_revoke_sql) %}\n\n {% if config.get('auto_provision_aad_principals', False) %}\n {% set provision_statement_list = get_dcl_statement_list(relation, needs_granting, get_provision_sql) %}\n {% else %}\n {% set provision_statement_list = [] %}\n {% endif %}\n\n {% set grant_statement_list = get_dcl_statement_list(relation, needs_granting, get_grant_sql) %}\n {% set dcl_statement_list = revoke_statement_list + provision_statement_list + grant_statement_list %}\n {% if dcl_statement_list %}\n {{ call_dcl_statements(dcl_statement_list) }}\n {% endif %}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.get_show_grant_sql", "macro.dbt.get_dcl_statement_list", "macro.dbt.call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1260092, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_show_grant_sql": {"name": "sqlserver__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_show_grant_sql", "macro_sql": "{% macro sqlserver__get_show_grant_sql(relation) %}\n select\n GRANTEE as grantee,\n PRIVILEGE_TYPE as privilege_type\n from INFORMATION_SCHEMA.TABLE_PRIVILEGES {{ information_schema_hints() }}\n where TABLE_CATALOG = '{{ relation.database }}'\n and TABLE_SCHEMA = '{{ relation.schema }}'\n and TABLE_NAME = '{{ relation.identifier }}'\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.information_schema_hints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.126682, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_grant_sql": {"name": "sqlserver__get_grant_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_grant_sql", "macro_sql": "\n\n{%- macro sqlserver__get_grant_sql(relation, privilege, grantees) -%}\n {%- set grantees_safe = [] -%}\n {%- for grantee in grantees -%}\n {%- set grantee_safe = \"[\" ~ grantee ~ \"]\" -%}\n {%- do grantees_safe.append(grantee_safe) -%}\n {%- endfor -%}\n grant {{ privilege }} on {{ relation }} to {{ grantees_safe | join(', ') }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1278927, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_revoke_sql": {"name": "sqlserver__get_revoke_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_revoke_sql", "macro_sql": "{%- macro sqlserver__get_revoke_sql(relation, privilege, grantees) -%}\n {%- set grantees_safe = [] -%}\n {%- for grantee in grantees -%}\n {%- set grantee_safe = \"[\" ~ grantee ~ \"]\" -%}\n {%- do grantees_safe.append(grantee_safe) -%}\n {%- endfor -%}\n revoke {{ privilege }} on {{ relation }} from {{ grantees_safe | join(', ') }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1290915, "supported_languages": null}, "macro.dbt_sqlserver.get_provision_sql": {"name": "get_provision_sql", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt_sqlserver.get_provision_sql", "macro_sql": "{% macro get_provision_sql(relation, privilege, grantees) %}\n {% for grantee in grantees %}\n if not exists(select name from sys.database_principals where name = '{{ grantee }}')\n create user [{{ grantee }}] from external provider;\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1297596, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__create_view_as": {"name": "sqlserver__create_view_as", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/relations/views/create.sql", "original_file_path": "macros/relations/views/create.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__create_view_as", "macro_sql": "{% macro sqlserver__create_view_as(relation, sql) -%}\n {#- Only guard against user-configured view materializations; this macro is also\n called for intermediate temp views during table/snapshot materializations,\n where query_options is intended for the *outer* DML and shouldn't trip a guard here. -#}\n {%- if config.get('materialized') == 'view' -%}\n {{ raise_if_query_options_set('view materializations (SQL Server does not accept OPTION on CREATE VIEW)') }}\n {%- endif -%}\n\n {{ get_use_database_sql(relation.database) }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {%- endif %}\n\n {% set query %}\n CREATE OR ALTER VIEW {{ relation.include(database=False) }} AS {{ sql }};\n {% endset %}\n\n {% set tst %}\n SELECT '1' as col\n {% endset %}\n USE [{{ relation.database }}];\n EXEC('{{- escape_single_quotes(query) -}}')\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.raise_if_query_options_set", "macro.dbt_sqlserver.get_use_database_sql", "macro.dbt.get_assert_columns_equivalent", "macro.dbt.escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1324358, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__can_clone_table": {"name": "sqlserver__can_clone_table", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/relations/table/clone.sql", "original_file_path": "macros/relations/table/clone.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__can_clone_table", "macro_sql": "{% macro sqlserver__can_clone_table() %}\n {{ return(False) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.132969, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__create_table_as": {"name": "sqlserver__create_table_as", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__create_table_as", "macro_sql": "{% macro sqlserver__create_table_as(temporary, relation, sql) -%}\n {%- set query_label = get_query_options(parse_options=True) -%}\n {%- set tmp_relation = relation.incorporate(path={\"identifier\": relation.identifier ~ '__dbt_tmp_vw'}, type='view') -%}\n\n {%- do adapter.drop_relation(tmp_relation) -%}\n USE [{{ relation.database }}];\n {{ get_create_view_as_sql(tmp_relation, sql) }}\n\n {%- set table_name -%}\n {{ relation }}\n {%- endset -%}\n\n\n {%- set contract_config = config.get('contract') -%}\n {%- set query -%}\n {% if contract_config.enforced and (not temporary) %}\n CREATE TABLE {{table_name}}\n {{ get_assert_columns_equivalent(sql) }}\n {{ build_columns_constraints(relation) }}\n {% set listColumns %}\n {% for column in model['columns'] %}\n {{ \"[\"~column~\"]\" }}{{ \", \" if not loop.last }}\n {% endfor %}\n {%endset%}\n INSERT INTO {{relation}} WITH (TABLOCK) ({{listColumns}})\n SELECT {{listColumns}} FROM {{tmp_relation}} {{ query_label }}\n\n {% else %}\n SELECT * INTO {{ table_name }} FROM {{ tmp_relation }} {{ query_label }}\n {% endif %}\n {%- endset -%}\n\n EXEC('{{- escape_single_quotes(query) -}}')\n\n {# For some reason drop_relation is not firing. This solves the issue for now. #}\n EXEC('DROP VIEW IF EXISTS {{ tmp_relation.include(database=False) }}')\n\n\n\n {% set as_columnstore = config.get('as_columnstore', default=true) %}\n {% if not temporary and as_columnstore -%}\n {#-\n add columnstore index\n this creates with dbt_temp as its coming from a temporary relation before renaming\n could alter relation to drop the dbt_temp portion if needed\n -#}\n {{ sqlserver__create_clustered_columnstore_index(relation) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.get_query_options", "macro.dbt.get_create_view_as_sql", "macro.dbt.get_assert_columns_equivalent", "macro.dbt_sqlserver.build_columns_constraints", "macro.dbt.escape_single_quotes", "macro.dbt_sqlserver.sqlserver__create_clustered_columnstore_index"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1386015, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_binding_char": {"name": "sqlserver__get_binding_char", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/relations/seeds/helpers.sql", "original_file_path": "macros/relations/seeds/helpers.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_binding_char", "macro_sql": "{% macro sqlserver__get_binding_char() %}\n {{ return('?') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1401145, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__get_batch_size": {"name": "sqlserver__get_batch_size", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/relations/seeds/helpers.sql", "original_file_path": "macros/relations/seeds/helpers.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__get_batch_size", "macro_sql": "{% macro sqlserver__get_batch_size() %}\n {{ return(400) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1404629, "supported_languages": null}, "macro.dbt_sqlserver.calc_batch_size": {"name": "calc_batch_size", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/relations/seeds/helpers.sql", "original_file_path": "macros/relations/seeds/helpers.sql", "unique_id": "macro.dbt_sqlserver.calc_batch_size", "macro_sql": "{% macro calc_batch_size(num_columns) %}\n {#\n SQL Server allows for a max of 2098 parameters in a single statement.\n Check if the max_batch_size fits with the number of columns, otherwise\n reduce the batch size so it fits.\n #}\n {% set max_batch_size = get_batch_size() %}\n {% set calculated_batch = (2098 / num_columns)|int %}\n {% set batch_size = [max_batch_size, calculated_batch] | min %}\n\n {{ return(batch_size) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1414928, "supported_languages": null}, "macro.dbt_sqlserver.sqlserver__load_csv_rows": {"name": "sqlserver__load_csv_rows", "resource_type": "macro", "package_name": "dbt_sqlserver", "path": "macros/relations/seeds/helpers.sql", "original_file_path": "macros/relations/seeds/helpers.sql", "unique_id": "macro.dbt_sqlserver.sqlserver__load_csv_rows", "macro_sql": "{% macro sqlserver__load_csv_rows(model, agate_table) %}\n {% set cols_sql = get_seed_column_quoted_csv(model, agate_table.column_names) %}\n {% set batch_size = calc_batch_size(agate_table.column_names|length) %}\n {% set bindings = [] %}\n {% set statements = [] %}\n\n {{ log(\"Inserting batches of \" ~ batch_size ~ \" records\") }}\n\n {% for chunk in agate_table.rows | batch(batch_size) %}\n {% set bindings = [] %}\n\n {% for row in chunk %}\n {% do bindings.extend(row) %}\n {% endfor %}\n\n {% set sql %}\n insert into {{ this.render() }} ({{ cols_sql }}) values\n {% for row in chunk -%}\n ({%- for column in agate_table.column_names -%}\n {{ get_binding_char() }}\n {%- if not loop.last%},{%- endif %}\n {%- endfor -%})\n {%- if not loop.last%},{%- endif %}\n {%- endfor %}\n {% endset %}\n\n {% do adapter.add_query(sql, bindings=bindings, abridge_sql_log=True) %}\n\n {% if loop.index0 == 0 %}\n {% do statements.append(sql) %}\n {% endif %}\n {% endfor %}\n\n {# Return SQL so we can render it out into the compiled files #}\n {{ return(statements[0]) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_seed_column_quoted_csv", "macro.dbt_sqlserver.calc_batch_size", "macro.dbt.get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1455495, "supported_languages": null}, "macro.dbt.default__test_accepted_values": {"name": "default__test_accepted_values", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/accepted_values.sql", "original_file_path": "macros/generic_test_sql/accepted_values.sql", "unique_id": "macro.dbt.default__test_accepted_values", "macro_sql": "{% macro default__test_accepted_values(model, column_name, values, quote=True) %}\n\nwith all_values as (\n\n select\n {{ column_name }} as value_field,\n count(*) as n_records\n\n from {{ model }}\n group by {{ column_name }}\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n {% for value in values -%}\n {% if quote -%}\n '{{ value }}'\n {%- else -%}\n {{ value }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {%- endfor %}\n)\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1472201, "supported_languages": null}, "macro.dbt.default__test_unique": {"name": "default__test_unique", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/unique.sql", "original_file_path": "macros/generic_test_sql/unique.sql", "unique_id": "macro.dbt.default__test_unique", "macro_sql": "{% macro default__test_unique(model, column_name) %}\n\nselect\n {{ column_name }} as unique_field,\n count(*) as n_records\n\nfrom {{ model }}\nwhere {{ column_name }} is not null\ngroup by {{ column_name }}\nhaving count(*) > 1\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1479588, "supported_languages": null}, "macro.dbt.default__test_relationships": {"name": "default__test_relationships", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/relationships.sql", "original_file_path": "macros/generic_test_sql/relationships.sql", "unique_id": "macro.dbt.default__test_relationships", "macro_sql": "{% macro default__test_relationships(model, column_name, to, field) %}\n\nwith child as (\n select {{ column_name }} as from_field\n from {{ model }}\n where {{ column_name }} is not null\n),\n\nparent as (\n select {{ field }} as to_field\n from {{ to }}\n)\n\nselect\n from_field\n\nfrom child\nleft join parent\n on child.from_field = parent.to_field\n\nwhere parent.to_field is null\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1488938, "supported_languages": null}, "macro.dbt.default__test_not_null": {"name": "default__test_not_null", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/not_null.sql", "original_file_path": "macros/generic_test_sql/not_null.sql", "unique_id": "macro.dbt.default__test_not_null", "macro_sql": "{% macro default__test_not_null(model, column_name) %}\n\n{% set column_list = '*' if should_store_failures() else column_name %}\n\nselect {{ column_list }}\nfrom {{ model }}\nwhere {{ column_name }} is null\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.149811, "supported_languages": null}, "macro.dbt.set_sql_header": {"name": "set_sql_header", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.set_sql_header", "macro_sql": "{% macro set_sql_header(config) -%}\n {{ config.set('sql_header', caller()) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1507087, "supported_languages": null}, "macro.dbt.should_full_refresh": {"name": "should_full_refresh", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.should_full_refresh", "macro_sql": "{% macro should_full_refresh() %}\n {% set config_full_refresh = config.get('full_refresh') %}\n {% if config_full_refresh is none %}\n {% set config_full_refresh = flags.FULL_REFRESH %}\n {% endif %}\n {% do return(config_full_refresh) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1516316, "supported_languages": null}, "macro.dbt.should_store_failures": {"name": "should_store_failures", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.should_store_failures", "macro_sql": "{% macro should_store_failures() %}\n {% set config_store_failures = config.get('store_failures') %}\n {% if config_store_failures is none %}\n {% set config_store_failures = flags.STORE_FAILURES %}\n {% endif %}\n {% do return(config_store_failures) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1525745, "supported_languages": null}, "macro.dbt.run_hooks": {"name": "run_hooks", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.run_hooks", "macro_sql": "{% macro run_hooks(hooks, inside_transaction=True) %}\n {% for hook in hooks | selectattr('transaction', 'equalto', inside_transaction) %}\n {% if not inside_transaction and loop.first %}\n {% call statement(auto_begin=inside_transaction) %}\n commit;\n {% endcall %}\n {% endif %}\n {% set rendered = render(hook.get('sql')) | trim %}\n {% if (rendered | length) > 0 %}\n {% call statement(auto_begin=inside_transaction) %}\n {{ rendered }}\n {% endcall %}\n {% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1555696, "supported_languages": null}, "macro.dbt.make_hook_config": {"name": "make_hook_config", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.make_hook_config", "macro_sql": "{% macro make_hook_config(sql, inside_transaction) %}\n {{ tojson({\"sql\": sql, \"transaction\": inside_transaction}) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1561852, "supported_languages": null}, "macro.dbt.before_begin": {"name": "before_begin", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.before_begin", "macro_sql": "{% macro before_begin(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1566133, "supported_languages": null}, "macro.dbt.in_transaction": {"name": "in_transaction", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.in_transaction", "macro_sql": "{% macro in_transaction(sql) %}\n {{ make_hook_config(sql, inside_transaction=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1570456, "supported_languages": null}, "macro.dbt.after_commit": {"name": "after_commit", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.after_commit", "macro_sql": "{% macro after_commit(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.157465, "supported_languages": null}, "macro.dbt.materialization_function_default": {"name": "materialization_function_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/function.sql", "original_file_path": "macros/materializations/functions/function.sql", "unique_id": "macro.dbt.materialization_function_default", "macro_sql": "{% materialization function, default, supported_languages=['sql', 'python'] %}\n {% set existing_relation = load_cached_relation(this) %}\n {% set target_relation = this.incorporate(type=this.Function) %}\n\n {{ run_hooks(pre_hooks) }}\n\n {% set function_config = this.get_function_config(model) %}\n {% set macro_name = this.get_function_macro_name(function_config) %}\n\n {# Doing this aliasing of adapter.dispatch is a hacky way to disable the static analysis of actually calling adapter.dispatch #}\n {# This is necessary because the static analysis breaks being able to dynamically pass a macro_name #}\n {% set _dispatch = adapter.dispatch %}\n\n {% set build_sql = _dispatch(macro_name, 'dbt')(target_relation) %}\n {{ function_execute_build_sql(build_sql, existing_relation, target_relation) }}\n {{ run_hooks(post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.run_hooks", "macro.dbt.function_execute_build_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1603637, "supported_languages": ["sql", "python"]}, "macro.dbt.scalar_function_sql": {"name": "scalar_function_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_sql", "macro_sql": "{% macro scalar_function_sql(target_relation) %}\n {{ return(adapter.dispatch('scalar_function_sql', 'dbt')(target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1624475, "supported_languages": null}, "macro.dbt.default__scalar_function_sql": {"name": "default__scalar_function_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_sql", "macro_sql": "{% macro default__scalar_function_sql(target_relation) %}\n {{ scalar_function_create_replace_signature_sql(target_relation) }}\n {{ scalar_function_body_sql() }};\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.scalar_function_create_replace_signature_sql", "macro.dbt.scalar_function_body_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1629167, "supported_languages": null}, "macro.dbt.scalar_function_create_replace_signature_sql": {"name": "scalar_function_create_replace_signature_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_create_replace_signature_sql", "macro_sql": "{% macro scalar_function_create_replace_signature_sql(target_relation) %}\n {{ return(adapter.dispatch('scalar_function_create_replace_signature_sql', 'dbt')(target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_create_replace_signature_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1634712, "supported_languages": null}, "macro.dbt.default__scalar_function_create_replace_signature_sql": {"name": "default__scalar_function_create_replace_signature_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_create_replace_signature_sql", "macro_sql": "{% macro default__scalar_function_create_replace_signature_sql(target_relation) %}\n CREATE OR REPLACE FUNCTION {{ target_relation.render() }} ({{ formatted_scalar_function_args_sql()}})\n RETURNS {{ model.returns.data_type }}\n {{ scalar_function_volatility_sql() }}\n AS\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.formatted_scalar_function_args_sql", "macro.dbt.scalar_function_volatility_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1641285, "supported_languages": null}, "macro.dbt.formatted_scalar_function_args_sql": {"name": "formatted_scalar_function_args_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.formatted_scalar_function_args_sql", "macro_sql": "{% macro formatted_scalar_function_args_sql() %}\n {{ return(adapter.dispatch('formatted_scalar_function_args_sql', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__formatted_scalar_function_args_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1646228, "supported_languages": null}, "macro.dbt.default__formatted_scalar_function_args_sql": {"name": "default__formatted_scalar_function_args_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__formatted_scalar_function_args_sql", "macro_sql": "{% macro default__formatted_scalar_function_args_sql() %}\n {% set args = [] %}\n {% for arg in model.arguments -%}\n {%- do args.append(arg.name ~ ' ' ~ arg.data_type) -%}\n {%- endfor %}\n {{ args | join(', ') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1656466, "supported_languages": null}, "macro.dbt.scalar_function_body_sql": {"name": "scalar_function_body_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_body_sql", "macro_sql": "{% macro scalar_function_body_sql() %}\n {{ return(adapter.dispatch('scalar_function_body_sql', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_body_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.166154, "supported_languages": null}, "macro.dbt.default__scalar_function_body_sql": {"name": "default__scalar_function_body_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_body_sql", "macro_sql": "{% macro default__scalar_function_body_sql() %}\n $$\n {{ model.compiled_code }}\n $$ LANGUAGE SQL\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1664677, "supported_languages": null}, "macro.dbt.scalar_function_volatility_sql": {"name": "scalar_function_volatility_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_volatility_sql", "macro_sql": "{% macro scalar_function_volatility_sql() %}\n {{ return(adapter.dispatch('scalar_function_volatility_sql', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_volatility_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.166995, "supported_languages": null}, "macro.dbt.default__scalar_function_volatility_sql": {"name": "default__scalar_function_volatility_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_volatility_sql", "macro_sql": "{% macro default__scalar_function_volatility_sql() %}\n {% set volatility = model.config.get('volatility') %}\n {% if volatility == 'deterministic' %}\n IMMUTABLE\n {% elif volatility == 'stable' %}\n STABLE\n {% elif volatility == 'non-deterministic' %}\n VOLATILE\n {% elif volatility != none %}\n {# This shouldn't happen unless a new volatility is invented #}\n {% do unsupported_volatility_warning(volatility) %}\n {% endif %}\n {# If no volatility is set, don't add anything and let the data warehouse default it #}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.unsupported_volatility_warning"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1682978, "supported_languages": null}, "macro.dbt.unsupported_volatility_warning": {"name": "unsupported_volatility_warning", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.unsupported_volatility_warning", "macro_sql": "{% macro unsupported_volatility_warning(volatility) %}\n {{ return(adapter.dispatch('unsupported_volatility_warning', 'dbt')(volatility)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__unsupported_volatility_warning"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1688578, "supported_languages": null}, "macro.dbt.default__unsupported_volatility_warning": {"name": "default__unsupported_volatility_warning", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__unsupported_volatility_warning", "macro_sql": "{% macro default__unsupported_volatility_warning(volatility) %}\n {% set msg = \"Found `\" ~ volatility ~ \"` volatility specified on function `\" ~ model.name ~ \"`. This volatility is not supported by \" ~ adapter.type() ~ \", and will be ignored\" %}\n {% do exceptions.warn(msg) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1696625, "supported_languages": null}, "macro.dbt.function_execute_build_sql": {"name": "function_execute_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/helpers.sql", "original_file_path": "macros/materializations/functions/helpers.sql", "unique_id": "macro.dbt.function_execute_build_sql", "macro_sql": "{% macro function_execute_build_sql(build_sql, existing_relation, target_relation) %}\n {{ return(adapter.dispatch('function_execute_build_sql', 'dbt')(build_sql, existing_relation, target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__function_execute_build_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1708229, "supported_languages": null}, "macro.dbt.default__function_execute_build_sql": {"name": "default__function_execute_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/helpers.sql", "original_file_path": "macros/materializations/functions/helpers.sql", "unique_id": "macro.dbt.default__function_execute_build_sql", "macro_sql": "{% macro default__function_execute_build_sql(build_sql, existing_relation, target_relation) %}\n\n {% set grant_config = config.get('grants') %}\n\n {% call statement(name=\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ adapter.commit() }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.172416, "supported_languages": null}, "macro.dbt.get_aggregate_function_create_replace_signature": {"name": "get_aggregate_function_create_replace_signature", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_aggregate_function_create_replace_signature", "macro_sql": "{% macro get_aggregate_function_create_replace_signature(target_relation) %}\n {{ return(adapter.dispatch('get_aggregate_function_create_replace_signature', 'dbt')(target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_aggregate_function_create_replace_signature"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1742866, "supported_languages": null}, "macro.dbt.default__get_aggregate_function_create_replace_signature": {"name": "default__get_aggregate_function_create_replace_signature", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_aggregate_function_create_replace_signature", "macro_sql": "{% macro default__get_aggregate_function_create_replace_signature(target_relation) %}\n CREATE OR REPLACE AGGREGATE FUNCTION {{ target_relation.render() }} ({{ get_formatted_aggregate_function_args()}})\n RETURNS {{ model.returns.data_type }}\n {{ get_function_language_specifier() }}\n {{ get_aggregate_function_volatility_specifier() }}\n {% if model.get('language') == 'python' %}\n {{ get_function_python_options() }}\n {% endif %}\n AS\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_formatted_aggregate_function_args", "macro.dbt.get_function_language_specifier", "macro.dbt.get_aggregate_function_volatility_specifier", "macro.dbt.get_function_python_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1754036, "supported_languages": null}, "macro.dbt.get_formatted_aggregate_function_args": {"name": "get_formatted_aggregate_function_args", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_formatted_aggregate_function_args", "macro_sql": "{% macro get_formatted_aggregate_function_args() %}\n {{ return(adapter.dispatch('get_formatted_aggregate_function_args', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_formatted_aggregate_function_args"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1759226, "supported_languages": null}, "macro.dbt.default__get_formatted_aggregate_function_args": {"name": "default__get_formatted_aggregate_function_args", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_formatted_aggregate_function_args", "macro_sql": "{% macro default__get_formatted_aggregate_function_args() %}\n {# conveniently we can reuse the sql scalar function args #}\n {{ formatted_scalar_function_args_sql() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.formatted_scalar_function_args_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1762702, "supported_languages": null}, "macro.dbt.get_function_language_specifier": {"name": "get_function_language_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_function_language_specifier", "macro_sql": "{% macro get_function_language_specifier() %}\n {{ return(adapter.dispatch('get_function_language_specifier', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_function_language_specifier"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1770473, "supported_languages": null}, "macro.dbt.default__get_function_language_specifier": {"name": "default__get_function_language_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_function_language_specifier", "macro_sql": "{% macro default__get_function_language_specifier() %}\n {% set language = model.get('language') %}\n {% if language == 'sql' %}\n {# generally you dont need to specify the language for sql functions #}\n {% elif language == 'python' %}\n LANGUAGE PYTHON\n {% else %}\n {{ 'LANGUAGE ' ~ language.upper() }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.178062, "supported_languages": null}, "macro.dbt.get_aggregate_function_volatility_specifier": {"name": "get_aggregate_function_volatility_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_aggregate_function_volatility_specifier", "macro_sql": "{% macro get_aggregate_function_volatility_specifier() %}\n {{ return(adapter.dispatch('get_aggregate_function_volatility_specifier', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_aggregate_function_volatility_specifier"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1785598, "supported_languages": null}, "macro.dbt.default__get_aggregate_function_volatility_specifier": {"name": "default__get_aggregate_function_volatility_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_aggregate_function_volatility_specifier", "macro_sql": "{% macro default__get_aggregate_function_volatility_specifier() %}\n {{ scalar_function_volatility_sql() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.scalar_function_volatility_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1788867, "supported_languages": null}, "macro.dbt.get_function_python_options": {"name": "get_function_python_options", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_function_python_options", "macro_sql": "{% macro get_function_python_options() %}\n {{ return(adapter.dispatch('get_function_python_options', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_function_python_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1793718, "supported_languages": null}, "macro.dbt.default__get_function_python_options": {"name": "default__get_function_python_options", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_function_python_options", "macro_sql": "{% macro default__get_function_python_options() %}\n RUNTIME_VERSION = '{{ model.config.get('runtime_version') }}'\n HANDLER = '{{ model.config.get('entry_point') }}'\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1799383, "supported_languages": null}, "macro.dbt.strategy_dispatch": {"name": "strategy_dispatch", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.strategy_dispatch", "macro_sql": "{% macro strategy_dispatch(name) -%}\n{% set original_name = name %}\n {% if '.' in name %}\n {% set package_name, name = name.split(\".\", 1) %}\n {% else %}\n {% set package_name = none %}\n {% endif %}\n\n {% if package_name is none %}\n {% set package_context = context %}\n {% elif package_name in context %}\n {% set package_context = context[package_name] %}\n {% else %}\n {% set error_msg %}\n Could not find package '{{package_name}}', called with '{{original_name}}'\n {% endset %}\n {{ exceptions.raise_compiler_error(error_msg | trim) }}\n {% endif %}\n\n {%- set search_name = 'snapshot_' ~ name ~ '_strategy' -%}\n\n {% if search_name not in package_context %}\n {% set error_msg %}\n The specified strategy macro '{{name}}' was not found in package '{{ package_name }}'\n {% endset %}\n {{ exceptions.raise_compiler_error(error_msg | trim) }}\n {% endif %}\n {{ return(package_context[search_name]) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.186763, "supported_languages": null}, "macro.dbt.snapshot_hash_arguments": {"name": "snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_hash_arguments", "macro_sql": "{% macro snapshot_hash_arguments(args) -%}\n {{ adapter.dispatch('snapshot_hash_arguments', 'dbt')(args) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1872916, "supported_languages": null}, "macro.dbt.default__snapshot_hash_arguments": {"name": "default__snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.default__snapshot_hash_arguments", "macro_sql": "{% macro default__snapshot_hash_arguments(args) -%}\n md5({%- for arg in args -%}\n coalesce(cast({{ arg }} as varchar ), '')\n {% if not loop.last %} || '|' || {% endif %}\n {%- endfor -%})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.187992, "supported_languages": null}, "macro.dbt.snapshot_timestamp_strategy": {"name": "snapshot_timestamp_strategy", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_timestamp_strategy", "macro_sql": "{% macro snapshot_timestamp_strategy(node, snapshotted_rel, current_rel, model_config, target_exists) %}\n {# The model_config parameter is no longer used, but is passed in anyway for compatibility. #}\n {% set primary_key = config.get('unique_key') %}\n {% set updated_at = config.get('updated_at') %}\n {% set hard_deletes = adapter.get_hard_deletes_behavior(config) %}\n {% set invalidate_hard_deletes = hard_deletes == 'invalidate' %}\n {% set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() %}\n\n {#/*\n The snapshot relation might not have an {{ updated_at }} value if the\n snapshot strategy is changed from `check` to `timestamp`. We\n should use a dbt-created column for the comparison in the snapshot\n table instead of assuming that the user-supplied {{ updated_at }}\n will be present in the historical data.\n\n See https://github.com/dbt-labs/dbt-core/issues/2350\n */ #}\n {% set row_changed_expr -%}\n ({{ snapshotted_rel }}.{{ columns.dbt_valid_from }} < {{ current_rel }}.{{ updated_at }})\n {%- endset %}\n\n {% set scd_args = api.Relation.scd_args(primary_key, updated_at) %}\n {% set scd_id_expr = snapshot_hash_arguments(scd_args) %}\n\n {% do return({\n \"unique_key\": primary_key,\n \"updated_at\": updated_at,\n \"row_changed\": row_changed_expr,\n \"scd_id\": scd_id_expr,\n \"invalidate_hard_deletes\": invalidate_hard_deletes,\n \"hard_deletes\": hard_deletes\n }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1910315, "supported_languages": null}, "macro.dbt.snapshot_string_as_time": {"name": "snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_string_as_time", "macro_sql": "{% macro snapshot_string_as_time(timestamp) -%}\n {{ adapter.dispatch('snapshot_string_as_time', 'dbt')(timestamp) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__snapshot_string_as_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.191517, "supported_languages": null}, "macro.dbt.default__snapshot_string_as_time": {"name": "default__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.default__snapshot_string_as_time", "macro_sql": "{% macro default__snapshot_string_as_time(timestamp) %}\n {% do exceptions.raise_not_implemented(\n 'snapshot_string_as_time macro not implemented for adapter '+adapter.type()\n ) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.192039, "supported_languages": null}, "macro.dbt.snapshot_check_all_get_existing_columns": {"name": "snapshot_check_all_get_existing_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_check_all_get_existing_columns", "macro_sql": "{% macro snapshot_check_all_get_existing_columns(node, target_exists, check_cols_config) -%}\n {%- if not target_exists -%}\n {#-- no table yet -> return whatever the query does --#}\n {{ return((false, query_columns)) }}\n {%- endif -%}\n\n {#-- handle any schema changes --#}\n {%- set target_relation = adapter.get_relation(database=node.database, schema=node.schema, identifier=node.alias) -%}\n\n {% if check_cols_config == 'all' %}\n {%- set query_columns = get_columns_in_query(node['compiled_code']) -%}\n\n {% elif check_cols_config is iterable and (check_cols_config | length) > 0 %}\n {#-- query for proper casing/quoting, to support comparison below --#}\n {%- set select_check_cols_from_target -%}\n {#-- N.B. The whitespace below is necessary to avoid edge case issue with comments --#}\n {#-- See: https://github.com/dbt-labs/dbt-core/issues/6781 --#}\n select {{ check_cols_config | join(', ') }} from (\n {{ node['compiled_code'] }}\n ) subq\n {%- endset -%}\n {% set query_columns = get_columns_in_query(select_check_cols_from_target) %}\n\n {% else %}\n {% do exceptions.raise_compiler_error(\"Invalid value for 'check_cols': \" ~ check_cols_config) %}\n {% endif %}\n\n {%- set existing_cols = adapter.get_columns_in_relation(target_relation) | map(attribute = 'name') | list -%}\n {%- set ns = namespace() -%} {#-- handle for-loop scoping with a namespace --#}\n {%- set ns.column_added = false -%}\n\n {%- set intersection = [] -%}\n {%- for col in query_columns -%}\n {%- if col in existing_cols -%}\n {%- do intersection.append(adapter.quote(col)) -%}\n {%- else -%}\n {% set ns.column_added = true %}\n {%- endif -%}\n {%- endfor -%}\n {{ return((ns.column_added, intersection)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.1964078, "supported_languages": null}, "macro.dbt.snapshot_check_strategy": {"name": "snapshot_check_strategy", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_check_strategy", "macro_sql": "{% macro snapshot_check_strategy(node, snapshotted_rel, current_rel, model_config, target_exists) %}\n {# The model_config parameter is no longer used, but is passed in anyway for compatibility. #}\n {% set check_cols_config = config.get('check_cols') %}\n {% set primary_key = config.get('unique_key') %}\n {% set hard_deletes = adapter.get_hard_deletes_behavior(config) %}\n {% set invalidate_hard_deletes = hard_deletes == 'invalidate' %}\n {% set updated_at = config.get('updated_at') or snapshot_get_time() %}\n\n {% set column_added = false %}\n\n {% set column_added, check_cols = snapshot_check_all_get_existing_columns(node, target_exists, check_cols_config) %}\n\n {%- set row_changed_expr -%}\n (\n {%- if column_added -%}\n {{ get_true_sql() }}\n {%- else -%}\n {%- for col in check_cols -%}\n {{ snapshotted_rel }}.{{ col }} != {{ current_rel }}.{{ col }}\n or\n (\n (({{ snapshotted_rel }}.{{ col }} is null) and not ({{ current_rel }}.{{ col }} is null))\n or\n ((not {{ snapshotted_rel }}.{{ col }} is null) and ({{ current_rel }}.{{ col }} is null))\n )\n {%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n {%- endif -%}\n )\n {%- endset %}\n\n {% set scd_args = api.Relation.scd_args(primary_key, updated_at) %}\n {% set scd_id_expr = snapshot_hash_arguments(scd_args) %}\n\n {% do return({\n \"unique_key\": primary_key,\n \"updated_at\": updated_at,\n \"row_changed\": row_changed_expr,\n \"scd_id\": scd_id_expr,\n \"invalidate_hard_deletes\": invalidate_hard_deletes,\n \"hard_deletes\": hard_deletes\n }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time", "macro.dbt.snapshot_check_all_get_existing_columns", "macro.dbt.get_true_sql", "macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.201361, "supported_languages": null}, "macro.dbt.materialization_snapshot_default": {"name": "materialization_snapshot_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot.sql", "original_file_path": "macros/materializations/snapshots/snapshot.sql", "unique_id": "macro.dbt.materialization_snapshot_default", "macro_sql": "{% materialization snapshot, default %}\n\n {%- set target_table = model.get('alias', model.get('name')) -%}\n\n {%- set strategy_name = config.get('strategy') -%}\n {%- set unique_key = config.get('unique_key') %}\n -- grab current tables grants config for comparision later on\n {%- set grant_config = config.get('grants') -%}\n\n {% set target_relation_exists, target_relation = get_or_create_relation(\n database=model.database,\n schema=model.schema,\n identifier=target_table,\n type='table') -%}\n\n {%- if not target_relation.is_table -%}\n {% do exceptions.relation_wrong_type(target_relation, 'table') %}\n {%- endif -%}\n\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set strategy_macro = strategy_dispatch(strategy_name) %}\n {# The model['config'] parameter below is no longer used, but passing anyway for compatibility #}\n {# It was a dictionary of config, instead of the config object from the context #}\n {% set strategy = strategy_macro(model, \"snapshotted_data\", \"source_data\", model['config'], target_relation_exists) %}\n\n {% if not target_relation_exists %}\n\n {% set build_sql = build_snapshot_table(strategy, model['compiled_code']) %}\n {% set build_or_select_sql = build_sql %}\n {% set final_sql = create_table_as(False, target_relation, build_sql) %}\n\n {% else %}\n\n {% set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() %}\n\n {{ adapter.assert_valid_snapshot_target_given_strategy(target_relation, columns, strategy) }}\n\n {% set build_or_select_sql = snapshot_staging_table(strategy, sql, target_relation) %}\n {% set staging_table = build_snapshot_staging_table(strategy, sql, target_relation) %}\n\n -- this may no-op if the database does not require column expansion\n {% do adapter.expand_target_column_types(from_relation=staging_table,\n to_relation=target_relation) %}\n\n {% set remove_columns = ['dbt_change_type', 'DBT_CHANGE_TYPE', 'dbt_unique_key', 'DBT_UNIQUE_KEY'] %}\n {% if unique_key | is_list %}\n {% for key in strategy.unique_key %}\n {{ remove_columns.append('dbt_unique_key_' + loop.index|string) }}\n {{ remove_columns.append('DBT_UNIQUE_KEY_' + loop.index|string) }}\n {% endfor %}\n {% endif %}\n\n {% set missing_columns = adapter.get_missing_columns(staging_table, target_relation)\n | rejectattr('name', 'in', remove_columns)\n | list %}\n\n {% do create_columns(target_relation, missing_columns) %}\n\n {% set source_columns = adapter.get_columns_in_relation(staging_table)\n | rejectattr('name', 'in', remove_columns)\n | list %}\n\n {% set quoted_source_columns = [] %}\n {% for column in source_columns %}\n {% do quoted_source_columns.append(adapter.quote(column.name)) %}\n {% endfor %}\n\n {% set final_sql = snapshot_merge_sql(\n target = target_relation,\n source = staging_table,\n insert_cols = quoted_source_columns\n )\n %}\n\n {% endif %}\n\n\n {{ check_time_data_types(build_or_select_sql) }}\n\n {% call statement('main') %}\n {{ final_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(target_relation_exists, full_refresh_mode=False) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if not target_relation_exists %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n {% if staging_table is defined %}\n {% do post_snapshot(staging_table) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.get_or_create_relation", "macro.dbt.run_hooks", "macro.dbt.strategy_dispatch", "macro.dbt.build_snapshot_table", "macro.dbt.create_table_as", "macro.dbt.get_snapshot_table_column_names", "macro.dbt.snapshot_staging_table", "macro.dbt.build_snapshot_staging_table", "macro.dbt.create_columns", "macro.dbt.snapshot_merge_sql", "macro.dbt.check_time_data_types", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes", "macro.dbt.post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2139325, "supported_languages": ["sql"]}, "macro.dbt.create_columns": {"name": "create_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.create_columns", "macro_sql": "{% macro create_columns(relation, columns) %}\n {{ adapter.dispatch('create_columns', 'dbt')(relation, columns) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__create_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2211108, "supported_languages": null}, "macro.dbt.default__create_columns": {"name": "default__create_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__create_columns", "macro_sql": "{% macro default__create_columns(relation, columns) %}\n {% for column in columns %}\n {% call statement() %}\n alter table {{ relation.render() }} add column {{ adapter.quote(column.name) }} {{ column.expanded_data_type }};\n {% endcall %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.222249, "supported_languages": null}, "macro.dbt.post_snapshot": {"name": "post_snapshot", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.post_snapshot", "macro_sql": "{% macro post_snapshot(staging_relation) %}\n {{ adapter.dispatch('post_snapshot', 'dbt')(staging_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2227616, "supported_languages": null}, "macro.dbt.default__post_snapshot": {"name": "default__post_snapshot", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__post_snapshot", "macro_sql": "{% macro default__post_snapshot(staging_relation) %}\n {# no-op #}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2230418, "supported_languages": null}, "macro.dbt.get_true_sql": {"name": "get_true_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_true_sql", "macro_sql": "{% macro get_true_sql() %}\n {{ adapter.dispatch('get_true_sql', 'dbt')() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_true_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.223476, "supported_languages": null}, "macro.dbt.default__get_true_sql": {"name": "default__get_true_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__get_true_sql", "macro_sql": "{% macro default__get_true_sql() %}\n {{ return('TRUE') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.223848, "supported_languages": null}, "macro.dbt.snapshot_staging_table": {"name": "snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.snapshot_staging_table", "macro_sql": "{% macro snapshot_staging_table(strategy, source_sql, target_relation) -%}\n {{ adapter.dispatch('snapshot_staging_table', 'dbt')(strategy, source_sql, target_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__snapshot_staging_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2244658, "supported_languages": null}, "macro.dbt.get_snapshot_table_column_names": {"name": "get_snapshot_table_column_names", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_snapshot_table_column_names", "macro_sql": "{% macro get_snapshot_table_column_names() %}\n {{ return({'dbt_valid_to': 'dbt_valid_to', 'dbt_valid_from': 'dbt_valid_from', 'dbt_scd_id': 'dbt_scd_id', 'dbt_updated_at': 'dbt_updated_at', 'dbt_is_deleted': 'dbt_is_deleted'}) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.225236, "supported_languages": null}, "macro.dbt.default__snapshot_staging_table": {"name": "default__snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__snapshot_staging_table", "macro_sql": "{% macro default__snapshot_staging_table(strategy, source_sql, target_relation) -%}\n {% set columns = config.get('snapshot_table_column_names') or get_snapshot_table_column_names() %}\n {% if strategy.hard_deletes == 'new_record' %}\n {% set new_scd_id = snapshot_hash_arguments([columns.dbt_scd_id, snapshot_get_time()]) %}\n {% endif %}\n with snapshot_query as (\n\n {{ source_sql }}\n\n ),\n\n snapshotted_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }}\n from {{ target_relation }}\n where\n {% if config.get('dbt_valid_to_current') %}\n\t\t{% set source_unique_key = columns.dbt_valid_to | trim %}\n\t\t{% set target_unique_key = config.get('dbt_valid_to_current') | trim %}\n\n\t\t{# The exact equals semantics between NULL values depends on the current behavior flag set. Also, update records if the source field is null #}\n ( {{ equals(source_unique_key, target_unique_key) }} or {{ source_unique_key }} is null )\n {% else %}\n {{ columns.dbt_valid_to }} is null\n {% endif %}\n\n ),\n\n insertions_source_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ get_dbt_valid_to_current(strategy, columns) }},\n {{ strategy.scd_id }} as {{ columns.dbt_scd_id }}\n\n from snapshot_query\n ),\n\n updates_source_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_to }}\n\n from snapshot_query\n ),\n\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n\n deletes_source_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }}\n from snapshot_query\n ),\n {% endif %}\n\n insertions as (\n\n select\n 'insert' as dbt_change_type,\n source_data.*\n {%- if strategy.hard_deletes == 'new_record' -%}\n ,'False' as {{ columns.dbt_is_deleted }}\n {%- endif %}\n\n from insertions_source_data as source_data\n left outer join snapshotted_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"snapshotted_data\") }}\n or ({{ unique_key_is_not_null(strategy.unique_key, \"snapshotted_data\") }} and (\n {{ strategy.row_changed }} {%- if strategy.hard_deletes == 'new_record' -%} or snapshotted_data.{{ columns.dbt_is_deleted }} = 'True' {% endif %}\n )\n\n )\n\n ),\n\n updates as (\n\n select\n 'update' as dbt_change_type,\n source_data.*,\n snapshotted_data.{{ columns.dbt_scd_id }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , snapshotted_data.{{ columns.dbt_is_deleted }}\n {%- endif %}\n\n from updates_source_data as source_data\n join snapshotted_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where (\n {{ strategy.row_changed }} {%- if strategy.hard_deletes == 'new_record' -%} or snapshotted_data.{{ columns.dbt_is_deleted }} = 'True' {% endif %}\n )\n )\n\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n ,\n deletes as (\n\n select\n 'delete' as dbt_change_type,\n source_data.*,\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_from }},\n {{ snapshot_get_time() }} as {{ columns.dbt_updated_at }},\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_to }},\n snapshotted_data.{{ columns.dbt_scd_id }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , snapshotted_data.{{ columns.dbt_is_deleted }}\n {%- endif %}\n from snapshotted_data\n left join deletes_source_data as source_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"source_data\") }}\n\n {%- if strategy.hard_deletes == 'new_record' %}\n and not (\n --avoid updating the record's valid_to if the latest entry is marked as deleted\n snapshotted_data.{{ columns.dbt_is_deleted }} = 'True'\n and\n {% if config.get('dbt_valid_to_current') -%}\n snapshotted_data.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }}\n {%- else -%}\n snapshotted_data.{{ columns.dbt_valid_to }} is null\n {%- endif %}\n )\n {%- endif %}\n )\n {%- endif %}\n\n {%- if strategy.hard_deletes == 'new_record' %}\n {% set snapshotted_cols = get_list_of_column_names(get_columns_in_relation(target_relation)) %}\n {% set source_sql_cols = get_column_schema_from_query(source_sql) %}\n ,\n deletion_records as (\n\n select\n 'insert' as dbt_change_type,\n {#/*\n If a column has been added to the source it won't yet exist in the\n snapshotted table so we insert a null value as a placeholder for the column.\n */#}\n {%- for col in source_sql_cols -%}\n {%- if col.name in snapshotted_cols -%}\n snapshotted_data.{{ adapter.quote(col.column) }},\n {%- else -%}\n NULL as {{ adapter.quote(col.column) }},\n {%- endif -%}\n {% endfor -%}\n {%- if strategy.unique_key | is_list -%}\n {%- for key in strategy.unique_key -%}\n snapshotted_data.{{ key }} as dbt_unique_key_{{ loop.index }},\n {% endfor -%}\n {%- else -%}\n snapshotted_data.dbt_unique_key as dbt_unique_key,\n {% endif -%}\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_from }},\n {{ snapshot_get_time() }} as {{ columns.dbt_updated_at }},\n snapshotted_data.{{ columns.dbt_valid_to }} as {{ columns.dbt_valid_to }},\n {{ new_scd_id }} as {{ columns.dbt_scd_id }},\n 'True' as {{ columns.dbt_is_deleted }}\n from snapshotted_data\n left join deletes_source_data as source_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"source_data\") }}\n and not (\n --avoid inserting a new record if the latest one is marked as deleted\n snapshotted_data.{{ columns.dbt_is_deleted }} = 'True'\n and\n {% if config.get('dbt_valid_to_current') -%}\n snapshotted_data.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }}\n {%- else -%}\n snapshotted_data.{{ columns.dbt_valid_to }} is null\n {%- endif %}\n )\n\n )\n {%- endif %}\n\n select * from insertions\n union all\n select * from updates\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n union all\n select * from deletes\n {%- endif %}\n {%- if strategy.hard_deletes == 'new_record' %}\n union all\n select * from deletion_records\n {%- endif %}\n\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.snapshot_hash_arguments", "macro.dbt.snapshot_get_time", "macro.dbt.unique_key_fields", "macro.dbt.equals", "macro.dbt.get_dbt_valid_to_current", "macro.dbt.unique_key_join_on", "macro.dbt.unique_key_is_null", "macro.dbt.unique_key_is_not_null", "macro.dbt.get_list_of_column_names", "macro.dbt.get_columns_in_relation", "macro.dbt.get_column_schema_from_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2399411, "supported_languages": null}, "macro.dbt.build_snapshot_table": {"name": "build_snapshot_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.build_snapshot_table", "macro_sql": "{% macro build_snapshot_table(strategy, sql) -%}\n {{ adapter.dispatch('build_snapshot_table', 'dbt')(strategy, sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__build_snapshot_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2406676, "supported_languages": null}, "macro.dbt.default__build_snapshot_table": {"name": "default__build_snapshot_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__build_snapshot_table", "macro_sql": "{% macro default__build_snapshot_table(strategy, sql) %}\n {% set columns = config.get('snapshot_table_column_names') or get_snapshot_table_column_names() %}\n\n select *,\n {{ strategy.scd_id }} as {{ columns.dbt_scd_id }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ get_dbt_valid_to_current(strategy, columns) }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , 'False' as {{ columns.dbt_is_deleted }}\n {% endif -%}\n from (\n {{ sql }}\n ) sbq\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.get_dbt_valid_to_current"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2423801, "supported_languages": null}, "macro.dbt.build_snapshot_staging_table": {"name": "build_snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.build_snapshot_staging_table", "macro_sql": "{% macro build_snapshot_staging_table(strategy, sql, target_relation) %}\n {% set temp_relation = make_temp_relation(target_relation) %}\n\n {% set select = snapshot_staging_table(strategy, sql, target_relation) %}\n\n {% call statement('build_snapshot_staging_relation') %}\n {{ create_table_as(True, temp_relation, select) }}\n {% endcall %}\n\n {% do return(temp_relation) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_temp_relation", "macro.dbt.snapshot_staging_table", "macro.dbt.statement", "macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2436821, "supported_languages": null}, "macro.dbt.get_updated_at_column_data_type": {"name": "get_updated_at_column_data_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_updated_at_column_data_type", "macro_sql": "{% macro get_updated_at_column_data_type(snapshot_sql) %}\n {% set snapshot_sql_column_schema = get_column_schema_from_query(snapshot_sql) %}\n {% set dbt_updated_at_data_type = null %}\n {% set ns = namespace() -%} {#-- handle for-loop scoping with a namespace --#}\n {% set ns.dbt_updated_at_data_type = null -%}\n {% for column in snapshot_sql_column_schema %}\n {% if ((column.column == 'dbt_updated_at') or (column.column == 'DBT_UPDATED_AT')) %}\n {% set ns.dbt_updated_at_data_type = column.dtype %}\n {% endif %}\n {% endfor %}\n {{ return(ns.dbt_updated_at_data_type or none) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_column_schema_from_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2455225, "supported_languages": null}, "macro.dbt.check_time_data_types": {"name": "check_time_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.check_time_data_types", "macro_sql": "{% macro check_time_data_types(sql) %}\n {% set dbt_updated_at_data_type = get_updated_at_column_data_type(sql) %}\n {% set snapshot_get_time_data_type = get_snapshot_get_time_data_type() %}\n {% if snapshot_get_time_data_type is not none and dbt_updated_at_data_type is not none and snapshot_get_time_data_type != dbt_updated_at_data_type %}\n {% if exceptions.warn_snapshot_timestamp_data_types %}\n {{ exceptions.warn_snapshot_timestamp_data_types(snapshot_get_time_data_type, dbt_updated_at_data_type) }}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_updated_at_column_data_type", "macro.dbt.get_snapshot_get_time_data_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2468612, "supported_languages": null}, "macro.dbt.get_dbt_valid_to_current": {"name": "get_dbt_valid_to_current", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_dbt_valid_to_current", "macro_sql": "{% macro get_dbt_valid_to_current(strategy, columns) %}\n {% set dbt_valid_to_current = config.get('dbt_valid_to_current') or \"null\" %}\n coalesce(nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}), {{dbt_valid_to_current}})\n as {{ columns.dbt_valid_to }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2477348, "supported_languages": null}, "macro.dbt.unique_key_fields": {"name": "unique_key_fields", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_fields", "macro_sql": "{% macro unique_key_fields(unique_key) %}\n {% if unique_key | is_list %}\n {% for key in unique_key %}\n {{ key }} as dbt_unique_key_{{ loop.index }}\n {%- if not loop.last %} , {%- endif %}\n {% endfor %}\n {% else %}\n {{ unique_key }} as dbt_unique_key\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2488165, "supported_languages": null}, "macro.dbt.unique_key_join_on": {"name": "unique_key_join_on", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_join_on", "macro_sql": "{% macro unique_key_join_on(unique_key, identifier, from_identifier) %}\n {% if unique_key | is_list %}\n {% for key in unique_key %}\n\t {% set source_unique_key = (identifier ~ \".dbt_unique_key_\" ~ loop.index) | trim %}\n\t {% set target_unique_key = (from_identifier ~ \".dbt_unique_key_\" ~ loop.index) | trim %}\n\t {{ equals(source_unique_key, target_unique_key) }}\n {%- if not loop.last %} and {%- endif %}\n {% endfor %}\n {% else %}\n {{ identifier }}.dbt_unique_key = {{ from_identifier }}.dbt_unique_key\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2506208, "supported_languages": null}, "macro.dbt.unique_key_is_null": {"name": "unique_key_is_null", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_is_null", "macro_sql": "{% macro unique_key_is_null(unique_key, identifier) %}\n {% if unique_key | is_list %}\n {{ identifier }}.dbt_unique_key_1 is null\n {% else %}\n {{ identifier }}.dbt_unique_key is null\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2513826, "supported_languages": null}, "macro.dbt.unique_key_is_not_null": {"name": "unique_key_is_not_null", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_is_not_null", "macro_sql": "{% macro unique_key_is_not_null(unique_key, identifier) %}\n {% if unique_key | is_list %}\n {{ identifier }}.dbt_unique_key_1 is not null\n {% else %}\n {{ identifier }}.dbt_unique_key is not null\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2521007, "supported_languages": null}, "macro.dbt.snapshot_merge_sql": {"name": "snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "unique_id": "macro.dbt.snapshot_merge_sql", "macro_sql": "{% macro snapshot_merge_sql(target, source, insert_cols) -%}\n {{ adapter.dispatch('snapshot_merge_sql', 'dbt')(target, source, insert_cols) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__snapshot_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2534804, "supported_languages": null}, "macro.dbt.default__snapshot_merge_sql": {"name": "default__snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "unique_id": "macro.dbt.default__snapshot_merge_sql", "macro_sql": "{% macro default__snapshot_merge_sql(target, source, insert_cols) -%}\n {%- set insert_cols_csv = insert_cols | join(', ') -%}\n\n {%- set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() -%}\n\n merge into {{ target.render() }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on DBT_INTERNAL_SOURCE.{{ columns.dbt_scd_id }} = DBT_INTERNAL_DEST.{{ columns.dbt_scd_id }}\n\n when matched\n {% if config.get(\"dbt_valid_to_current\") %}\n\t{% set source_unique_key = (\"DBT_INTERNAL_DEST.\" ~ columns.dbt_valid_to) | trim %}\n\t{% set target_unique_key = config.get('dbt_valid_to_current') | trim %}\n\tand ({{ equals(source_unique_key, target_unique_key) }} or {{ source_unique_key }} is null)\n\n {% else %}\n and DBT_INTERNAL_DEST.{{ columns.dbt_valid_to }} is null\n {% endif %}\n and DBT_INTERNAL_SOURCE.dbt_change_type in ('update', 'delete')\n then update\n set {{ columns.dbt_valid_to }} = DBT_INTERNAL_SOURCE.{{ columns.dbt_valid_to }}\n\n when not matched\n and DBT_INTERNAL_SOURCE.dbt_change_type = 'insert'\n then insert ({{ insert_cols_csv }})\n values ({{ insert_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2560427, "supported_languages": null}, "macro.dbt.get_where_subquery": {"name": "get_where_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "unique_id": "macro.dbt.get_where_subquery", "macro_sql": "{% macro get_where_subquery(relation) -%}\n {% do return(adapter.dispatch('get_where_subquery', 'dbt')(relation)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_where_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.257017, "supported_languages": null}, "macro.dbt.default__get_where_subquery": {"name": "default__get_where_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "unique_id": "macro.dbt.default__get_where_subquery", "macro_sql": "{% macro default__get_where_subquery(relation) -%}\n {% set where = config.get('where', '') %}\n {% if where %}\n {%- set filtered -%}\n (select * from {{ relation }} where {{ where }}) dbt_subquery\n {%- endset -%}\n {% do return(filtered) %}\n {%- else -%}\n {% do return(relation) %}\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2581968, "supported_languages": null}, "macro.dbt.materialization_unit_default": {"name": "materialization_unit_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/unit.sql", "original_file_path": "macros/materializations/tests/unit.sql", "unique_id": "macro.dbt.materialization_unit_default", "macro_sql": "{%- materialization unit, default -%}\n\n {% set relations = [] %}\n\n {% set expected_rows = config.get('expected_rows') %}\n {% set expected_sql = config.get('expected_sql') %}\n {% set tested_expected_column_names = expected_rows[0].keys() if (expected_rows | length ) > 0 else get_columns_in_query(sql) %}\n\n {%- set target_relation = this.incorporate(type='table') -%}\n {%- set temp_relation = make_temp_relation(target_relation)-%}\n {% do run_query(get_create_table_as_sql(True, temp_relation, get_empty_subquery_sql(sql))) %}\n {%- set columns_in_relation = adapter.get_columns_in_relation(temp_relation) -%}\n {%- set column_name_to_data_types = {} -%}\n {%- set column_name_to_quoted = {} -%}\n {%- for column in columns_in_relation -%}\n {%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}\n {%- do column_name_to_quoted.update({column.name|lower: column.quoted}) -%}\n {%- endfor -%}\n\n {%- set expected_column_names_quoted = [] -%}\n {%- for column_name in tested_expected_column_names -%}\n {%- do expected_column_names_quoted.append(column_name_to_quoted[column_name|lower]) -%}\n {%- endfor -%}\n\n {% if not expected_sql %}\n {% set expected_sql = get_expected_sql(expected_rows, column_name_to_data_types, column_name_to_quoted) %}\n {% endif %}\n {% set unit_test_sql = get_unit_test_sql(sql, expected_sql, expected_column_names_quoted) %}\n\n {% call statement('main', fetch_result=True) -%}\n\n {{ unit_test_sql }}\n\n {%- endcall %}\n\n {% do adapter.drop_relation(temp_relation) %}\n\n {{ return({'relations': relations}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.get_columns_in_query", "macro.dbt.make_temp_relation", "macro.dbt.run_query", "macro.dbt.get_create_table_as_sql", "macro.dbt.get_empty_subquery_sql", "macro.dbt.get_expected_sql", "macro.dbt.get_unit_test_sql", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.264086, "supported_languages": ["sql"]}, "macro.dbt.materialization_test_default": {"name": "materialization_test_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/test.sql", "original_file_path": "macros/materializations/tests/test.sql", "unique_id": "macro.dbt.materialization_test_default", "macro_sql": "{%- materialization test, default -%}\n\n {% set relations = [] %}\n {% set limit = config.get('limit') %}\n\n {% set sql_with_limit %}\n {{ get_limit_subquery_sql(sql, limit) }}\n {% endset %}\n\n {% if should_store_failures() %}\n\n {% set identifier = model['alias'] %}\n {% set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %}\n\n {% set store_failures_as = config.get('store_failures_as') %}\n -- if `--store-failures` is invoked via command line and `store_failures_as` is not set,\n -- config.get('store_failures_as', 'table') returns None, not 'table'\n {% if store_failures_as == none %}{% set store_failures_as = 'table' %}{% endif %}\n {% if store_failures_as not in ['table', 'view'] %}\n {{ exceptions.raise_compiler_error(\n \"'\" ~ store_failures_as ~ \"' is not a valid value for `store_failures_as`. \"\n \"Accepted values are: ['ephemeral', 'table', 'view']\"\n ) }}\n {% endif %}\n\n {% set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database, type=store_failures_as) -%} %}\n\n {% if old_relation %}\n {% do adapter.drop_relation(old_relation) %}\n {% endif %}\n\n {% call statement(auto_begin=True) %}\n {{ get_create_sql(target_relation, sql_with_limit) }}\n {% endcall %}\n\n {% do relations.append(target_relation) %}\n\n {# Since the test failures have already been saved to the database, reuse that result rather than querying again #}\n {% set main_sql %}\n select *\n from {{ target_relation }}\n {% endset %}\n\n {{ adapter.commit() }}\n\n {% else %}\n\n {% set main_sql = sql_with_limit %}\n\n {% endif %}\n\n {% set fail_calc = config.get('fail_calc') %}\n {% set warn_if = config.get('warn_if') %}\n {% set error_if = config.get('error_if') %}\n\n {% call statement('main', fetch_result=True) -%}\n\n {# The limit has already been included above, and we do not want to duplicate it again. We also want to be safe for macro overrides treating `limit` as a required parameter. #}\n {{ get_test_sql(main_sql, fail_calc, warn_if, error_if, limit=none)}}\n\n {%- endcall %}\n\n {{ return({'relations': relations}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.get_limit_subquery_sql", "macro.dbt.should_store_failures", "macro.dbt.statement", "macro.dbt.get_create_sql", "macro.dbt.get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2716084, "supported_languages": ["sql"]}, "macro.dbt.get_test_sql": {"name": "get_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.get_test_sql", "macro_sql": "{% macro get_test_sql(main_sql, fail_calc, warn_if, error_if, limit) -%}\n {{ adapter.dispatch('get_test_sql', 'dbt')(main_sql, fail_calc, warn_if, error_if, limit) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2734814, "supported_languages": null}, "macro.dbt.default__get_test_sql": {"name": "default__get_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.default__get_test_sql", "macro_sql": "{% macro default__get_test_sql(main_sql, fail_calc, warn_if, error_if, limit) -%}\n select\n {{ fail_calc }} as failures,\n {{ fail_calc }} {{ warn_if }} as should_warn,\n {{ fail_calc }} {{ error_if }} as should_error\n from (\n {{ main_sql }}\n {{ \"limit \" ~ limit if limit != none }}\n ) dbt_internal_test\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2745314, "supported_languages": null}, "macro.dbt.get_unit_test_sql": {"name": "get_unit_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.get_unit_test_sql", "macro_sql": "{% macro get_unit_test_sql(main_sql, expected_fixture_sql, expected_column_names) -%}\n {{ adapter.dispatch('get_unit_test_sql', 'dbt')(main_sql, expected_fixture_sql, expected_column_names) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_unit_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2751684, "supported_languages": null}, "macro.dbt.default__get_unit_test_sql": {"name": "default__get_unit_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.default__get_unit_test_sql", "macro_sql": "{% macro default__get_unit_test_sql(main_sql, expected_fixture_sql, expected_column_names) -%}\n-- Build actual result given inputs\nwith dbt_internal_unit_test_actual as (\n select\n {% for expected_column_name in expected_column_names %}{{expected_column_name}}{% if not loop.last -%},{% endif %}{%- endfor -%}, {{ dbt.string_literal(\"actual\") }} as {{ adapter.quote(\"actual_or_expected\") }}\n from (\n {{ main_sql }}\n ) _dbt_internal_unit_test_actual\n),\n-- Build expected result\ndbt_internal_unit_test_expected as (\n select\n {% for expected_column_name in expected_column_names %}{{expected_column_name}}{% if not loop.last -%}, {% endif %}{%- endfor -%}, {{ dbt.string_literal(\"expected\") }} as {{ adapter.quote(\"actual_or_expected\") }}\n from (\n {{ expected_fixture_sql }}\n ) _dbt_internal_unit_test_expected\n)\n-- Union actual and expected results\nselect * from dbt_internal_unit_test_actual\nunion all\nselect * from dbt_internal_unit_test_expected\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2770429, "supported_languages": null}, "macro.dbt.materialization_seed_default": {"name": "materialization_seed_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/seed.sql", "original_file_path": "macros/materializations/seeds/seed.sql", "unique_id": "macro.dbt.materialization_seed_default", "macro_sql": "{% materialization seed, default %}\n\n {%- set identifier = model['alias'] -%}\n {%- set full_refresh_mode = (should_full_refresh()) -%}\n\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n\n {%- set exists_as_table = (old_relation is not none and old_relation.is_table) -%}\n {%- set exists_as_view = (old_relation is not none and old_relation.is_view) -%}\n\n {%- set grant_config = config.get('grants') -%}\n {%- set agate_table = load_agate_table() -%}\n -- grab current tables grants config for comparison later on\n\n {%- do store_result('agate_table', response='OK', agate_table=agate_table) -%}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% set create_table_sql = \"\" %}\n {% if exists_as_view %}\n {{ exceptions.raise_compiler_error(\"Cannot seed to '{}', it is a view\".format(old_relation.render())) }}\n {% elif exists_as_table %}\n {% set create_table_sql = reset_csv_table(model, full_refresh_mode, old_relation, agate_table) %}\n {% else %}\n {% set create_table_sql = create_csv_table(model, agate_table) %}\n {% endif %}\n\n {% set code = 'CREATE' if full_refresh_mode else 'INSERT' %}\n {% set rows_affected = (agate_table.rows | length) %}\n {% set sql = load_csv_rows(model, agate_table) %}\n\n {% call noop_statement('main', code ~ ' ' ~ rows_affected, code, rows_affected) %}\n {{ get_csv_sql(create_table_sql, sql) }};\n {% endcall %}\n\n {% set target_relation = this.incorporate(type='table') %}\n\n {% set should_revoke = should_revoke(old_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if full_refresh_mode or not exists_as_table %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n -- `COMMIT` happens here\n {{ adapter.commit() }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh", "macro.dbt.run_hooks", "macro.dbt.reset_csv_table", "macro.dbt.create_csv_table", "macro.dbt.load_csv_rows", "macro.dbt.noop_statement", "macro.dbt.get_csv_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2855668, "supported_languages": ["sql"]}, "macro.dbt.create_csv_table": {"name": "create_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.create_csv_table", "macro_sql": "{% macro create_csv_table(model, agate_table) -%}\n {{ adapter.dispatch('create_csv_table', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2887626, "supported_languages": null}, "macro.dbt.default__create_csv_table": {"name": "default__create_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__create_csv_table", "macro_sql": "{% macro default__create_csv_table(model, agate_table) %}\n {%- set column_override = model['config'].get('column_types', {}) -%}\n {%- set quote_seed_column = model['config'].get('quote_columns', None) -%}\n\n {% set sql %}\n create table {{ this.render() }} (\n {%- for col_name in agate_table.column_names -%}\n {%- set inferred_type = adapter.convert_type(agate_table, loop.index0) -%}\n {%- set type = column_override.get(col_name, inferred_type) -%}\n {%- set column_name = (col_name | string) -%}\n {{ adapter.quote_seed_column(column_name, quote_seed_column) }} {{ type }} {%- if not loop.last -%}, {%- endif -%}\n {%- endfor -%}\n )\n {% endset %}\n\n {% call statement('_') -%}\n {{ sql }}\n {%- endcall %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2914975, "supported_languages": null}, "macro.dbt.reset_csv_table": {"name": "reset_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.reset_csv_table", "macro_sql": "{% macro reset_csv_table(model, full_refresh, old_relation, agate_table) -%}\n {{ adapter.dispatch('reset_csv_table', 'dbt')(model, full_refresh, old_relation, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__reset_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2922027, "supported_languages": null}, "macro.dbt.default__reset_csv_table": {"name": "default__reset_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__reset_csv_table", "macro_sql": "{% macro default__reset_csv_table(model, full_refresh, old_relation, agate_table) %}\n {% set sql = \"\" %}\n {% if full_refresh %}\n {{ adapter.drop_relation(old_relation) }}\n {% set sql = create_csv_table(model, agate_table) %}\n {% else %}\n {{ adapter.truncate_relation(old_relation) }}\n {% set sql = \"truncate table \" ~ old_relation.render() %}\n {% endif %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2937975, "supported_languages": null}, "macro.dbt.get_csv_sql": {"name": "get_csv_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_csv_sql", "macro_sql": "{% macro get_csv_sql(create_or_truncate_sql, insert_sql) %}\n {{ adapter.dispatch('get_csv_sql', 'dbt')(create_or_truncate_sql, insert_sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_csv_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2943587, "supported_languages": null}, "macro.dbt.default__get_csv_sql": {"name": "default__get_csv_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_csv_sql", "macro_sql": "{% macro default__get_csv_sql(create_or_truncate_sql, insert_sql) %}\n {{ create_or_truncate_sql }};\n -- dbt seed --\n {{ insert_sql }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2948003, "supported_languages": null}, "macro.dbt.get_binding_char": {"name": "get_binding_char", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_binding_char", "macro_sql": "{% macro get_binding_char() -%}\n {{ adapter.dispatch('get_binding_char', 'dbt')() }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.295215, "supported_languages": null}, "macro.dbt.default__get_binding_char": {"name": "default__get_binding_char", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_binding_char", "macro_sql": "{% macro default__get_binding_char() %}\n {{ return('%s') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2955675, "supported_languages": null}, "macro.dbt.get_batch_size": {"name": "get_batch_size", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_batch_size", "macro_sql": "{% macro get_batch_size() -%}\n {{ return(adapter.dispatch('get_batch_size', 'dbt')()) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2960427, "supported_languages": null}, "macro.dbt.default__get_batch_size": {"name": "default__get_batch_size", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_batch_size", "macro_sql": "{% macro default__get_batch_size() %}\n {{ return(10000) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2963798, "supported_languages": null}, "macro.dbt.get_seed_column_quoted_csv": {"name": "get_seed_column_quoted_csv", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_seed_column_quoted_csv", "macro_sql": "{% macro get_seed_column_quoted_csv(model, column_names) %}\n {%- set quote_seed_column = model['config'].get('quote_columns', None) -%}\n {% set quoted = [] %}\n {% for col in column_names -%}\n {%- do quoted.append(adapter.quote_seed_column(col, quote_seed_column)) -%}\n {%- endfor %}\n\n {%- set dest_cols_csv = quoted | join(', ') -%}\n {{ return(dest_cols_csv) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.297826, "supported_languages": null}, "macro.dbt.load_csv_rows": {"name": "load_csv_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.load_csv_rows", "macro_sql": "{% macro load_csv_rows(model, agate_table) -%}\n {{ adapter.dispatch('load_csv_rows', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__load_csv_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.2983737, "supported_languages": null}, "macro.dbt.default__load_csv_rows": {"name": "default__load_csv_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__load_csv_rows", "macro_sql": "{% macro default__load_csv_rows(model, agate_table) %}\n\n {% set batch_size = get_batch_size() %}\n\n {% set cols_sql = get_seed_column_quoted_csv(model, agate_table.column_names) %}\n {% set bindings = [] %}\n\n {% set statements = [] %}\n\n {% for chunk in agate_table.rows | batch(batch_size) %}\n {% set bindings = [] %}\n\n {% for row in chunk %}\n {% do bindings.extend(row) %}\n {% endfor %}\n\n {% set sql %}\n insert into {{ this.render() }} ({{ cols_sql }}) values\n {% for row in chunk -%}\n ({%- for column in agate_table.column_names -%}\n {{ get_binding_char() }}\n {%- if not loop.last%},{%- endif %}\n {%- endfor -%})\n {%- if not loop.last%},{%- endif %}\n {%- endfor %}\n {% endset %}\n\n {% do adapter.add_query(sql, bindings=bindings, abridge_sql_log=True) %}\n\n {% if loop.index0 == 0 %}\n {% do statements.append(sql) %}\n {% endif %}\n {% endfor %}\n\n {# Return SQL so we can render it out into the compiled files #}\n {{ return(statements[0]) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_batch_size", "macro.dbt.get_seed_column_quoted_csv", "macro.dbt.get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3022628, "supported_languages": null}, "macro.dbt.materialization_table_default": {"name": "materialization_table_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table.sql", "original_file_path": "macros/materializations/models/table.sql", "unique_id": "macro.dbt.materialization_table_default", "macro_sql": "{% materialization table, default %}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') %}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n See ../view/view.sql for more information about this relation.\n */\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_table_as_sql(False, intermediate_relation, sql) }}\n {%- endcall %}\n\n {% do create_indexes(intermediate_relation) %}\n\n -- cleanup\n {% if existing_relation is not none %}\n /* Do the equivalent of rename_if_exists. 'existing_relation' could have been dropped\n since the variable was first set. */\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n {% endif %}\n\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n -- `COMMIT` happens here\n {{ adapter.commit() }}\n\n -- finally, drop the existing/backup relation after the commit\n {{ drop_relation_if_exists(backup_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.get_create_table_as_sql", "macro.dbt.create_indexes", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3089895, "supported_languages": ["sql"]}, "macro.dbt.materialization_view_default": {"name": "materialization_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view.sql", "original_file_path": "macros/materializations/models/view.sql", "unique_id": "macro.dbt.materialization_view_default", "macro_sql": "{%- materialization view, default -%}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='view') -%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n This relation (probably) doesn't exist yet. If it does exist, it's a leftover from\n a previous run, and we're going to try to drop it immediately. At the end of this\n materialization, we're going to rename the \"existing_relation\" to this identifier,\n and then we're going to drop it. In order to make sure we run the correct one of:\n - drop view ...\n - drop table ...\n\n We need to set the type of this relation to be the type of the existing_relation, if it exists,\n or else \"view\" as a sane default if it does not. Note that if the existing_relation does not\n exist, then there is nothing to move out of the way and subsequentally drop. In that case,\n this relation will be effectively unused.\n */\n {%- set backup_relation_type = 'view' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_view_as_sql(intermediate_relation, sql) }}\n {%- endcall %}\n\n -- cleanup\n -- move the existing view out of the way\n {% if existing_relation is not none %}\n /* Do the equivalent of rename_if_exists. 'existing_relation' could have been dropped\n since the variable was first set. */\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n {% endif %}\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n {{ drop_relation_if_exists(backup_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.run_hooks", "macro.dbt.drop_relation_if_exists", "macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.315592, "supported_languages": ["sql"]}, "macro.dbt.materialization_materialized_view_default": {"name": "materialization_materialized_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialization_materialized_view_default", "macro_sql": "{% materialization materialized_view, default %}\n {% set existing_relation = load_cached_relation(this) %}\n {% set target_relation = this.incorporate(type=this.MaterializedView) %}\n {% set intermediate_relation = make_intermediate_relation(target_relation) %}\n {% set backup_relation_type = target_relation.MaterializedView if existing_relation is none else existing_relation.type %}\n {% set backup_relation = make_backup_relation(target_relation, backup_relation_type) %}\n\n {{ materialized_view_setup(backup_relation, intermediate_relation, pre_hooks) }}\n\n {% set build_sql = materialized_view_get_build_sql(existing_relation, target_relation, backup_relation, intermediate_relation) %}\n\n {% if build_sql == '' %}\n {{ materialized_view_execute_no_op(target_relation) }}\n {% else %}\n {{ materialized_view_execute_build_sql(build_sql, existing_relation, target_relation, post_hooks) }}\n {% endif %}\n\n {{ materialized_view_teardown(backup_relation, intermediate_relation, post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.materialized_view_setup", "macro.dbt.materialized_view_get_build_sql", "macro.dbt.materialized_view_execute_no_op", "macro.dbt.materialized_view_execute_build_sql", "macro.dbt.materialized_view_teardown"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.32084, "supported_languages": ["sql"]}, "macro.dbt.materialized_view_setup": {"name": "materialized_view_setup", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_setup", "macro_sql": "{% macro materialized_view_setup(backup_relation, intermediate_relation, pre_hooks) %}\n\n -- backup_relation and intermediate_relation should not already exist in the database\n -- it's possible these exist because of a previous run that exited unexpectedly\n {% set preexisting_backup_relation = load_cached_relation(backup_relation) %}\n {% set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) %}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3220234, "supported_languages": null}, "macro.dbt.materialized_view_teardown": {"name": "materialized_view_teardown", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_teardown", "macro_sql": "{% macro materialized_view_teardown(backup_relation, intermediate_relation, post_hooks) %}\n\n -- drop the temp relations if they exist to leave the database clean for the next run\n {{ drop_relation_if_exists(backup_relation) }}\n {{ drop_relation_if_exists(intermediate_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3228414, "supported_languages": null}, "macro.dbt.materialized_view_get_build_sql": {"name": "materialized_view_get_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_get_build_sql", "macro_sql": "{% macro materialized_view_get_build_sql(existing_relation, target_relation, backup_relation, intermediate_relation) %}\n\n {% set full_refresh_mode = should_full_refresh() %}\n\n -- determine the scenario we're in: create, full_refresh, alter, refresh data\n {% if existing_relation is none %}\n {% set build_sql = get_create_materialized_view_as_sql(target_relation, sql) %}\n {% elif full_refresh_mode or not existing_relation.is_materialized_view %}\n {% set build_sql = get_replace_sql(existing_relation, target_relation, sql) %}\n {% else %}\n\n -- get config options\n {% set on_configuration_change = config.get('on_configuration_change') %}\n {% set configuration_changes = get_materialized_view_configuration_changes(existing_relation, config) %}\n\n {% if configuration_changes is none %}\n {% set build_sql = refresh_materialized_view(target_relation) %}\n\n {% elif on_configuration_change == 'apply' %}\n {% set build_sql = get_alter_materialized_view_as_sql(target_relation, configuration_changes, sql, existing_relation, backup_relation, intermediate_relation) %}\n {% elif on_configuration_change == 'continue' %}\n {% set build_sql = '' %}\n {{ exceptions.warn(\"Configuration changes were identified and `on_configuration_change` was set to `continue` for `\" ~ target_relation.render() ~ \"`\") }}\n {% elif on_configuration_change == 'fail' %}\n {{ exceptions.raise_fail_fast_error(\"Configuration changes were identified and `on_configuration_change` was set to `fail` for `\" ~ target_relation.render() ~ \"`\") }}\n\n {% else %}\n -- this only happens if the user provides a value other than `apply`, 'skip', 'fail'\n {{ exceptions.raise_compiler_error(\"Unexpected configuration scenario\") }}\n\n {% endif %}\n\n {% endif %}\n\n {% do return(build_sql) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh", "macro.dbt.get_create_materialized_view_as_sql", "macro.dbt.get_replace_sql", "macro.dbt.get_materialized_view_configuration_changes", "macro.dbt.refresh_materialized_view", "macro.dbt.get_alter_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.327178, "supported_languages": null}, "macro.dbt.materialized_view_execute_no_op": {"name": "materialized_view_execute_no_op", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_execute_no_op", "macro_sql": "{% macro materialized_view_execute_no_op(target_relation) %}\n {% do store_raw_result(\n name=\"main\",\n message=\"skip \" ~ target_relation,\n code=\"skip\",\n rows_affected=\"-1\"\n ) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3278828, "supported_languages": null}, "macro.dbt.materialized_view_execute_build_sql": {"name": "materialized_view_execute_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_execute_build_sql", "macro_sql": "{% macro materialized_view_execute_build_sql(build_sql, existing_relation, target_relation, post_hooks) %}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set grant_config = config.get('grants') %}\n\n {% call statement(name=\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3298786, "supported_languages": null}, "macro.dbt.get_quoted_csv": {"name": "get_quoted_csv", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.get_quoted_csv", "macro_sql": "{% macro get_quoted_csv(column_names) %}\n\n {% set quoted = [] %}\n {% for col in column_names -%}\n {%- do quoted.append(adapter.quote(col)) -%}\n {%- endfor %}\n\n {%- set dest_cols_csv = quoted | join(', ') -%}\n {{ return(dest_cols_csv) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.332689, "supported_languages": null}, "macro.dbt.diff_columns": {"name": "diff_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.diff_columns", "macro_sql": "{% macro diff_columns(source_columns, target_columns) %}\n\n {% set result = [] %}\n {% set source_names = source_columns | map(attribute = 'column') | list %}\n {% set target_names = target_columns | map(attribute = 'column') | list %}\n\n {# --check whether the name attribute exists in the target - this does not perform a data type check #}\n {% for sc in source_columns %}\n {% if sc.name not in target_names %}\n {{ result.append(sc) }}\n {% endif %}\n {% endfor %}\n\n {{ return(result) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3343906, "supported_languages": null}, "macro.dbt.diff_column_data_types": {"name": "diff_column_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.diff_column_data_types", "macro_sql": "{% macro diff_column_data_types(source_columns, target_columns) %}\n {{ return(adapter.dispatch('diff_column_data_types', 'dbt')(source_columns, target_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__diff_column_data_types"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.33503, "supported_languages": null}, "macro.dbt.default__diff_column_data_types": {"name": "default__diff_column_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.default__diff_column_data_types", "macro_sql": "{% macro default__diff_column_data_types(source_columns, target_columns) %}\n {% set result = [] %}\n {% for sc in source_columns %}\n {% set tc = target_columns | selectattr(\"name\", \"equalto\", sc.name) | list | first %}\n {% if tc %}\n {% if sc.expanded_data_type != tc.expanded_data_type and not sc.can_expand_to(other_column=tc) %}\n {{ result.append( { 'column_name': tc.name, 'new_type': sc.expanded_data_type } ) }}\n {% endif %}\n {% endif %}\n {% endfor %}\n\n {{ return(result) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3370552, "supported_languages": null}, "macro.dbt.get_merge_update_columns": {"name": "get_merge_update_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.get_merge_update_columns", "macro_sql": "{% macro get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %}\n {{ return(adapter.dispatch('get_merge_update_columns', 'dbt')(merge_update_columns, merge_exclude_columns, dest_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_update_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3377566, "supported_languages": null}, "macro.dbt.default__get_merge_update_columns": {"name": "default__get_merge_update_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.default__get_merge_update_columns", "macro_sql": "{% macro default__get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %}\n {%- set default_cols = dest_columns | map(attribute=\"quoted\") | list -%}\n\n {%- if merge_update_columns and merge_exclude_columns -%}\n {{ exceptions.raise_compiler_error(\n 'Model cannot specify merge_update_columns and merge_exclude_columns. Please update model to use only one config'\n )}}\n {%- elif merge_update_columns -%}\n {%- set update_columns = merge_update_columns -%}\n {%- elif merge_exclude_columns -%}\n {%- set update_columns = [] -%}\n {%- for column in dest_columns -%}\n {% if column.column | lower not in merge_exclude_columns | map(\"lower\") | list %}\n {%- do update_columns.append(column.quoted) -%}\n {% endif %}\n {%- endfor -%}\n {%- else -%}\n {%- set update_columns = default_cols -%}\n {%- endif -%}\n\n {{ return(update_columns) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3399885, "supported_languages": null}, "macro.dbt.incremental_validate_on_schema_change": {"name": "incremental_validate_on_schema_change", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.incremental_validate_on_schema_change", "macro_sql": "{% macro incremental_validate_on_schema_change(on_schema_change, default='ignore') %}\n\n {% if on_schema_change not in ['sync_all_columns', 'append_new_columns', 'fail', 'ignore'] %}\n\n {% set log_message = 'Invalid value for on_schema_change (%s) specified. Setting default value of %s.' % (on_schema_change, default) %}\n {% do log(log_message) %}\n\n {{ return(default) }}\n\n {% else %}\n\n {{ return(on_schema_change) }}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3441617, "supported_languages": null}, "macro.dbt.check_for_schema_changes": {"name": "check_for_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.check_for_schema_changes", "macro_sql": "{% macro check_for_schema_changes(source_relation, target_relation) %}\n {{ return(adapter.dispatch('check_for_schema_changes', 'dbt')(source_relation, target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__check_for_schema_changes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.344794, "supported_languages": null}, "macro.dbt.default__check_for_schema_changes": {"name": "default__check_for_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.default__check_for_schema_changes", "macro_sql": "{% macro default__check_for_schema_changes(source_relation, target_relation) %}\n\n {% set schema_changed = False %}\n\n {%- set source_columns = adapter.get_columns_in_relation(source_relation) -%}\n {%- set target_columns = adapter.get_columns_in_relation(target_relation) -%}\n {%- set source_not_in_target = diff_columns(source_columns, target_columns) -%}\n {%- set target_not_in_source = diff_columns(target_columns, source_columns) -%}\n\n {% set new_target_types = diff_column_data_types(source_columns, target_columns) %}\n\n {% if source_not_in_target != [] %}\n {% set schema_changed = True %}\n {% elif target_not_in_source != [] or new_target_types != [] %}\n {% set schema_changed = True %}\n {% elif new_target_types != [] %}\n {% set schema_changed = True %}\n {% endif %}\n\n {% set changes_dict = {\n 'schema_changed': schema_changed,\n 'source_not_in_target': source_not_in_target,\n 'target_not_in_source': target_not_in_source,\n 'source_columns': source_columns,\n 'target_columns': target_columns,\n 'new_target_types': new_target_types\n } %}\n\n {% set msg %}\n In {{ target_relation }}:\n Schema changed: {{ schema_changed }}\n Source columns not in target: {{ source_not_in_target }}\n Target columns not in source: {{ target_not_in_source }}\n New column types: {{ new_target_types }}\n {% endset %}\n\n {% do log(msg) %}\n\n {{ return(changes_dict) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.diff_columns", "macro.dbt.diff_column_data_types"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3484733, "supported_languages": null}, "macro.dbt.sync_column_schemas": {"name": "sync_column_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.sync_column_schemas", "macro_sql": "{% macro sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n {{ return(adapter.dispatch('sync_column_schemas', 'dbt')(on_schema_change, target_relation, schema_changes_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__sync_column_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.34921, "supported_languages": null}, "macro.dbt.default__sync_column_schemas": {"name": "default__sync_column_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.default__sync_column_schemas", "macro_sql": "{% macro default__sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n\n {%- set add_to_target_arr = schema_changes_dict['source_not_in_target'] -%}\n {%- set remove_from_target_arr = schema_changes_dict['target_not_in_source'] -%}\n {%- set new_target_types = schema_changes_dict['new_target_types'] -%}\n\n {%- if on_schema_change == 'append_new_columns'-%}\n {%- if add_to_target_arr | length > 0 -%}\n {%- do alter_relation_add_remove_columns(target_relation, add_to_target_arr, none) -%}\n {%- endif -%}\n\n {% elif on_schema_change == 'sync_all_columns' %}\n\n {% if add_to_target_arr | length > 0 or remove_from_target_arr | length > 0 %}\n {%- do alter_relation_add_remove_columns(target_relation, add_to_target_arr, remove_from_target_arr) -%}\n {% endif %}\n\n {% if new_target_types != [] %}\n {% for ntt in new_target_types %}\n {% set column_name = ntt['column_name'] %}\n {% set new_type = ntt['new_type'] %}\n {% do alter_column_type(target_relation, column_name, new_type) %}\n {% endfor %}\n {% endif %}\n\n {% endif %}\n\n {% set schema_change_message %}\n In {{ target_relation }}:\n Schema change approach: {{ on_schema_change }}\n Columns added: {{ add_to_target_arr }}\n Columns removed: {{ remove_from_target_arr }}\n Data types changed: {{ new_target_types }}\n {% endset %}\n\n {% do log(schema_change_message) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.alter_relation_add_remove_columns", "macro.dbt.alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3531678, "supported_languages": null}, "macro.dbt.process_schema_changes": {"name": "process_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.process_schema_changes", "macro_sql": "{% macro process_schema_changes(on_schema_change, source_relation, target_relation) %}\n {{ return(adapter.dispatch('process_schema_changes', 'dbt')(on_schema_change, source_relation, target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__process_schema_changes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3540905, "supported_languages": null}, "macro.dbt.default__process_schema_changes": {"name": "default__process_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.default__process_schema_changes", "macro_sql": "{% macro default__process_schema_changes(on_schema_change, source_relation, target_relation) %}\n\n {% if on_schema_change == 'ignore' %}\n\n {{ return({}) }}\n\n {% else %}\n\n {% set schema_changes_dict = check_for_schema_changes(source_relation, target_relation) %}\n\n {% if schema_changes_dict['schema_changed'] %}\n\n {% if on_schema_change == 'fail' %}\n\n {% set fail_msg %}\n The source and target schemas on this incremental model are out of sync!\n They can be reconciled in several ways:\n - set the `on_schema_change` config to either append_new_columns or sync_all_columns, depending on your situation.\n - Re-run the incremental model with `full_refresh: True` to update the target schema.\n - update the schema manually and re-run the process.\n\n Additional troubleshooting context:\n Source columns not in target: {{ schema_changes_dict['source_not_in_target'] }}\n Target columns not in source: {{ schema_changes_dict['target_not_in_source'] }}\n New column types: {{ schema_changes_dict['new_target_types'] }}\n {% endset %}\n\n {% do exceptions.raise_compiler_error(fail_msg) %}\n\n {# -- unless we ignore, run the sync operation per the config #}\n {% else %}\n\n {% do sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n\n {% endif %}\n\n {% endif %}\n\n {{ return(schema_changes_dict['source_columns']) }}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.check_for_schema_changes", "macro.dbt.sync_column_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3567495, "supported_languages": null}, "macro.dbt.is_incremental": {"name": "is_incremental", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/is_incremental.sql", "original_file_path": "macros/materializations/models/incremental/is_incremental.sql", "unique_id": "macro.dbt.is_incremental", "macro_sql": "{% macro is_incremental() %}\n {#-- do not run introspective queries in parsing #}\n {% if not execute %}\n {{ return(False) }}\n {% else %}\n {% set relation = adapter.get_relation(this.database, this.schema, this.table) %}\n {{ return(relation is not none\n and relation.type == 'table'\n and model.config.materialized == 'incremental'\n and not should_full_refresh()) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3586183, "supported_languages": null}, "macro.dbt.get_incremental_append_sql": {"name": "get_incremental_append_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_append_sql", "macro_sql": "{% macro get_incremental_append_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_append_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3606062, "supported_languages": null}, "macro.dbt.default__get_incremental_append_sql": {"name": "default__get_incremental_append_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_append_sql", "macro_sql": "{% macro default__get_incremental_append_sql(arg_dict) %}\n\n {% do return(get_insert_into_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"dest_columns\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_insert_into_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3613074, "supported_languages": null}, "macro.dbt.get_incremental_delete_insert_sql": {"name": "get_incremental_delete_insert_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_delete_insert_sql", "macro_sql": "{% macro get_incremental_delete_insert_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_delete_insert_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_delete_insert_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3618996, "supported_languages": null}, "macro.dbt.default__get_incremental_delete_insert_sql": {"name": "default__get_incremental_delete_insert_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_delete_insert_sql", "macro_sql": "{% macro default__get_incremental_delete_insert_sql(arg_dict) %}\n\n {% do return(get_delete_insert_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"unique_key\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3628778, "supported_languages": null}, "macro.dbt.get_incremental_merge_sql": {"name": "get_incremental_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_merge_sql", "macro_sql": "{% macro get_incremental_merge_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_merge_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3635976, "supported_languages": null}, "macro.dbt.default__get_incremental_merge_sql": {"name": "default__get_incremental_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_merge_sql", "macro_sql": "{% macro default__get_incremental_merge_sql(arg_dict) %}\n\n {% do return(get_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"unique_key\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3647132, "supported_languages": null}, "macro.dbt.get_incremental_insert_overwrite_sql": {"name": "get_incremental_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_insert_overwrite_sql", "macro_sql": "{% macro get_incremental_insert_overwrite_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_insert_overwrite_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_insert_overwrite_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3653963, "supported_languages": null}, "macro.dbt.default__get_incremental_insert_overwrite_sql": {"name": "default__get_incremental_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_insert_overwrite_sql", "macro_sql": "{% macro default__get_incremental_insert_overwrite_sql(arg_dict) %}\n\n {% do return(get_insert_overwrite_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3667493, "supported_languages": null}, "macro.dbt.get_incremental_default_sql": {"name": "get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_default_sql", "macro_sql": "{% macro get_incremental_default_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_default_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_incremental_default_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3673074, "supported_languages": null}, "macro.dbt.default__get_incremental_default_sql": {"name": "default__get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_default_sql", "macro_sql": "{% macro default__get_incremental_default_sql(arg_dict) %}\n\n {% do return(get_incremental_append_sql(arg_dict)) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.367763, "supported_languages": null}, "macro.dbt.get_incremental_microbatch_sql": {"name": "get_incremental_microbatch_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_microbatch_sql", "macro_sql": "{% macro get_incremental_microbatch_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_microbatch_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_incremental_microbatch_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.368294, "supported_languages": null}, "macro.dbt.default__get_incremental_microbatch_sql": {"name": "default__get_incremental_microbatch_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_microbatch_sql", "macro_sql": "{% macro default__get_incremental_microbatch_sql(arg_dict) %}\n\n {{ exceptions.raise_not_implemented('microbatch materialization strategy not implemented for adapter ' + adapter.type()) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3688037, "supported_languages": null}, "macro.dbt.get_insert_into_sql": {"name": "get_insert_into_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_insert_into_sql", "macro_sql": "{% macro get_insert_into_sql(target_relation, temp_relation, dest_columns) %}\n\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n insert into {{ target_relation }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ temp_relation }}\n )\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3696508, "supported_languages": null}, "macro.dbt.materialization_incremental_default": {"name": "materialization_incremental_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/incremental.sql", "original_file_path": "macros/materializations/models/incremental/incremental.sql", "unique_id": "macro.dbt.materialization_incremental_default", "macro_sql": "{% materialization incremental, default -%}\n\n -- relations\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') -%}\n {%- set temp_relation = make_temp_relation(target_relation)-%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation)-%}\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n\n -- configs\n {%- set unique_key = config.get('unique_key') -%}\n {%- set full_refresh_mode = (should_full_refresh() or existing_relation.is_view) -%}\n {%- set on_schema_change = incremental_validate_on_schema_change(config.get('on_schema_change'), default='ignore') -%}\n\n -- the temp_ and backup_ relations should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation. This has to happen before\n -- BEGIN, in a separate transaction\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation)-%}\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set to_drop = [] %}\n\n {% set incremental_strategy = config.get('incremental_strategy') or 'default' %}\n {% set strategy_sql_macro_func = adapter.get_incremental_strategy_macro(context, incremental_strategy) %}\n\n {% if existing_relation is none %}\n {% set build_sql = get_create_table_as_sql(False, target_relation, sql) %}\n {% set relation_for_indexes = target_relation %}\n {% elif full_refresh_mode %}\n {% set build_sql = get_create_table_as_sql(False, intermediate_relation, sql) %}\n {% set relation_for_indexes = intermediate_relation %}\n {% set need_swap = true %}\n {% else %}\n {% do run_query(get_create_table_as_sql(True, temp_relation, sql)) %}\n {% set relation_for_indexes = temp_relation %}\n {% set contract_config = config.get('contract') %}\n {% if not contract_config or not contract_config.enforced %}\n {% do adapter.expand_target_column_types(\n from_relation=temp_relation,\n to_relation=target_relation) %}\n {% endif %}\n {#-- Process schema changes. Returns dict of changes if successful. Use source columns for upserting/merging --#}\n {% set dest_columns = process_schema_changes(on_schema_change, temp_relation, existing_relation) %}\n {% if not dest_columns %}\n {% set dest_columns = adapter.get_columns_in_relation(existing_relation) %}\n {% endif %}\n\n {#-- Get the incremental_strategy, the macro to use for the strategy, and build the sql --#}\n {% set incremental_predicates = config.get('predicates', none) or config.get('incremental_predicates', none) %}\n {% set strategy_arg_dict = ({'target_relation': target_relation, 'temp_relation': temp_relation, 'unique_key': unique_key, 'dest_columns': dest_columns, 'incremental_predicates': incremental_predicates }) %}\n {% set build_sql = strategy_sql_macro_func(strategy_arg_dict) %}\n\n {% endif %}\n\n {% call statement(\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% if existing_relation is none or existing_relation.is_view or should_full_refresh() %}\n {% do create_indexes(relation_for_indexes) %}\n {% endif %}\n\n {% if need_swap %}\n {% do adapter.rename_relation(target_relation, backup_relation) %}\n {% do adapter.rename_relation(intermediate_relation, target_relation) %}\n {% do to_drop.append(backup_relation) %}\n {% endif %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n -- `COMMIT` happens here\n {% do adapter.commit() %}\n\n {% for rel in to_drop %}\n {% do adapter.drop_relation(rel) %}\n {% endfor %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_temp_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.should_full_refresh", "macro.dbt.incremental_validate_on_schema_change", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt.get_create_table_as_sql", "macro.dbt.run_query", "macro.dbt.process_schema_changes", "macro.dbt.statement", "macro.dbt.create_indexes", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3832934, "supported_languages": ["sql"]}, "macro.dbt.get_merge_sql": {"name": "get_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_merge_sql", "macro_sql": "{% macro get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) -%}\n -- back compat for old kwarg name\n {% set incremental_predicates = kwargs.get('predicates', incremental_predicates) %}\n {{ adapter.dispatch('get_merge_sql', 'dbt')(target, source, unique_key, dest_columns, incremental_predicates) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3869739, "supported_languages": null}, "macro.dbt.default__get_merge_sql": {"name": "default__get_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_merge_sql", "macro_sql": "{% macro default__get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) -%}\n {%- set predicates = [] if incremental_predicates is none else [] + incremental_predicates -%}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n {%- set merge_update_columns = config.get('merge_update_columns') -%}\n {%- set merge_exclude_columns = config.get('merge_exclude_columns') -%}\n {%- set update_columns = get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {% if unique_key %}\n {% if unique_key is sequence and unique_key is not mapping and unique_key is not string %}\n {% for key in unique_key %}\n {% set this_key_match %}\n DBT_INTERNAL_SOURCE.{{ key }} = DBT_INTERNAL_DEST.{{ key }}\n {% endset %}\n {% do predicates.append(this_key_match) %}\n {% endfor %}\n {% else %}\n {% set source_unique_key = (\"DBT_INTERNAL_SOURCE.\" ~ unique_key) | trim %}\n\t {% set target_unique_key = (\"DBT_INTERNAL_DEST.\" ~ unique_key) | trim %}\n\t {% set unique_key_match = equals(source_unique_key, target_unique_key) | trim %}\n {% do predicates.append(unique_key_match) %}\n {% endif %}\n {% else %}\n {% do predicates.append('FALSE') %}\n {% endif %}\n\n {{ sql_header if sql_header is not none }}\n\n merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on {{\"(\" ~ predicates | join(\") and (\") ~ \")\"}}\n\n {% if unique_key %}\n when matched then update set\n {% for column_name in update_columns -%}\n {{ column_name }} = DBT_INTERNAL_SOURCE.{{ column_name }}\n {%- if not loop.last %}, {%- endif %}\n {%- endfor %}\n {% endif %}\n\n when not matched then insert\n ({{ dest_cols_csv }})\n values\n ({{ dest_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv", "macro.dbt.get_merge_update_columns", "macro.dbt.equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3923943, "supported_languages": null}, "macro.dbt.get_delete_insert_merge_sql": {"name": "get_delete_insert_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_delete_insert_merge_sql", "macro_sql": "{% macro get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}\n {{ adapter.dispatch('get_delete_insert_merge_sql', 'dbt')(target, source, unique_key, dest_columns, incremental_predicates) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3932807, "supported_languages": null}, "macro.dbt.default__get_delete_insert_merge_sql": {"name": "default__get_delete_insert_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_delete_insert_merge_sql", "macro_sql": "{% macro default__get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}\n\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n {% if unique_key %}\n {% if unique_key is string %}\n {% set unique_key = [unique_key] %}\n {% endif %}\n\n {%- set unique_key_str = unique_key|join(', ') -%}\n\n delete from {{ target }} as DBT_INTERNAL_DEST\n where ({{ unique_key_str }}) in (\n select distinct {{ unique_key_str }}\n from {{ source }} as DBT_INTERNAL_SOURCE\n )\n {%- if incremental_predicates %}\n {% for predicate in incremental_predicates %}\n and {{ predicate }}\n {% endfor %}\n {%- endif -%};\n\n {% endif %}\n\n insert into {{ target }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ source }}\n )\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.395498, "supported_languages": null}, "macro.dbt.get_insert_overwrite_merge_sql": {"name": "get_insert_overwrite_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_insert_overwrite_merge_sql", "macro_sql": "{% macro get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header=false) -%}\n {{ adapter.dispatch('get_insert_overwrite_merge_sql', 'dbt')(target, source, dest_columns, predicates, include_sql_header) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3963075, "supported_languages": null}, "macro.dbt.default__get_insert_overwrite_merge_sql": {"name": "default__get_insert_overwrite_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_insert_overwrite_merge_sql", "macro_sql": "{% macro default__get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header) -%}\n {#-- The only time include_sql_header is True: --#}\n {#-- BigQuery + insert_overwrite strategy + \"static\" partitions config --#}\n {#-- We should consider including the sql header at the materialization level instead --#}\n\n {%- set predicates = [] if predicates is none else [] + predicates -%}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none and include_sql_header }}\n\n merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on FALSE\n\n when not matched by source\n {% if predicates %} and {{ predicates | join(' and ') }} {% endif %}\n then delete\n\n when not matched then insert\n ({{ dest_cols_csv }})\n values\n ({{ dest_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3984067, "supported_languages": null}, "macro.dbt.create_or_replace_clone": {"name": "create_or_replace_clone", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/create_or_replace_clone.sql", "original_file_path": "macros/materializations/models/clone/create_or_replace_clone.sql", "unique_id": "macro.dbt.create_or_replace_clone", "macro_sql": "{% macro create_or_replace_clone(this_relation, defer_relation) %}\n {{ return(adapter.dispatch('create_or_replace_clone', 'dbt')(this_relation, defer_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__create_or_replace_clone"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.3994334, "supported_languages": null}, "macro.dbt.default__create_or_replace_clone": {"name": "default__create_or_replace_clone", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/create_or_replace_clone.sql", "original_file_path": "macros/materializations/models/clone/create_or_replace_clone.sql", "unique_id": "macro.dbt.default__create_or_replace_clone", "macro_sql": "{% macro default__create_or_replace_clone(this_relation, defer_relation) %}\n create or replace table {{ this_relation.render() }} clone {{ defer_relation.render() }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4000523, "supported_languages": null}, "macro.dbt.materialization_clone_default": {"name": "materialization_clone_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/clone.sql", "original_file_path": "macros/materializations/models/clone/clone.sql", "unique_id": "macro.dbt.materialization_clone_default", "macro_sql": "{%- materialization clone, default -%}\n\n {%- set relations = {'relations': []} -%}\n\n {%- if not defer_relation -%}\n -- nothing to do\n {{ log(\"No relation found in state manifest for \" ~ model.unique_id, info=True) }}\n {{ return(relations) }}\n {%- endif -%}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n\n {%- if existing_relation and not flags.FULL_REFRESH -%}\n -- noop!\n {{ log(\"Relation \" ~ existing_relation ~ \" already exists\", info=True) }}\n {{ return(relations) }}\n {%- endif -%}\n\n {%- set other_existing_relation = load_cached_relation(defer_relation) -%}\n\n -- If this is a database that can do zero-copy cloning of tables, and the other relation is a table, then this will be a table\n -- Otherwise, this will be a view\n\n {% set can_clone_table = can_clone_table() %}\n\n {%- if other_existing_relation and other_existing_relation.type == 'table' and can_clone_table -%}\n\n {%- set target_relation = this.incorporate(type='table') -%}\n {% if existing_relation is not none and not existing_relation.is_table %}\n {{ log(\"Dropping relation \" ~ existing_relation.render() ~ \" because it is of type \" ~ existing_relation.type) }}\n {{ drop_relation_if_exists(existing_relation) }}\n {% endif %}\n\n -- as a general rule, data platforms that can clone tables can also do atomic 'create or replace'\n {% if target_relation.database == defer_relation.database and\n target_relation.schema == defer_relation.schema and\n target_relation.identifier == defer_relation.identifier %}\n {{ log(\"Target relation and defer relation are the same, skipping clone for relation: \" ~ target_relation.render()) }}\n {% else %}\n {% call statement('main') %}\n {{ create_or_replace_clone(target_relation, defer_relation) }}\n {% endcall %}\n {% endif %}\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n {% do persist_docs(target_relation, model) %}\n\n {{ return({'relations': [target_relation]}) }}\n\n {%- else -%}\n\n {%- set target_relation = this.incorporate(type='view') -%}\n\n -- reuse the view materialization\n -- TODO: support actual dispatch for materialization macros\n -- Tracking ticket: https://github.com/dbt-labs/dbt-core/issues/7799\n {% set search_name = \"materialization_view_\" ~ adapter.type() %}\n {% if not search_name in context %}\n {% set search_name = \"materialization_view_default\" %}\n {% endif %}\n {% set materialization_macro = context[search_name] %}\n {% set relations = materialization_macro() %}\n {{ return(relations) }}\n\n {%- endif -%}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.can_clone_table", "macro.dbt.drop_relation_if_exists", "macro.dbt.statement", "macro.dbt.create_or_replace_clone", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.408276, "supported_languages": ["sql"]}, "macro.dbt.can_clone_table": {"name": "can_clone_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/can_clone_table.sql", "original_file_path": "macros/materializations/models/clone/can_clone_table.sql", "unique_id": "macro.dbt.can_clone_table", "macro_sql": "{% macro can_clone_table() %}\n {{ return(adapter.dispatch('can_clone_table', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__can_clone_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4090767, "supported_languages": null}, "macro.dbt.default__can_clone_table": {"name": "default__can_clone_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/can_clone_table.sql", "original_file_path": "macros/materializations/models/clone/can_clone_table.sql", "unique_id": "macro.dbt.default__can_clone_table", "macro_sql": "{% macro default__can_clone_table() %}\n {{ return(False) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4094224, "supported_languages": null}, "macro.dbt.concat": {"name": "concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "unique_id": "macro.dbt.concat", "macro_sql": "{% macro concat(fields) -%}\n {{ return(adapter.dispatch('concat', 'dbt')(fields)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.410143, "supported_languages": null}, "macro.dbt.default__concat": {"name": "default__concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "unique_id": "macro.dbt.default__concat", "macro_sql": "{% macro default__concat(fields) -%}\n {{ fields|join(' || ') }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4105165, "supported_languages": null}, "macro.dbt.escape_single_quotes": {"name": "escape_single_quotes", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "unique_id": "macro.dbt.escape_single_quotes", "macro_sql": "{% macro escape_single_quotes(expression) %}\n {{ return(adapter.dispatch('escape_single_quotes', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4113965, "supported_languages": null}, "macro.dbt.default__escape_single_quotes": {"name": "default__escape_single_quotes", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "unique_id": "macro.dbt.default__escape_single_quotes", "macro_sql": "{% macro default__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\",\"''\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4118328, "supported_languages": null}, "macro.dbt.right": {"name": "right", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "unique_id": "macro.dbt.right", "macro_sql": "{% macro right(string_text, length_expression) -%}\n {{ return(adapter.dispatch('right', 'dbt') (string_text, length_expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__right"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4126446, "supported_languages": null}, "macro.dbt.default__right": {"name": "default__right", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "unique_id": "macro.dbt.default__right", "macro_sql": "{% macro default__right(string_text, length_expression) %}\n\n right(\n {{ string_text }},\n {{ length_expression }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.413093, "supported_languages": null}, "macro.dbt.string_literal": {"name": "string_literal", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "unique_id": "macro.dbt.string_literal", "macro_sql": "{%- macro string_literal(value) -%}\n {{ return(adapter.dispatch('string_literal', 'dbt') (value)) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4138813, "supported_languages": null}, "macro.dbt.default__string_literal": {"name": "default__string_literal", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "unique_id": "macro.dbt.default__string_literal", "macro_sql": "{% macro default__string_literal(value) -%}\n '{{ value }}'\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4141953, "supported_languages": null}, "macro.dbt.type_string": {"name": "type_string", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_string", "macro_sql": "\n\n{%- macro type_string() -%}\n {{ return(adapter.dispatch('type_string', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4164205, "supported_languages": null}, "macro.dbt.default__type_string": {"name": "default__type_string", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_string", "macro_sql": "{% macro default__type_string() %}\n {{ return(api.Column.translate_type(\"string\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4169638, "supported_languages": null}, "macro.dbt.type_timestamp": {"name": "type_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_timestamp", "macro_sql": "\n\n{%- macro type_timestamp() -%}\n {{ return(adapter.dispatch('type_timestamp', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.417442, "supported_languages": null}, "macro.dbt.default__type_timestamp": {"name": "default__type_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_timestamp", "macro_sql": "{% macro default__type_timestamp() %}\n {{ return(api.Column.translate_type(\"timestamp\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4179149, "supported_languages": null}, "macro.dbt.type_float": {"name": "type_float", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_float", "macro_sql": "\n\n{%- macro type_float() -%}\n {{ return(adapter.dispatch('type_float', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4183838, "supported_languages": null}, "macro.dbt.default__type_float": {"name": "default__type_float", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_float", "macro_sql": "{% macro default__type_float() %}\n {{ return(api.Column.translate_type(\"float\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.418866, "supported_languages": null}, "macro.dbt.type_numeric": {"name": "type_numeric", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_numeric", "macro_sql": "\n\n{%- macro type_numeric() -%}\n {{ return(adapter.dispatch('type_numeric', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4193318, "supported_languages": null}, "macro.dbt.default__type_numeric": {"name": "default__type_numeric", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_numeric", "macro_sql": "{% macro default__type_numeric() %}\n {{ return(api.Column.numeric_type(\"numeric\", 28, 6)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4198654, "supported_languages": null}, "macro.dbt.type_bigint": {"name": "type_bigint", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_bigint", "macro_sql": "\n\n{%- macro type_bigint() -%}\n {{ return(adapter.dispatch('type_bigint', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_bigint"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4203415, "supported_languages": null}, "macro.dbt.default__type_bigint": {"name": "default__type_bigint", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_bigint", "macro_sql": "{% macro default__type_bigint() %}\n {{ return(api.Column.translate_type(\"bigint\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4207907, "supported_languages": null}, "macro.dbt.type_int": {"name": "type_int", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_int", "macro_sql": "\n\n{%- macro type_int() -%}\n {{ return(adapter.dispatch('type_int', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.421266, "supported_languages": null}, "macro.dbt.default__type_int": {"name": "default__type_int", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_int", "macro_sql": "{%- macro default__type_int() -%}\n {{ return(api.Column.translate_type(\"integer\")) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.421701, "supported_languages": null}, "macro.dbt.type_boolean": {"name": "type_boolean", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_boolean", "macro_sql": "\n\n{%- macro type_boolean() -%}\n {{ return(adapter.dispatch('type_boolean', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_boolean"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4224474, "supported_languages": null}, "macro.dbt.default__type_boolean": {"name": "default__type_boolean", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_boolean", "macro_sql": "{%- macro default__type_boolean() -%}\n {{ return(api.Column.translate_type(\"boolean\")) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.422891, "supported_languages": null}, "macro.dbt.dateadd": {"name": "dateadd", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt.dateadd", "macro_sql": "{% macro dateadd(datepart, interval, from_date_or_timestamp) %}\n {{ return(adapter.dispatch('dateadd', 'dbt')(datepart, interval, from_date_or_timestamp)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4238756, "supported_languages": null}, "macro.dbt.default__dateadd": {"name": "default__dateadd", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt.default__dateadd", "macro_sql": "{% macro default__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n {{ from_date_or_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4243789, "supported_languages": null}, "macro.dbt.get_intervals_between": {"name": "get_intervals_between", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.get_intervals_between", "macro_sql": "{% macro get_intervals_between(start_date, end_date, datepart) -%}\n {{ return(adapter.dispatch('get_intervals_between', 'dbt')(start_date, end_date, datepart)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4260035, "supported_languages": null}, "macro.dbt.default__get_intervals_between": {"name": "default__get_intervals_between", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.default__get_intervals_between", "macro_sql": "{% macro default__get_intervals_between(start_date, end_date, datepart) -%}\n {%- call statement('get_intervals_between', fetch_result=True) %}\n\n select {{ dbt.datediff(start_date, end_date, datepart) }}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_intervals_between') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values[0]) }}\n {%- else -%}\n {{ return(1) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4278321, "supported_languages": null}, "macro.dbt.date_spine": {"name": "date_spine", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.date_spine", "macro_sql": "{% macro date_spine(datepart, start_date, end_date) %}\n {{ return(adapter.dispatch('date_spine', 'dbt')(datepart, start_date, end_date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4285064, "supported_languages": null}, "macro.dbt.default__date_spine": {"name": "default__date_spine", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.default__date_spine", "macro_sql": "{% macro default__date_spine(datepart, start_date, end_date) %}\n\n\n {# call as follows:\n\n date_spine(\n \"day\",\n \"to_date('01/01/2016', 'mm/dd/yyyy')\",\n \"dbt.dateadd(week, 1, current_date)\"\n ) #}\n\n\n with rawdata as (\n\n {{dbt.generate_series(\n dbt.get_intervals_between(start_date, end_date, datepart)\n )}}\n\n ),\n\n all_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n \"row_number() over (order by 1) - 1\",\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n\n ),\n\n filtered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n )\n\n select * from filtered\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.generate_series", "macro.dbt.get_intervals_between", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4296126, "supported_languages": null}, "macro.dbt.array_construct": {"name": "array_construct", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt.array_construct", "macro_sql": "{% macro array_construct(inputs=[], data_type=api.Column.translate_type('integer')) -%}\n {{ return(adapter.dispatch('array_construct', 'dbt')(inputs, data_type)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__array_construct"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.430814, "supported_languages": null}, "macro.dbt.default__array_construct": {"name": "default__array_construct", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt.default__array_construct", "macro_sql": "{% macro default__array_construct(inputs, data_type) -%}\n {% if inputs|length > 0 %}\n array[ {{ inputs|join(' , ') }} ]\n {% else %}\n array[]::{{data_type}}[]\n {% endif %}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.431656, "supported_languages": null}, "macro.dbt.last_day": {"name": "last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.last_day", "macro_sql": "{% macro last_day(date, datepart) %}\n {{ return(adapter.dispatch('last_day', 'dbt') (date, datepart)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4326997, "supported_languages": null}, "macro.dbt.default_last_day": {"name": "default_last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.default_last_day", "macro_sql": "\n\n{%- macro default_last_day(date, datepart) -%}\n cast(\n {{dbt.dateadd('day', '-1',\n dbt.dateadd(datepart, '1', dbt.date_trunc(datepart, date))\n )}}\n as date)\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.433481, "supported_languages": null}, "macro.dbt.default__last_day": {"name": "default__last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.default__last_day", "macro_sql": "{% macro default__last_day(date, datepart) -%}\n {{dbt.default_last_day(date, datepart)}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.433928, "supported_languages": null}, "macro.dbt.safe_cast": {"name": "safe_cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt.safe_cast", "macro_sql": "{% macro safe_cast(field, type) %}\n {{ return(adapter.dispatch('safe_cast', 'dbt') (field, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.434779, "supported_languages": null}, "macro.dbt.default__safe_cast": {"name": "default__safe_cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt.default__safe_cast", "macro_sql": "{% macro default__safe_cast(field, type) %}\n {# most databases don't support this function yet\n so we just need to use cast #}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4351969, "supported_languages": null}, "macro.dbt.bool_or": {"name": "bool_or", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "unique_id": "macro.dbt.bool_or", "macro_sql": "{% macro bool_or(expression) -%}\n {{ return(adapter.dispatch('bool_or', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__bool_or"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4359322, "supported_languages": null}, "macro.dbt.default__bool_or": {"name": "default__bool_or", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "unique_id": "macro.dbt.default__bool_or", "macro_sql": "{% macro default__bool_or(expression) -%}\n\n bool_or({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.436245, "supported_languages": null}, "macro.dbt.hash": {"name": "hash", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt.hash", "macro_sql": "{% macro hash(field) -%}\n {{ return(adapter.dispatch('hash', 'dbt') (field)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__hash"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4369822, "supported_languages": null}, "macro.dbt.default__hash": {"name": "default__hash", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt.default__hash", "macro_sql": "{% macro default__hash(field) -%}\n md5(cast({{ field }} as {{ api.Column.translate_type('string') }}))\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.437454, "supported_languages": null}, "macro.dbt.listagg": {"name": "listagg", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt.listagg", "macro_sql": "{% macro listagg(measure, delimiter_text=\"','\", order_by_clause=none, limit_num=none) -%}\n {{ return(adapter.dispatch('listagg', 'dbt') (measure, delimiter_text, order_by_clause, limit_num)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__listagg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4388015, "supported_languages": null}, "macro.dbt.default__listagg": {"name": "default__listagg", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt.default__listagg", "macro_sql": "{% macro default__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n {% if limit_num -%}\n array_to_string(\n array_slice(\n array_agg(\n {{ measure }}\n ){% if order_by_clause -%}\n within group ({{ order_by_clause }})\n {%- endif %}\n ,0\n ,{{ limit_num }}\n ),\n {{ delimiter_text }}\n )\n {%- else %}\n listagg(\n {{ measure }},\n {{ delimiter_text }}\n )\n {% if order_by_clause -%}\n within group ({{ order_by_clause }})\n {%- endif %}\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4401112, "supported_languages": null}, "macro.dbt.array_concat": {"name": "array_concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "unique_id": "macro.dbt.array_concat", "macro_sql": "{% macro array_concat(array_1, array_2) -%}\n {{ return(adapter.dispatch('array_concat', 'dbt')(array_1, array_2)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.440941, "supported_languages": null}, "macro.dbt.default__array_concat": {"name": "default__array_concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "unique_id": "macro.dbt.default__array_concat", "macro_sql": "{% macro default__array_concat(array_1, array_2) -%}\n array_cat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4413464, "supported_languages": null}, "macro.dbt.datediff": {"name": "datediff", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt.datediff", "macro_sql": "{% macro datediff(first_date, second_date, datepart) %}\n {{ return(adapter.dispatch('datediff', 'dbt')(first_date, second_date, datepart)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4422715, "supported_languages": null}, "macro.dbt.default__datediff": {"name": "default__datediff", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt.default__datediff", "macro_sql": "{% macro default__datediff(first_date, second_date, datepart) -%}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4430912, "supported_languages": null}, "macro.dbt.length": {"name": "length", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "unique_id": "macro.dbt.length", "macro_sql": "{% macro length(expression) -%}\n {{ return(adapter.dispatch('length', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__length"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.443839, "supported_languages": null}, "macro.dbt.default__length": {"name": "default__length", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "unique_id": "macro.dbt.default__length", "macro_sql": "{% macro default__length(expression) %}\n\n length(\n {{ expression }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4442532, "supported_languages": null}, "macro.dbt.any_value": {"name": "any_value", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt.any_value", "macro_sql": "{% macro any_value(expression) -%}\n {{ return(adapter.dispatch('any_value', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__any_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4449782, "supported_languages": null}, "macro.dbt.default__any_value": {"name": "default__any_value", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt.default__any_value", "macro_sql": "{% macro default__any_value(expression) -%}\n\n any_value({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4452903, "supported_languages": null}, "macro.dbt.replace": {"name": "replace", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "unique_id": "macro.dbt.replace", "macro_sql": "{% macro replace(field, old_chars, new_chars) -%}\n {{ return(adapter.dispatch('replace', 'dbt') (field, old_chars, new_chars)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__replace"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4461966, "supported_languages": null}, "macro.dbt.default__replace": {"name": "default__replace", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "unique_id": "macro.dbt.default__replace", "macro_sql": "{% macro default__replace(field, old_chars, new_chars) %}\n\n replace(\n {{ field }},\n {{ old_chars }},\n {{ new_chars }}\n )\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4467087, "supported_languages": null}, "macro.dbt.array_append": {"name": "array_append", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "unique_id": "macro.dbt.array_append", "macro_sql": "{% macro array_append(array, new_element) -%}\n {{ return(adapter.dispatch('array_append', 'dbt')(array, new_element)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_append"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4476345, "supported_languages": null}, "macro.dbt.default__array_append": {"name": "default__array_append", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "unique_id": "macro.dbt.default__array_append", "macro_sql": "{% macro default__array_append(array, new_element) -%}\n array_append({{ array }}, {{ new_element }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4480896, "supported_languages": null}, "macro.dbt.date_trunc": {"name": "date_trunc", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt.date_trunc", "macro_sql": "{% macro date_trunc(datepart, date) -%}\n {{ return(adapter.dispatch('date_trunc', 'dbt') (datepart, date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4489152, "supported_languages": null}, "macro.dbt.default__date_trunc": {"name": "default__date_trunc", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt.default__date_trunc", "macro_sql": "{% macro default__date_trunc(datepart, date) -%}\n date_trunc('{{datepart}}', {{date}})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4493067, "supported_languages": null}, "macro.dbt.intersect": {"name": "intersect", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "unique_id": "macro.dbt.intersect", "macro_sql": "{% macro intersect() %}\n {{ return(adapter.dispatch('intersect', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__intersect"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.44997, "supported_languages": null}, "macro.dbt.default__intersect": {"name": "default__intersect", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "unique_id": "macro.dbt.default__intersect", "macro_sql": "{% macro default__intersect() %}\n\n intersect\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4502013, "supported_languages": null}, "macro.dbt.equals": {"name": "equals", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/equals.sql", "original_file_path": "macros/utils/equals.sql", "unique_id": "macro.dbt.equals", "macro_sql": "{% macro equals(expr1, expr2) %}\n {{ return(adapter.dispatch('equals', 'dbt') (expr1, expr2)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4511714, "supported_languages": null}, "macro.dbt.default__equals": {"name": "default__equals", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/equals.sql", "original_file_path": "macros/utils/equals.sql", "unique_id": "macro.dbt.default__equals", "macro_sql": "{% macro default__equals(expr1, expr2) -%}\n{%- if adapter.behavior.enable_truthy_nulls_equals_macro.no_warn %}\n case when (({{ expr1 }} = {{ expr2 }}) or ({{ expr1 }} is null and {{ expr2 }} is null))\n then 0\n else 1\n end = 0\n{%- else -%}\n ({{ expr1 }} = {{ expr2 }})\n{%- endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4522154, "supported_languages": null}, "macro.dbt.cast": {"name": "cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast.sql", "original_file_path": "macros/utils/cast.sql", "unique_id": "macro.dbt.cast", "macro_sql": "{% macro cast(field, type) %}\n {{ return(adapter.dispatch('cast', 'dbt') (field, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4530413, "supported_languages": null}, "macro.dbt.default__cast": {"name": "default__cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast.sql", "original_file_path": "macros/utils/cast.sql", "unique_id": "macro.dbt.default__cast", "macro_sql": "{% macro default__cast(field, type) %}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.453442, "supported_languages": null}, "macro.dbt.except": {"name": "except", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "unique_id": "macro.dbt.except", "macro_sql": "{% macro except() %}\n {{ return(adapter.dispatch('except', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4541137, "supported_languages": null}, "macro.dbt.default__except": {"name": "default__except", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "unique_id": "macro.dbt.default__except", "macro_sql": "{% macro default__except() %}\n\n except\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4543395, "supported_languages": null}, "macro.dbt.date": {"name": "date", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date.sql", "original_file_path": "macros/utils/date.sql", "unique_id": "macro.dbt.date", "macro_sql": "{% macro date(year, month, day) %}\n {{ return(adapter.dispatch('date', 'dbt') (year, month, day)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4552999, "supported_languages": null}, "macro.dbt.default__date": {"name": "default__date", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date.sql", "original_file_path": "macros/utils/date.sql", "unique_id": "macro.dbt.default__date", "macro_sql": "{% macro default__date(year, month, day) -%}\n {%- set dt = modules.datetime.date(year, month, day) -%}\n {%- set iso_8601_formatted_date = dt.strftime('%Y-%m-%d') -%}\n to_date('{{ iso_8601_formatted_date }}', 'YYYY-MM-DD')\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4562285, "supported_languages": null}, "macro.dbt.split_part": {"name": "split_part", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt.split_part", "macro_sql": "{% macro split_part(string_text, delimiter_text, part_number) %}\n {{ return(adapter.dispatch('split_part', 'dbt') (string_text, delimiter_text, part_number)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4573233, "supported_languages": null}, "macro.dbt.default__split_part": {"name": "default__split_part", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt.default__split_part", "macro_sql": "{% macro default__split_part(string_text, delimiter_text, part_number) %}\n\n split_part(\n {{ string_text }},\n {{ delimiter_text }},\n {{ part_number }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4578612, "supported_languages": null}, "macro.dbt._split_part_negative": {"name": "_split_part_negative", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt._split_part_negative", "macro_sql": "{% macro _split_part_negative(string_text, delimiter_text, part_number) %}\n\n split_part(\n {{ string_text }},\n {{ delimiter_text }},\n length({{ string_text }})\n - length(\n replace({{ string_text }}, {{ delimiter_text }}, '')\n ) + 2 + {{ part_number }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4595106, "supported_languages": null}, "macro.dbt.get_powers_of_two": {"name": "get_powers_of_two", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.get_powers_of_two", "macro_sql": "{% macro get_powers_of_two(upper_bound) %}\n {{ return(adapter.dispatch('get_powers_of_two', 'dbt')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4608757, "supported_languages": null}, "macro.dbt.default__get_powers_of_two": {"name": "default__get_powers_of_two", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.default__get_powers_of_two", "macro_sql": "{% macro default__get_powers_of_two(upper_bound) %}\n\n {% if upper_bound <= 0 %}\n {{ exceptions.raise_compiler_error(\"upper bound must be positive\") }}\n {% endif %}\n\n {% for _ in range(1, 100) %}\n {% if upper_bound <= 2 ** loop.index %}{{ return(loop.index) }}{% endif %}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4621522, "supported_languages": null}, "macro.dbt.generate_series": {"name": "generate_series", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4627156, "supported_languages": null}, "macro.dbt.default__generate_series": {"name": "default__generate_series", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.default__generate_series", "macro_sql": "{% macro default__generate_series(upper_bound) %}\n\n {% set n = dbt.get_powers_of_two(upper_bound) %}\n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n {% for i in range(n) %}\n p{{i}}.generated_number * power(2, {{i}})\n {% if not loop.last %} + {% endif %}\n {% endfor %}\n + 1\n as generated_number\n\n from\n\n {% for i in range(n) %}\n p as p{{i}}\n {% if not loop.last %} cross join {% endif %}\n {% endfor %}\n\n )\n\n select *\n from unioned\n where generated_number <= {{upper_bound}}\n order by generated_number\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4644768, "supported_languages": null}, "macro.dbt.cast_bool_to_text": {"name": "cast_bool_to_text", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "unique_id": "macro.dbt.cast_bool_to_text", "macro_sql": "{% macro cast_bool_to_text(field) %}\n {{ adapter.dispatch('cast_bool_to_text', 'dbt') (field) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.465357, "supported_languages": null}, "macro.dbt.default__cast_bool_to_text": {"name": "default__cast_bool_to_text", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "unique_id": "macro.dbt.default__cast_bool_to_text", "macro_sql": "{% macro default__cast_bool_to_text(field) %}\n cast({{ field }} as {{ api.Column.translate_type('string') }})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.465865, "supported_languages": null}, "macro.dbt.position": {"name": "position", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt.position", "macro_sql": "{% macro position(substring_text, string_text) -%}\n {{ return(adapter.dispatch('position', 'dbt') (substring_text, string_text)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__position"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.466871, "supported_languages": null}, "macro.dbt.default__position": {"name": "default__position", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt.default__position", "macro_sql": "{% macro default__position(substring_text, string_text) %}\n\n position(\n {{ substring_text }} in {{ string_text }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4673069, "supported_languages": null}, "macro.dbt.generate_database_name": {"name": "generate_database_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "unique_id": "macro.dbt.generate_database_name", "macro_sql": "{% macro generate_database_name(custom_database_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_database_name', 'dbt')(custom_database_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_database_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4683948, "supported_languages": null}, "macro.dbt.default__generate_database_name": {"name": "default__generate_database_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "unique_id": "macro.dbt.default__generate_database_name", "macro_sql": "{% macro default__generate_database_name(custom_database_name=none, node=none) -%}\n {%- set default_database = target.database -%}\n {%- if custom_database_name is none -%}\n\n {{ default_database }}\n\n {%- else -%}\n\n {{ custom_database_name }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4692016, "supported_languages": null}, "macro.dbt.generate_schema_name": {"name": "generate_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.generate_schema_name", "macro_sql": "{% macro generate_schema_name(custom_schema_name=none, node=none) -%}\n {{ return(adapter.dispatch('generate_schema_name', 'dbt')(custom_schema_name, node)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4705338, "supported_languages": null}, "macro.dbt.default__generate_schema_name": {"name": "default__generate_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.default__generate_schema_name", "macro_sql": "{% macro default__generate_schema_name(custom_schema_name, node) -%}\n\n {%- set default_schema = target.schema -%}\n {%- if custom_schema_name is none -%}\n\n {{ default_schema }}\n\n {%- else -%}\n\n {{ default_schema }}_{{ custom_schema_name | trim }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4714816, "supported_languages": null}, "macro.dbt.generate_schema_name_for_env": {"name": "generate_schema_name_for_env", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.generate_schema_name_for_env", "macro_sql": "{% macro generate_schema_name_for_env(custom_schema_name, node) -%}\n\n {%- set default_schema = target.schema -%}\n {%- if target.name == 'prod' and custom_schema_name is not none -%}\n\n {{ custom_schema_name | trim }}\n\n {%- else -%}\n\n {{ default_schema }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4723873, "supported_languages": null}, "macro.dbt.generate_alias_name": {"name": "generate_alias_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "unique_id": "macro.dbt.generate_alias_name", "macro_sql": "{% macro generate_alias_name(custom_alias_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_alias_name', 'dbt')(custom_alias_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_alias_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4735215, "supported_languages": null}, "macro.dbt.default__generate_alias_name": {"name": "default__generate_alias_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "unique_id": "macro.dbt.default__generate_alias_name", "macro_sql": "{% macro default__generate_alias_name(custom_alias_name=none, node=none) -%}\n\n {%- if custom_alias_name -%}\n\n {{ custom_alias_name | trim }}\n\n {%- elif node.version -%}\n\n {{ return(node.name ~ \"_v\" ~ (node.version | replace(\".\", \"_\"))) }}\n\n {%- else -%}\n\n {{ node.name }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4746892, "supported_languages": null}, "macro.dbt.make_intermediate_relation": {"name": "make_intermediate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_intermediate_relation", "macro_sql": "{% macro make_intermediate_relation(base_relation, suffix='__dbt_tmp') %}\n {{ return(adapter.dispatch('make_intermediate_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__make_intermediate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.47679, "supported_languages": null}, "macro.dbt.default__make_intermediate_relation": {"name": "default__make_intermediate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_intermediate_relation", "macro_sql": "{% macro default__make_intermediate_relation(base_relation, suffix) %}\n {{ return(default__make_temp_relation(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4772825, "supported_languages": null}, "macro.dbt.make_temp_relation": {"name": "make_temp_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_temp_relation", "macro_sql": "{% macro make_temp_relation(base_relation, suffix='__dbt_tmp') %}\n {#-- This ensures microbatch batches get unique temp relations to avoid clobbering --#}\n {% if suffix == '__dbt_tmp' and model.batch %}\n {% set suffix = suffix ~ '_' ~ model.batch.id %}\n {% endif %}\n\n {{ return(adapter.dispatch('make_temp_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4785025, "supported_languages": null}, "macro.dbt.default__make_temp_relation": {"name": "default__make_temp_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_temp_relation", "macro_sql": "{% macro default__make_temp_relation(base_relation, suffix) %}\n {%- set temp_identifier = base_relation.identifier ~ suffix -%}\n {%- set temp_relation = base_relation.incorporate(\n path={\"identifier\": temp_identifier}) -%}\n\n {{ return(temp_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4793885, "supported_languages": null}, "macro.dbt.make_backup_relation": {"name": "make_backup_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_backup_relation", "macro_sql": "{% macro make_backup_relation(base_relation, backup_relation_type, suffix='__dbt_backup') %}\n {{ return(adapter.dispatch('make_backup_relation', 'dbt')(base_relation, backup_relation_type, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__make_backup_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4801447, "supported_languages": null}, "macro.dbt.default__make_backup_relation": {"name": "default__make_backup_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_backup_relation", "macro_sql": "{% macro default__make_backup_relation(base_relation, backup_relation_type, suffix) %}\n {%- set backup_identifier = base_relation.identifier ~ suffix -%}\n {%- set backup_relation = base_relation.incorporate(\n path={\"identifier\": backup_identifier},\n type=backup_relation_type\n ) -%}\n {{ return(backup_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4811585, "supported_languages": null}, "macro.dbt.truncate_relation": {"name": "truncate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.truncate_relation", "macro_sql": "{% macro truncate_relation(relation) -%}\n {{ return(adapter.dispatch('truncate_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__truncate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4821115, "supported_languages": null}, "macro.dbt.default__truncate_relation": {"name": "default__truncate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__truncate_relation", "macro_sql": "{% macro default__truncate_relation(relation) -%}\n {% call statement('truncate_relation') -%}\n truncate table {{ relation.render() }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4827125, "supported_languages": null}, "macro.dbt.get_or_create_relation": {"name": "get_or_create_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.get_or_create_relation", "macro_sql": "{% macro get_or_create_relation(database, schema, identifier, type) -%}\n {{ return(adapter.dispatch('get_or_create_relation', 'dbt')(database, schema, identifier, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_or_create_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4835272, "supported_languages": null}, "macro.dbt.default__get_or_create_relation": {"name": "default__get_or_create_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__get_or_create_relation", "macro_sql": "{% macro default__get_or_create_relation(database, schema, identifier, type) %}\n {%- set target_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %}\n\n {% if target_relation %}\n {% do return([true, target_relation]) %}\n {% endif %}\n\n {%- set new_relation = api.Relation.create(\n database=database,\n schema=schema,\n identifier=identifier,\n type=type\n ) -%}\n {% do return([false, new_relation]) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.485367, "supported_languages": null}, "macro.dbt.load_cached_relation": {"name": "load_cached_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.load_cached_relation", "macro_sql": "{% macro load_cached_relation(relation) %}\n {% do return(adapter.get_relation(\n database=relation.database,\n schema=relation.schema,\n identifier=relation.identifier\n )) -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4860733, "supported_languages": null}, "macro.dbt.load_relation": {"name": "load_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.load_relation", "macro_sql": "{% macro load_relation(relation) %}\n {{ return(load_cached_relation(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.486485, "supported_languages": null}, "macro.dbt.create_schema": {"name": "create_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.create_schema", "macro_sql": "{% macro create_schema(relation) -%}\n {{ adapter.dispatch('create_schema', 'dbt')(relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__create_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4875162, "supported_languages": null}, "macro.dbt.default__create_schema": {"name": "default__create_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.default__create_schema", "macro_sql": "{% macro default__create_schema(relation) -%}\n {%- call statement('create_schema') -%}\n create schema if not exists {{ relation.without_identifier() }}\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4881067, "supported_languages": null}, "macro.dbt.drop_schema": {"name": "drop_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.drop_schema", "macro_sql": "{% macro drop_schema(relation) -%}\n {{ adapter.dispatch('drop_schema', 'dbt')(relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__drop_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.488584, "supported_languages": null}, "macro.dbt.default__drop_schema": {"name": "default__drop_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.default__drop_schema", "macro_sql": "{% macro default__drop_schema(relation) -%}\n {%- call statement('drop_schema') -%}\n drop schema if exists {{ relation.without_identifier() }} cascade\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4891343, "supported_languages": null}, "macro.dbt.get_columns_in_relation": {"name": "get_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_columns_in_relation", "macro_sql": "{% macro get_columns_in_relation(relation) -%}\n {{ return(adapter.dispatch('get_columns_in_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.492968, "supported_languages": null}, "macro.dbt.default__get_columns_in_relation": {"name": "default__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_columns_in_relation", "macro_sql": "{% macro default__get_columns_in_relation(relation) -%}\n {{ exceptions.raise_not_implemented(\n 'get_columns_in_relation macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4935665, "supported_languages": null}, "macro.dbt.sql_convert_columns_in_relation": {"name": "sql_convert_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.sql_convert_columns_in_relation", "macro_sql": "{% macro sql_convert_columns_in_relation(table) -%}\n {% set columns = [] %}\n {% for row in table %}\n {% do columns.append(api.Column(*row)) %}\n {% endfor %}\n {{ return(columns) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4945335, "supported_languages": null}, "macro.dbt.get_list_of_column_names": {"name": "get_list_of_column_names", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_list_of_column_names", "macro_sql": "\n\n{%- macro get_list_of_column_names(columns) -%}\n {% set col_names = [] %}\n {% for col in columns %}\n {% do col_names.append(col.name) %}\n {% endfor %}\n {{ return(col_names) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4954033, "supported_languages": null}, "macro.dbt.get_empty_subquery_sql": {"name": "get_empty_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_empty_subquery_sql", "macro_sql": "{% macro get_empty_subquery_sql(select_sql, select_sql_header=none) -%}\n {{ return(adapter.dispatch('get_empty_subquery_sql', 'dbt')(select_sql, select_sql_header)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4960632, "supported_languages": null}, "macro.dbt.default__get_empty_subquery_sql": {"name": "default__get_empty_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_empty_subquery_sql", "macro_sql": "{% macro default__get_empty_subquery_sql(select_sql, select_sql_header=none) %}\n {%- if select_sql_header is not none -%}\n {{ select_sql_header }}\n {%- endif -%}\n select * from (\n {{ select_sql }}\n ) as __dbt_sbq\n where false\n limit 0\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4966989, "supported_languages": null}, "macro.dbt.get_empty_schema_sql": {"name": "get_empty_schema_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_empty_schema_sql", "macro_sql": "{% macro get_empty_schema_sql(columns) -%}\n {{ return(adapter.dispatch('get_empty_schema_sql', 'dbt')(columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_empty_schema_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.4972935, "supported_languages": null}, "macro.dbt.default__get_empty_schema_sql": {"name": "default__get_empty_schema_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_empty_schema_sql", "macro_sql": "{% macro default__get_empty_schema_sql(columns) %}\n {%- set col_err = [] -%}\n {%- set col_naked_numeric = [] -%}\n select\n {% for i in columns %}\n {%- set col = columns[i] -%}\n {%- if col['data_type'] is not defined -%}\n {%- do col_err.append(col['name']) -%}\n {#-- If this column's type is just 'numeric' then it is missing precision/scale, raise a warning --#}\n {%- elif col['data_type'].strip().lower() in ('numeric', 'decimal', 'number') -%}\n {%- do col_naked_numeric.append(col['name']) -%}\n {%- endif -%}\n {% set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] %}\n {{ cast('null', col['data_type']) }} as {{ col_name }}{{ \", \" if not loop.last }}\n {%- endfor -%}\n {%- if (col_err | length) > 0 -%}\n {{ exceptions.column_type_missing(column_names=col_err) }}\n {%- elif (col_naked_numeric | length) > 0 -%}\n {{ exceptions.warn(\"Detected columns with numeric type and unspecified precision/scale, this can lead to unintended rounding: \" ~ col_naked_numeric ~ \"`\") }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5011106, "supported_languages": null}, "macro.dbt.get_column_schema_from_query": {"name": "get_column_schema_from_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_column_schema_from_query", "macro_sql": "{% macro get_column_schema_from_query(select_sql, select_sql_header=none) -%}\n {% set columns = [] %}\n {# -- Using an 'empty subquery' here to get the same schema as the given select_sql statement, without necessitating a data scan.#}\n {% set sql = get_empty_subquery_sql(select_sql, select_sql_header) %}\n {% set column_schema = adapter.get_column_schema_from_query(sql) %}\n {{ return(column_schema) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.502692, "supported_languages": null}, "macro.dbt.get_columns_in_query": {"name": "get_columns_in_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_columns_in_query", "macro_sql": "{% macro get_columns_in_query(select_sql) -%}\n {{ return(adapter.dispatch('get_columns_in_query', 'dbt')(select_sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5033157, "supported_languages": null}, "macro.dbt.default__get_columns_in_query": {"name": "default__get_columns_in_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_columns_in_query", "macro_sql": "{% macro default__get_columns_in_query(select_sql) %}\n {% call statement('get_columns_in_query', fetch_result=True, auto_begin=False) -%}\n {{ get_empty_subquery_sql(select_sql) }}\n {% endcall %}\n {{ return(load_result('get_columns_in_query').table.columns | map(attribute='name') | list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5044842, "supported_languages": null}, "macro.dbt.alter_column_type": {"name": "alter_column_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.alter_column_type", "macro_sql": "{% macro alter_column_type(relation, column_name, new_column_type) -%}\n {{ return(adapter.dispatch('alter_column_type', 'dbt')(relation, column_name, new_column_type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5051792, "supported_languages": null}, "macro.dbt.default__alter_column_type": {"name": "default__alter_column_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__alter_column_type", "macro_sql": "{% macro default__alter_column_type(relation, column_name, new_column_type) -%}\n {#\n 1. Create a new column (w/ temp name and correct type)\n 2. Copy data over to it\n 3. Drop the existing column (cascade!)\n 4. Rename the new column to existing column\n #}\n {%- set tmp_column = column_name + \"__dbt_alter\" -%}\n\n {% call statement('alter_column_type') %}\n alter table {{ relation.render() }} add column {{ adapter.quote(tmp_column) }} {{ new_column_type }};\n update {{ relation.render() }} set {{ adapter.quote(tmp_column) }} = {{ adapter.quote(column_name) }};\n alter table {{ relation.render() }} drop column {{ adapter.quote(column_name) }} cascade;\n alter table {{ relation.render() }} rename column {{ adapter.quote(tmp_column) }} to {{ adapter.quote(column_name) }}\n {% endcall %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5072155, "supported_languages": null}, "macro.dbt.alter_relation_add_remove_columns": {"name": "alter_relation_add_remove_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.alter_relation_add_remove_columns", "macro_sql": "{% macro alter_relation_add_remove_columns(relation, add_columns = none, remove_columns = none) -%}\n {{ return(adapter.dispatch('alter_relation_add_remove_columns', 'dbt')(relation, add_columns, remove_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__alter_relation_add_remove_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5079927, "supported_languages": null}, "macro.dbt.default__alter_relation_add_remove_columns": {"name": "default__alter_relation_add_remove_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__alter_relation_add_remove_columns", "macro_sql": "{% macro default__alter_relation_add_remove_columns(relation, add_columns, remove_columns) %}\n\n {% if add_columns is none %}\n {% set add_columns = [] %}\n {% endif %}\n {% if remove_columns is none %}\n {% set remove_columns = [] %}\n {% endif %}\n\n {% set sql -%}\n\n alter {{ relation.type }} {{ relation.render() }}\n\n {% for column in add_columns %}\n add column {{ column.quoted }} {{ column.expanded_data_type }}{{ ',' if not loop.last }}\n {% endfor %}{{ ',' if add_columns and remove_columns }}\n\n {% for column in remove_columns %}\n drop column {{ column.quoted }}{{ ',' if not loop.last }}\n {% endfor %}\n\n {%- endset -%}\n\n {% do run_query(sql) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5104756, "supported_languages": null}, "macro.dbt.get_catalog_relations": {"name": "get_catalog_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog_relations", "macro_sql": "{% macro get_catalog_relations(information_schema, relations) -%}\n {{ return(adapter.dispatch('get_catalog_relations', 'dbt')(information_schema, relations)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_catalog_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5132048, "supported_languages": null}, "macro.dbt.default__get_catalog_relations": {"name": "default__get_catalog_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog_relations", "macro_sql": "{% macro default__get_catalog_relations(information_schema, relations) -%}\n {% set typename = adapter.type() %}\n {% set msg -%}\n get_catalog_relations not implemented for {{ typename }}\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5139983, "supported_languages": null}, "macro.dbt.get_catalog": {"name": "get_catalog", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog", "macro_sql": "{% macro get_catalog(information_schema, schemas) -%}\n {{ return(adapter.dispatch('get_catalog', 'dbt')(information_schema, schemas)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_catalog"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5146127, "supported_languages": null}, "macro.dbt.default__get_catalog": {"name": "default__get_catalog", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog", "macro_sql": "{% macro default__get_catalog(information_schema, schemas) -%}\n\n {% set typename = adapter.type() %}\n {% set msg -%}\n get_catalog not implemented for {{ typename }}\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5154233, "supported_languages": null}, "macro.dbt.information_schema_name": {"name": "information_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.information_schema_name", "macro_sql": "{% macro information_schema_name(database) %}\n {{ return(adapter.dispatch('information_schema_name', 'dbt')(database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__information_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5160136, "supported_languages": null}, "macro.dbt.default__information_schema_name": {"name": "default__information_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__information_schema_name", "macro_sql": "{% macro default__information_schema_name(database) -%}\n {%- if database -%}\n {{ database }}.INFORMATION_SCHEMA\n {%- else -%}\n INFORMATION_SCHEMA\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5165694, "supported_languages": null}, "macro.dbt.list_schemas": {"name": "list_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_schemas", "macro_sql": "{% macro list_schemas(database) -%}\n {{ return(adapter.dispatch('list_schemas', 'dbt')(database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__list_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.517118, "supported_languages": null}, "macro.dbt.default__list_schemas": {"name": "default__list_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_schemas", "macro_sql": "{% macro default__list_schemas(database) -%}\n {% set sql %}\n select distinct schema_name\n from {{ information_schema_name(database) }}.SCHEMATA\n where catalog_name ilike '{{ database }}'\n {% endset %}\n {{ return(run_query(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.information_schema_name", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5178816, "supported_languages": null}, "macro.dbt.check_schema_exists": {"name": "check_schema_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.check_schema_exists", "macro_sql": "{% macro check_schema_exists(information_schema, schema) -%}\n {{ return(adapter.dispatch('check_schema_exists', 'dbt')(information_schema, schema)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__check_schema_exists"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5185041, "supported_languages": null}, "macro.dbt.default__check_schema_exists": {"name": "default__check_schema_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__check_schema_exists", "macro_sql": "{% macro default__check_schema_exists(information_schema, schema) -%}\n {% set sql -%}\n select count(*)\n from {{ information_schema.replace(information_schema_view='SCHEMATA') }}\n where catalog_name='{{ information_schema.database }}'\n and schema_name='{{ schema }}'\n {%- endset %}\n {{ return(run_query(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5194187, "supported_languages": null}, "macro.dbt.list_relations_without_caching": {"name": "list_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_relations_without_caching", "macro_sql": "{% macro list_relations_without_caching(schema_relation) %}\n {{ return(adapter.dispatch('list_relations_without_caching', 'dbt')(schema_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__list_relations_without_caching"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5199773, "supported_languages": null}, "macro.dbt.default__list_relations_without_caching": {"name": "default__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_relations_without_caching", "macro_sql": "{% macro default__list_relations_without_caching(schema_relation) %}\n {{ exceptions.raise_not_implemented(\n 'list_relations_without_caching macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5204582, "supported_languages": null}, "macro.dbt.get_catalog_for_single_relation": {"name": "get_catalog_for_single_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog_for_single_relation", "macro_sql": "{% macro get_catalog_for_single_relation(relation) %}\n {{ return(adapter.dispatch('get_catalog_for_single_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_catalog_for_single_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5210025, "supported_languages": null}, "macro.dbt.default__get_catalog_for_single_relation": {"name": "default__get_catalog_for_single_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog_for_single_relation", "macro_sql": "{% macro default__get_catalog_for_single_relation(relation) %}\n {{ exceptions.raise_not_implemented(\n 'get_catalog_for_single_relation macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5214837, "supported_languages": null}, "macro.dbt.get_relations": {"name": "get_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_relations", "macro_sql": "{% macro get_relations() %}\n {{ return(adapter.dispatch('get_relations', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.521975, "supported_languages": null}, "macro.dbt.default__get_relations": {"name": "default__get_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_relations", "macro_sql": "{% macro default__get_relations() %}\n {{ exceptions.raise_not_implemented(\n 'get_relations macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5224216, "supported_languages": null}, "macro.dbt.get_relation_last_modified": {"name": "get_relation_last_modified", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_relation_last_modified", "macro_sql": "{% macro get_relation_last_modified(information_schema, relations) %}\n {{ return(adapter.dispatch('get_relation_last_modified', 'dbt')(information_schema, relations)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_relation_last_modified"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5230274, "supported_languages": null}, "macro.dbt.default__get_relation_last_modified": {"name": "default__get_relation_last_modified", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_relation_last_modified", "macro_sql": "{% macro default__get_relation_last_modified(information_schema, relations) %}\n {{ exceptions.raise_not_implemented(\n 'get_relation_last_modified macro not implemented for adapter ' + adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.523978, "supported_languages": null}, "macro.dbt.get_show_sql": {"name": "get_show_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.get_show_sql", "macro_sql": "{% macro get_show_sql(compiled_code, sql_header, limit) -%}\n {%- if sql_header is not none -%}\n {{ sql_header }}\n {%- endif %}\n {{ get_limit_subquery_sql(compiled_code, limit) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_limit_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.525302, "supported_languages": null}, "macro.dbt.get_limit_subquery_sql": {"name": "get_limit_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.get_limit_subquery_sql", "macro_sql": "\n{%- macro get_limit_subquery_sql(sql, limit) -%}\n {{ adapter.dispatch('get_limit_sql', 'dbt')(sql, limit) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_limit_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5258663, "supported_languages": null}, "macro.dbt.default__get_limit_sql": {"name": "default__get_limit_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.default__get_limit_sql", "macro_sql": "{% macro default__get_limit_sql(sql, limit) %}\n {{ sql }}\n {% if limit is not none %}\n limit {{ limit }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5264297, "supported_languages": null}, "macro.dbt.collect_freshness": {"name": "collect_freshness", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.collect_freshness", "macro_sql": "{% macro collect_freshness(source, loaded_at_field, filter) %}\n {{ return(adapter.dispatch('collect_freshness', 'dbt')(source, loaded_at_field, filter))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5278122, "supported_languages": null}, "macro.dbt.default__collect_freshness": {"name": "default__collect_freshness", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.default__collect_freshness", "macro_sql": "{% macro default__collect_freshness(source, loaded_at_field, filter) %}\n {% call statement('collect_freshness', fetch_result=True, auto_begin=False) -%}\n select\n max({{ loaded_at_field }}) as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n from {{ source }}\n {% if filter %}\n where {{ filter }}\n {% endif %}\n {% endcall %}\n {{ return(load_result('collect_freshness')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.529059, "supported_languages": null}, "macro.dbt.collect_freshness_custom_sql": {"name": "collect_freshness_custom_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.collect_freshness_custom_sql", "macro_sql": "{% macro collect_freshness_custom_sql(source, loaded_at_query) %}\n {{ return(adapter.dispatch('collect_freshness_custom_sql', 'dbt')(source, loaded_at_query))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__collect_freshness_custom_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5296865, "supported_languages": null}, "macro.dbt.default__collect_freshness_custom_sql": {"name": "default__collect_freshness_custom_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.default__collect_freshness_custom_sql", "macro_sql": "{% macro default__collect_freshness_custom_sql(source, loaded_at_query) %}\n {% call statement('collect_freshness_custom_sql', fetch_result=True, auto_begin=False) -%}\n with source_query as (\n {{ loaded_at_query }}\n )\n select\n (select * from source_query) as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n {% endcall %}\n {{ return(load_result('collect_freshness_custom_sql')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.530717, "supported_languages": null}, "macro.dbt.alter_column_comment": {"name": "alter_column_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.alter_column_comment", "macro_sql": "{% macro alter_column_comment(relation, column_dict) -%}\n {{ return(adapter.dispatch('alter_column_comment', 'dbt')(relation, column_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5322504, "supported_languages": null}, "macro.dbt.default__alter_column_comment": {"name": "default__alter_column_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__alter_column_comment", "macro_sql": "{% macro default__alter_column_comment(relation, column_dict) -%}\n {{ exceptions.raise_not_implemented(\n 'alter_column_comment macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5327857, "supported_languages": null}, "macro.dbt.alter_relation_comment": {"name": "alter_relation_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.alter_relation_comment", "macro_sql": "{% macro alter_relation_comment(relation, relation_comment) -%}\n {{ return(adapter.dispatch('alter_relation_comment', 'dbt')(relation, relation_comment)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__alter_relation_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5333831, "supported_languages": null}, "macro.dbt.default__alter_relation_comment": {"name": "default__alter_relation_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__alter_relation_comment", "macro_sql": "{% macro default__alter_relation_comment(relation, relation_comment) -%}\n {{ exceptions.raise_not_implemented(\n 'alter_relation_comment macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5338907, "supported_languages": null}, "macro.dbt.persist_docs": {"name": "persist_docs", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.persist_docs", "macro_sql": "{% macro persist_docs(relation, model, for_relation=true, for_columns=true) -%}\n {{ return(adapter.dispatch('persist_docs', 'dbt')(relation, model, for_relation, for_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.534692, "supported_languages": null}, "macro.dbt.default__persist_docs": {"name": "default__persist_docs", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__persist_docs", "macro_sql": "{% macro default__persist_docs(relation, model, for_relation, for_columns) -%}\n {% if for_relation and config.persist_relation_docs() and model.description %}\n {% do run_query(alter_relation_comment(relation, model.description)) %}\n {% endif %}\n\n {% if for_columns and config.persist_column_docs() and model.columns %}\n {% do run_query(alter_column_comment(relation, model.columns)) %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.alter_relation_comment", "macro.dbt.alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5361683, "supported_languages": null}, "macro.dbt.get_create_index_sql": {"name": "get_create_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_create_index_sql", "macro_sql": "{% macro get_create_index_sql(relation, index_dict) -%}\n {{ return(adapter.dispatch('get_create_index_sql', 'dbt')(relation, index_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.537678, "supported_languages": null}, "macro.dbt.default__get_create_index_sql": {"name": "default__get_create_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_create_index_sql", "macro_sql": "{% macro default__get_create_index_sql(relation, index_dict) -%}\n {% do return(None) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5380845, "supported_languages": null}, "macro.dbt.create_indexes": {"name": "create_indexes", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.create_indexes", "macro_sql": "{% macro create_indexes(relation) -%}\n {{ adapter.dispatch('create_indexes', 'dbt')(relation) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5385542, "supported_languages": null}, "macro.dbt.default__create_indexes": {"name": "default__create_indexes", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__create_indexes", "macro_sql": "{% macro default__create_indexes(relation) -%}\n {%- set _indexes = config.get('indexes', default=[]) -%}\n\n {% for _index_dict in _indexes %}\n {% set create_index_sql = get_create_index_sql(relation, _index_dict) %}\n {% if create_index_sql %}\n {% do run_query(create_index_sql) %}\n {% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_create_index_sql", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5398564, "supported_languages": null}, "macro.dbt.get_drop_index_sql": {"name": "get_drop_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_drop_index_sql", "macro_sql": "{% macro get_drop_index_sql(relation, index_name) -%}\n {{ adapter.dispatch('get_drop_index_sql', 'dbt')(relation, index_name) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_drop_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5403936, "supported_languages": null}, "macro.dbt.default__get_drop_index_sql": {"name": "default__get_drop_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_drop_index_sql", "macro_sql": "{% macro default__get_drop_index_sql(relation, index_name) -%}\n {{ exceptions.raise_compiler_error(\"`get_drop_index_sql has not been implemented for this adapter.\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.540807, "supported_languages": null}, "macro.dbt.get_show_indexes_sql": {"name": "get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_show_indexes_sql", "macro_sql": "{% macro get_show_indexes_sql(relation) -%}\n {{ adapter.dispatch('get_show_indexes_sql', 'dbt')(relation) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_show_indexes_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5412693, "supported_languages": null}, "macro.dbt.default__get_show_indexes_sql": {"name": "default__get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_show_indexes_sql", "macro_sql": "{% macro default__get_show_indexes_sql(relation) -%}\n {{ exceptions.raise_compiler_error(\"`get_show_indexes_sql has not been implemented for this adapter.\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5416484, "supported_languages": null}, "macro.dbt.current_timestamp": {"name": "current_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp", "macro_sql": "{%- macro current_timestamp() -%}\n {{ adapter.dispatch('current_timestamp', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.543099, "supported_languages": null}, "macro.dbt.default__current_timestamp": {"name": "default__current_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp", "macro_sql": "{% macro default__current_timestamp() -%}\n {{ exceptions.raise_not_implemented(\n 'current_timestamp macro not implemented for adapter ' + adapter.type()) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5438387, "supported_languages": null}, "macro.dbt.snapshot_get_time": {"name": "snapshot_get_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.snapshot_get_time", "macro_sql": "\n\n{%- macro snapshot_get_time() -%}\n {{ adapter.dispatch('snapshot_get_time', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5442636, "supported_languages": null}, "macro.dbt.default__snapshot_get_time": {"name": "default__snapshot_get_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__snapshot_get_time", "macro_sql": "{% macro default__snapshot_get_time() %}\n {{ current_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5445776, "supported_languages": null}, "macro.dbt.get_snapshot_get_time_data_type": {"name": "get_snapshot_get_time_data_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.get_snapshot_get_time_data_type", "macro_sql": "{% macro get_snapshot_get_time_data_type() %}\n {% set snapshot_time = adapter.dispatch('snapshot_get_time', 'dbt')() %}\n {% set time_data_type_sql = 'select ' ~ snapshot_time ~ ' as dbt_snapshot_time' %}\n {% set snapshot_time_column_schema = get_column_schema_from_query(time_data_type_sql) %}\n {% set time_data_type = snapshot_time_column_schema[0].dtype %}\n {{ return(time_data_type or none) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time", "macro.dbt.default__snapshot_get_time", "macro.dbt.get_column_schema_from_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5460527, "supported_languages": null}, "macro.dbt.current_timestamp_backcompat": {"name": "current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp_backcompat", "macro_sql": "{% macro current_timestamp_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.546624, "supported_languages": null}, "macro.dbt.default__current_timestamp_backcompat": {"name": "default__current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp_backcompat", "macro_sql": "{% macro default__current_timestamp_backcompat() %}\n current_timestamp::timestamp\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5469584, "supported_languages": null}, "macro.dbt.current_timestamp_in_utc_backcompat": {"name": "current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp_in_utc_backcompat", "macro_sql": "{% macro current_timestamp_in_utc_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_in_utc_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__current_timestamp_in_utc_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5474489, "supported_languages": null}, "macro.dbt.default__current_timestamp_in_utc_backcompat": {"name": "default__current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp_in_utc_backcompat", "macro_sql": "{% macro default__current_timestamp_in_utc_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp_backcompat", "macro.dbt.default__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.548037, "supported_languages": null}, "macro.dbt.validate_sql": {"name": "validate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/validate_sql.sql", "original_file_path": "macros/adapters/validate_sql.sql", "unique_id": "macro.dbt.validate_sql", "macro_sql": "{% macro validate_sql(sql) -%}\n {{ return(adapter.dispatch('validate_sql', 'dbt')(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__validate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.548929, "supported_languages": null}, "macro.dbt.default__validate_sql": {"name": "default__validate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/validate_sql.sql", "original_file_path": "macros/adapters/validate_sql.sql", "unique_id": "macro.dbt.default__validate_sql", "macro_sql": "{% macro default__validate_sql(sql) -%}\n {% call statement('validate_sql') -%}\n explain {{ sql }}\n {% endcall %}\n {{ return(load_result('validate_sql')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5495923, "supported_languages": null}, "macro.dbt.copy_grants": {"name": "copy_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.copy_grants", "macro_sql": "{% macro copy_grants() %}\n {{ return(adapter.dispatch('copy_grants', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5531635, "supported_languages": null}, "macro.dbt.default__copy_grants": {"name": "default__copy_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__copy_grants", "macro_sql": "{% macro default__copy_grants() %}\n {{ return(True) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5535173, "supported_languages": null}, "macro.dbt.support_multiple_grantees_per_dcl_statement": {"name": "support_multiple_grantees_per_dcl_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.support_multiple_grantees_per_dcl_statement", "macro_sql": "{% macro support_multiple_grantees_per_dcl_statement() %}\n {{ return(adapter.dispatch('support_multiple_grantees_per_dcl_statement', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5540168, "supported_languages": null}, "macro.dbt.default__support_multiple_grantees_per_dcl_statement": {"name": "default__support_multiple_grantees_per_dcl_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__support_multiple_grantees_per_dcl_statement", "macro_sql": "\n\n{%- macro default__support_multiple_grantees_per_dcl_statement() -%}\n {{ return(True) }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5543716, "supported_languages": null}, "macro.dbt.should_revoke": {"name": "should_revoke", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.should_revoke", "macro_sql": "{% macro should_revoke(existing_relation, full_refresh_mode=True) %}\n\n {% if not existing_relation %}\n {#-- The table doesn't already exist, so no grants to copy over --#}\n {{ return(False) }}\n {% elif full_refresh_mode %}\n {#-- The object is being REPLACED -- whether grants are copied over depends on the value of user config --#}\n {{ return(copy_grants()) }}\n {% else %}\n {#-- The table is being merged/upserted/inserted -- grants will be carried over --#}\n {{ return(True) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5554419, "supported_languages": null}, "macro.dbt.get_show_grant_sql": {"name": "get_show_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_show_grant_sql", "macro_sql": "{% macro get_show_grant_sql(relation) %}\n {{ return(adapter.dispatch(\"get_show_grant_sql\", \"dbt\")(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_show_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.556002, "supported_languages": null}, "macro.dbt.default__get_show_grant_sql": {"name": "default__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_show_grant_sql", "macro_sql": "{% macro default__get_show_grant_sql(relation) %}\n show grants on {{ relation.render() }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5563712, "supported_languages": null}, "macro.dbt.get_grant_sql": {"name": "get_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_grant_sql", "macro_sql": "{% macro get_grant_sql(relation, privilege, grantees) %}\n {{ return(adapter.dispatch('get_grant_sql', 'dbt')(relation, privilege, grantees)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5570664, "supported_languages": null}, "macro.dbt.default__get_grant_sql": {"name": "default__get_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_grant_sql", "macro_sql": "\n\n{%- macro default__get_grant_sql(relation, privilege, grantees) -%}\n grant {{ privilege }} on {{ relation.render() }} to {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.557699, "supported_languages": null}, "macro.dbt.get_revoke_sql": {"name": "get_revoke_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_revoke_sql", "macro_sql": "{% macro get_revoke_sql(relation, privilege, grantees) %}\n {{ return(adapter.dispatch('get_revoke_sql', 'dbt')(relation, privilege, grantees)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_revoke_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5583656, "supported_languages": null}, "macro.dbt.default__get_revoke_sql": {"name": "default__get_revoke_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_revoke_sql", "macro_sql": "\n\n{%- macro default__get_revoke_sql(relation, privilege, grantees) -%}\n revoke {{ privilege }} on {{ relation.render() }} from {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5589995, "supported_languages": null}, "macro.dbt.get_dcl_statement_list": {"name": "get_dcl_statement_list", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_dcl_statement_list", "macro_sql": "{% macro get_dcl_statement_list(relation, grant_config, get_dcl_macro) %}\n {{ return(adapter.dispatch('get_dcl_statement_list', 'dbt')(relation, grant_config, get_dcl_macro)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_dcl_statement_list"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5597074, "supported_languages": null}, "macro.dbt.default__get_dcl_statement_list": {"name": "default__get_dcl_statement_list", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_dcl_statement_list", "macro_sql": "\n\n{%- macro default__get_dcl_statement_list(relation, grant_config, get_dcl_macro) -%}\n {#\n -- Unpack grant_config into specific privileges and the set of users who need them granted/revoked.\n -- Depending on whether this database supports multiple grantees per statement, pass in the list of\n -- all grantees per privilege, or (if not) template one statement per privilege-grantee pair.\n -- `get_dcl_macro` will be either `get_grant_sql` or `get_revoke_sql`\n #}\n {%- set dcl_statements = [] -%}\n {%- for privilege, grantees in grant_config.items() %}\n {%- if support_multiple_grantees_per_dcl_statement() and grantees -%}\n {%- set dcl = get_dcl_macro(relation, privilege, grantees) -%}\n {%- do dcl_statements.append(dcl) -%}\n {%- else -%}\n {%- for grantee in grantees -%}\n {% set dcl = get_dcl_macro(relation, privilege, [grantee]) %}\n {%- do dcl_statements.append(dcl) -%}\n {% endfor -%}\n {%- endif -%}\n {%- endfor -%}\n {{ return(dcl_statements) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5620852, "supported_languages": null}, "macro.dbt.call_dcl_statements": {"name": "call_dcl_statements", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.call_dcl_statements", "macro_sql": "{% macro call_dcl_statements(dcl_statement_list) %}\n {{ return(adapter.dispatch(\"call_dcl_statements\", \"dbt\")(dcl_statement_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5626607, "supported_languages": null}, "macro.dbt.default__call_dcl_statements": {"name": "default__call_dcl_statements", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__call_dcl_statements", "macro_sql": "{% macro default__call_dcl_statements(dcl_statement_list) %}\n {#\n -- By default, supply all grant + revoke statements in a single semicolon-separated block,\n -- so that they're all processed together.\n\n -- Some databases do not support this. Those adapters will need to override this macro\n -- to run each statement individually.\n #}\n {% call statement('grants') %}\n {% for dcl_statement in dcl_statement_list %}\n {{ dcl_statement }};\n {% endfor %}\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5635035, "supported_languages": null}, "macro.dbt.apply_grants": {"name": "apply_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.apply_grants", "macro_sql": "{% macro apply_grants(relation, grant_config, should_revoke) %}\n {{ return(adapter.dispatch(\"apply_grants\", \"dbt\")(relation, grant_config, should_revoke)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5642066, "supported_languages": null}, "macro.dbt.default__apply_grants": {"name": "default__apply_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__apply_grants", "macro_sql": "{% macro default__apply_grants(relation, grant_config, should_revoke=True) %}\n {#-- If grant_config is {} or None, this is a no-op --#}\n {% if grant_config %}\n {% if should_revoke %}\n {#-- We think previous grants may have carried over --#}\n {#-- Show current grants and calculate diffs --#}\n {% set current_grants_table = run_query(get_show_grant_sql(relation)) %}\n {% set current_grants_dict = adapter.standardize_grants_dict(current_grants_table) %}\n {% set needs_granting = diff_of_two_dicts(grant_config, current_grants_dict) %}\n {% set needs_revoking = diff_of_two_dicts(current_grants_dict, grant_config) %}\n {% if not (needs_granting or needs_revoking) %}\n {{ log('On ' ~ relation.render() ~': All grants are in place, no revocation or granting needed.')}}\n {% endif %}\n {% else %}\n {#-- We don't think there's any chance of previous grants having carried over. --#}\n {#-- Jump straight to granting what the user has configured. --#}\n {% set needs_revoking = {} %}\n {% set needs_granting = grant_config %}\n {% endif %}\n {% if needs_granting or needs_revoking %}\n {% set revoke_statement_list = get_dcl_statement_list(relation, needs_revoking, get_revoke_sql) %}\n {% set grant_statement_list = get_dcl_statement_list(relation, needs_granting, get_grant_sql) %}\n {% set dcl_statement_list = revoke_statement_list + grant_statement_list %}\n {% if dcl_statement_list %}\n {{ call_dcl_statements(dcl_statement_list) }}\n {% endif %}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.get_show_grant_sql", "macro.dbt.get_dcl_statement_list", "macro.dbt.call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5679755, "supported_languages": null}, "macro.dbt.resolve_model_name": {"name": "resolve_model_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.resolve_model_name", "macro_sql": "{% macro resolve_model_name(input_model_name) %}\n {{ return(adapter.dispatch('resolve_model_name', 'dbt')(input_model_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.570647, "supported_languages": null}, "macro.dbt.default__resolve_model_name": {"name": "default__resolve_model_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.default__resolve_model_name", "macro_sql": "\n\n{%- macro default__resolve_model_name(input_model_name) -%}\n {{ input_model_name | string | replace('\"', '\\\"') }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5711565, "supported_languages": null}, "macro.dbt.build_ref_function": {"name": "build_ref_function", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_ref_function", "macro_sql": "{% macro build_ref_function(model) %}\n\n {%- set ref_dict = {} -%}\n {%- for _ref in model.refs -%}\n {% set _ref_args = [_ref.get('package'), _ref['name']] if _ref.get('package') else [_ref['name'],] %}\n {%- set resolved = ref(*_ref_args, v=_ref.get('version')) -%}\n\n {#\n We want to get the string of the returned relation by calling .render() in order to skip sample/empty\n mode rendering logic. However, people override the default ref macro, and often return a string instead\n of a relation (like the ref macro does by default). Thus, to make sure we dont blow things up, we have\n to ensure the resolved relation has a .render() method.\n #}\n {%- if resolved.render is defined and resolved.render is callable -%}\n {%- set resolved = resolved.render() -%}\n {%- endif -%}\n\n {%- if _ref.get('version') -%}\n {% do _ref_args.extend([\"v\" ~ _ref['version']]) %}\n {%- endif -%}\n {%- do ref_dict.update({_ref_args | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef ref(*args, **kwargs):\n refs = {{ ref_dict | tojson }}\n key = '.'.join(args)\n version = kwargs.get(\"v\") or kwargs.get(\"version\")\n if version:\n key += f\".v{version}\"\n dbt_load_df_function = kwargs.get(\"dbt_load_df_function\")\n return dbt_load_df_function(refs[key])\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5742235, "supported_languages": null}, "macro.dbt.build_source_function": {"name": "build_source_function", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_source_function", "macro_sql": "{% macro build_source_function(model) %}\n\n {%- set source_dict = {} -%}\n {%- for _source in model.sources -%}\n {%- set resolved = source(*_source) -%}\n {%- do source_dict.update({_source | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef source(*args, dbt_load_df_function):\n sources = {{ source_dict | tojson }}\n key = '.'.join(args)\n return dbt_load_df_function(sources[key])\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5754676, "supported_languages": null}, "macro.dbt.build_config_dict": {"name": "build_config_dict", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_config_dict", "macro_sql": "{% macro build_config_dict(model) %}\n {%- set config_dict = {} -%}\n {% set config_dbt_used = zip(model.config.config_keys_used, model.config.config_keys_defaults) | list %}\n {%- for key, default in config_dbt_used -%}\n {# weird type testing with enum, would be much easier to write this logic in Python! #}\n {%- if key == \"language\" -%}\n {%- set value = \"python\" -%}\n {%- endif -%}\n {%- set value = model.config.get(key, default) -%}\n {%- do config_dict.update({key: value}) -%}\n {%- endfor -%}\n {# Handle dbt.config.meta_get() calls - use separate dict to avoid overwriting native configs #}\n {%- set meta_dict = {} -%}\n {%- if model.config.meta_keys_used -%}\n {% set meta_dbt_used = zip(model.config.meta_keys_used, model.config.meta_keys_defaults) | list %}\n {%- for key, default in meta_dbt_used -%}\n {%- if model.config.meta and key in model.config.meta -%}\n {%- set value = model.config.meta[key] -%}\n {%- else -%}\n {%- set value = default -%}\n {%- endif -%}\n {%- do meta_dict.update({key: value}) -%}\n {%- endfor -%}\n {%- endif -%}\nconfig_dict = {{ config_dict }}\nmeta_dict = {{ meta_dict }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5789843, "supported_languages": null}, "macro.dbt.py_script_postfix": {"name": "py_script_postfix", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.py_script_postfix", "macro_sql": "{% macro py_script_postfix(model) %}\n# This part is user provided model code\n# you will need to copy the next section to run the code\n# COMMAND ----------\n# this part is dbt logic for get ref work, do not modify\n\n{{ build_ref_function(model ) }}\n{{ build_source_function(model ) }}\n{{ build_config_dict(model) }}\n\nclass config:\n def __init__(self, *args, **kwargs):\n pass\n\n @staticmethod\n def get(key, default=None):\n return config_dict.get(key, default)\n\n @staticmethod\n def meta_get(key, default=None):\n return meta_dict.get(key, default)\n\nclass this:\n \"\"\"dbt.this() or dbt.this.identifier\"\"\"\n database = \"{{ this.database }}\"\n schema = \"{{ this.schema }}\"\n identifier = \"{{ this.identifier }}\"\n {% set this_relation_name = resolve_model_name(this) %}\n def __repr__(self):\n return '{{ this_relation_name }}'\n\n\nclass dbtObj:\n def __init__(self, load_df_function) -> None:\n self.source = lambda *args: source(*args, dbt_load_df_function=load_df_function)\n self.ref = lambda *args, **kwargs: ref(*args, **kwargs, dbt_load_df_function=load_df_function)\n self.config = config\n self.this = this()\n self.is_incremental = {{ is_incremental() }}\n\n# COMMAND ----------\n{{py_script_comment()}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.build_ref_function", "macro.dbt.build_source_function", "macro.dbt.build_config_dict", "macro.dbt.resolve_model_name", "macro.dbt.is_incremental", "macro.dbt.py_script_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5805218, "supported_languages": null}, "macro.dbt.py_script_comment": {"name": "py_script_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.py_script_comment", "macro_sql": "{%macro py_script_comment()%}\n{%endmacro%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.580769, "supported_languages": null}, "macro.dbt.convert_datetime": {"name": "convert_datetime", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.convert_datetime", "macro_sql": "{% macro convert_datetime(date_str, date_fmt) %}\n\n {% set error_msg -%}\n The provided partition date '{{ date_str }}' does not match the expected format '{{ date_fmt }}'\n {%- endset %}\n\n {% set res = try_or_compiler_error(error_msg, modules.datetime.datetime.strptime, date_str.strip(), date_fmt) %}\n {{ return(res) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5831816, "supported_languages": null}, "macro.dbt.dates_in_range": {"name": "dates_in_range", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.dates_in_range", "macro_sql": "{% macro dates_in_range(start_date_str, end_date_str=none, in_fmt=\"%Y%m%d\", out_fmt=\"%Y%m%d\") %}\n {% set end_date_str = start_date_str if end_date_str is none else end_date_str %}\n\n {% set start_date = convert_datetime(start_date_str, in_fmt) %}\n {% set end_date = convert_datetime(end_date_str, in_fmt) %}\n\n {% set day_count = (end_date - start_date).days %}\n {% if day_count < 0 %}\n {% set msg -%}\n Partition start date is after the end date ({{ start_date }}, {{ end_date }})\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg, model) }}\n {% endif %}\n\n {% set date_list = [] %}\n {% for i in range(0, day_count + 1) %}\n {% set the_date = (modules.datetime.timedelta(days=i) + start_date) %}\n {% if not out_fmt %}\n {% set _ = date_list.append(the_date) %}\n {% else %}\n {% set _ = date_list.append(the_date.strftime(out_fmt)) %}\n {% endif %}\n {% endfor %}\n\n {{ return(date_list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.convert_datetime"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5869486, "supported_languages": null}, "macro.dbt.partition_range": {"name": "partition_range", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.partition_range", "macro_sql": "{% macro partition_range(raw_partition_date, date_fmt='%Y%m%d') %}\n {% set partition_range = (raw_partition_date | string).split(\",\") %}\n\n {% if (partition_range | length) == 1 %}\n {% set start_date = partition_range[0] %}\n {% set end_date = none %}\n {% elif (partition_range | length) == 2 %}\n {% set start_date = partition_range[0] %}\n {% set end_date = partition_range[1] %}\n {% else %}\n {{ exceptions.raise_compiler_error(\"Invalid partition time. Expected format: {Start Date}[,{End Date}]. Got: \" ~ raw_partition_date) }}\n {% endif %}\n\n {{ return(dates_in_range(start_date, end_date, in_fmt=date_fmt)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dates_in_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5892675, "supported_languages": null}, "macro.dbt.py_current_timestring": {"name": "py_current_timestring", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.py_current_timestring", "macro_sql": "{% macro py_current_timestring() %}\n {% set dt = modules.datetime.datetime.now() %}\n {% do return(dt.strftime(\"%Y%m%d%H%M%S%f\")) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5900514, "supported_languages": null}, "macro.dbt.statement": {"name": "statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.statement", "macro_sql": "\n{%- macro statement(name=None, fetch_result=False, auto_begin=True, language='sql') -%}\n {%- if execute: -%}\n {%- set compiled_code = caller() -%}\n\n {%- if name == 'main' -%}\n {{ log('Writing runtime {} for node \"{}\"'.format(language, model['unique_id'])) }}\n {{ write(compiled_code) }}\n {%- endif -%}\n {%- if language == 'sql'-%}\n {%- set res, table = adapter.execute(compiled_code, auto_begin=auto_begin, fetch=fetch_result) -%}\n {%- elif language == 'python' -%}\n {%- set res = submit_python_job(model, compiled_code) -%}\n {#-- TODO: What should table be for python models? --#}\n {%- set table = None -%}\n {%- else -%}\n {% do exceptions.raise_compiler_error(\"statement macro didn't get supported language\") %}\n {%- endif -%}\n\n {%- if name is not none -%}\n {{ store_result(name, response=res, agate_table=table) }}\n {%- endif -%}\n\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.594785, "supported_languages": null}, "macro.dbt.noop_statement": {"name": "noop_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.noop_statement", "macro_sql": "{% macro noop_statement(name=None, message=None, code=None, rows_affected=None, res=None) -%}\n {%- set sql = caller() -%}\n\n {%- if name == 'main' -%}\n {{ log('Writing runtime SQL for node \"{}\"'.format(model['unique_id'])) }}\n {{ write(sql) }}\n {%- endif -%}\n\n {%- if name is not none -%}\n {{ store_raw_result(name, message=message, code=code, rows_affected=rows_affected, agate_table=res) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5965972, "supported_languages": null}, "macro.dbt.run_query": {"name": "run_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.run_query", "macro_sql": "{% macro run_query(sql) %}\n {% call statement(\"run_query_statement\", fetch_result=true, auto_begin=false) %}\n {{ sql }}\n {% endcall %}\n\n {% do return(load_result(\"run_query_statement\").table) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5975454, "supported_languages": null}, "macro.dbt.drop_schema_named": {"name": "drop_schema_named", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/schema.sql", "original_file_path": "macros/relations/schema.sql", "unique_id": "macro.dbt.drop_schema_named", "macro_sql": "{% macro drop_schema_named(schema_name) %}\n {{ return(adapter.dispatch('drop_schema_named', 'dbt') (schema_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__drop_schema_named"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5984545, "supported_languages": null}, "macro.dbt.default__drop_schema_named": {"name": "default__drop_schema_named", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/schema.sql", "original_file_path": "macros/relations/schema.sql", "unique_id": "macro.dbt.default__drop_schema_named", "macro_sql": "{% macro default__drop_schema_named(schema_name) %}\n {% set schema_relation = api.Relation.create(schema=schema_name) %}\n {{ adapter.drop_schema(schema_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.5991054, "supported_languages": null}, "macro.dbt.get_create_backup_sql": {"name": "get_create_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_backup.sql", "original_file_path": "macros/relations/create_backup.sql", "unique_id": "macro.dbt.get_create_backup_sql", "macro_sql": "{%- macro get_create_backup_sql(relation) -%}\n {{- log('Applying CREATE BACKUP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_backup_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_backup_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6000354, "supported_languages": null}, "macro.dbt.default__get_create_backup_sql": {"name": "default__get_create_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_backup.sql", "original_file_path": "macros/relations/create_backup.sql", "unique_id": "macro.dbt.default__get_create_backup_sql", "macro_sql": "{%- macro default__get_create_backup_sql(relation) -%}\n\n -- get the standard backup name\n {% set backup_relation = make_backup_relation(relation, relation.type) %}\n\n -- drop any pre-existing backup\n {{ get_drop_sql(backup_relation) }};\n\n {{ get_rename_sql(relation, backup_relation.identifier) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_backup_relation", "macro.dbt.get_drop_sql", "macro.dbt.get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.600842, "supported_languages": null}, "macro.dbt.get_drop_sql": {"name": "get_drop_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.get_drop_sql", "macro_sql": "{%- macro get_drop_sql(relation) -%}\n {{- log('Applying DROP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_drop_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6023052, "supported_languages": null}, "macro.dbt.default__get_drop_sql": {"name": "default__get_drop_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.default__get_drop_sql", "macro_sql": "{%- macro default__get_drop_sql(relation) -%}\n\n {%- if relation.is_view -%}\n {{ drop_view(relation) }}\n\n {%- elif relation.is_table -%}\n {{ drop_table(relation) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ drop_materialized_view(relation) }}\n\n {%- else -%}\n drop {{ relation.type }} if exists {{ relation.render() }} cascade\n\n {%- endif -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.drop_view", "macro.dbt.drop_table", "macro.dbt.drop_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.603866, "supported_languages": null}, "macro.dbt.drop_relation": {"name": "drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.drop_relation", "macro_sql": "{% macro drop_relation(relation) -%}\n {{ return(adapter.dispatch('drop_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6044145, "supported_languages": null}, "macro.dbt.default__drop_relation": {"name": "default__drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.default__drop_relation", "macro_sql": "{% macro default__drop_relation(relation) -%}\n {% call statement('drop_relation', auto_begin=False) -%}\n {{ get_drop_sql(relation) }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6050293, "supported_languages": null}, "macro.dbt.drop_relation_if_exists": {"name": "drop_relation_if_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.drop_relation_if_exists", "macro_sql": "{% macro drop_relation_if_exists(relation) %}\n {% if relation is not none %}\n {{ adapter.drop_relation(relation) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6056182, "supported_languages": null}, "macro.dbt.get_drop_backup_sql": {"name": "get_drop_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop_backup.sql", "original_file_path": "macros/relations/drop_backup.sql", "unique_id": "macro.dbt.get_drop_backup_sql", "macro_sql": "{%- macro get_drop_backup_sql(relation) -%}\n {{- log('Applying DROP BACKUP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_drop_backup_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_drop_backup_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6066444, "supported_languages": null}, "macro.dbt.default__get_drop_backup_sql": {"name": "default__get_drop_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop_backup.sql", "original_file_path": "macros/relations/drop_backup.sql", "unique_id": "macro.dbt.default__get_drop_backup_sql", "macro_sql": "{%- macro default__get_drop_backup_sql(relation) -%}\n\n -- get the standard backup name\n {% set backup_relation = make_backup_relation(relation, relation.type) %}\n\n {{ get_drop_sql(backup_relation) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_backup_relation", "macro.dbt.get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6073, "supported_languages": null}, "macro.dbt.get_create_sql": {"name": "get_create_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create.sql", "original_file_path": "macros/relations/create.sql", "unique_id": "macro.dbt.get_create_sql", "macro_sql": "{%- macro get_create_sql(relation, sql) -%}\n {{- log('Applying CREATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_sql', 'dbt')(relation, sql) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6084504, "supported_languages": null}, "macro.dbt.default__get_create_sql": {"name": "default__get_create_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create.sql", "original_file_path": "macros/relations/create.sql", "unique_id": "macro.dbt.default__get_create_sql", "macro_sql": "{%- macro default__get_create_sql(relation, sql) -%}\n\n {%- if relation.is_view -%}\n {{ get_create_view_as_sql(relation, sql) }}\n\n {%- elif relation.is_table -%}\n {{ get_create_table_as_sql(False, relation, sql) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ get_create_materialized_view_as_sql(relation, sql) }}\n\n {%- else -%}\n {{- exceptions.raise_compiler_error(\"`get_create_sql` has not been implemented for: \" ~ relation.type ) -}}\n\n {%- endif -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.get_create_view_as_sql", "macro.dbt.get_create_table_as_sql", "macro.dbt.get_create_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6098049, "supported_languages": null}, "macro.dbt.get_create_intermediate_sql": {"name": "get_create_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_intermediate.sql", "original_file_path": "macros/relations/create_intermediate.sql", "unique_id": "macro.dbt.get_create_intermediate_sql", "macro_sql": "{%- macro get_create_intermediate_sql(relation, sql) -%}\n {{- log('Applying CREATE INTERMEDIATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_intermediate_sql', 'dbt')(relation, sql) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_intermediate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.610814, "supported_languages": null}, "macro.dbt.default__get_create_intermediate_sql": {"name": "default__get_create_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_intermediate.sql", "original_file_path": "macros/relations/create_intermediate.sql", "unique_id": "macro.dbt.default__get_create_intermediate_sql", "macro_sql": "{%- macro default__get_create_intermediate_sql(relation, sql) -%}\n\n -- get the standard intermediate name\n {% set intermediate_relation = make_intermediate_relation(relation) %}\n\n -- drop any pre-existing intermediate\n {{ get_drop_sql(intermediate_relation) }};\n\n {{ get_create_sql(intermediate_relation, sql) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_intermediate_relation", "macro.dbt.get_drop_sql", "macro.dbt.get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6115563, "supported_languages": null}, "macro.dbt.get_replace_sql": {"name": "get_replace_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/replace.sql", "original_file_path": "macros/relations/replace.sql", "unique_id": "macro.dbt.get_replace_sql", "macro_sql": "{% macro get_replace_sql(existing_relation, target_relation, sql) %}\n {{- log('Applying REPLACE to: ' ~ existing_relation) -}}\n {{- adapter.dispatch('get_replace_sql', 'dbt')(existing_relation, target_relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6134982, "supported_languages": null}, "macro.dbt.default__get_replace_sql": {"name": "default__get_replace_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/replace.sql", "original_file_path": "macros/relations/replace.sql", "unique_id": "macro.dbt.default__get_replace_sql", "macro_sql": "{% macro default__get_replace_sql(existing_relation, target_relation, sql) %}\n\n {# /* use a create or replace statement if possible */ #}\n\n {% set is_replaceable = existing_relation.type == target_relation.type and existing_relation.can_be_replaced %}\n\n {% if is_replaceable and existing_relation.is_view %}\n {{ get_replace_view_sql(target_relation, sql) }}\n\n {% elif is_replaceable and existing_relation.is_table %}\n {{ get_replace_table_sql(target_relation, sql) }}\n\n {% elif is_replaceable and existing_relation.is_materialized_view %}\n {{ get_replace_materialized_view_sql(target_relation, sql) }}\n\n {# /* a create or replace statement is not possible, so try to stage and/or backup to be safe */ #}\n\n {# /* create target_relation as an intermediate relation, then swap it out with the existing one using a backup */ #}\n {%- elif target_relation.can_be_renamed and existing_relation.can_be_renamed -%}\n {{ get_create_intermediate_sql(target_relation, sql) }};\n {{ get_create_backup_sql(existing_relation) }};\n {{ get_rename_intermediate_sql(target_relation) }};\n {{ get_drop_backup_sql(existing_relation) }}\n\n {# /* create target_relation as an intermediate relation, then swap it out with the existing one without using a backup */ #}\n {%- elif target_relation.can_be_renamed -%}\n {{ get_create_intermediate_sql(target_relation, sql) }};\n {{ get_drop_sql(existing_relation) }};\n {{ get_rename_intermediate_sql(target_relation) }}\n\n {# /* create target_relation in place by first backing up the existing relation */ #}\n {%- elif existing_relation.can_be_renamed -%}\n {{ get_create_backup_sql(existing_relation) }};\n {{ get_create_sql(target_relation, sql) }};\n {{ get_drop_backup_sql(existing_relation) }}\n\n {# /* no renaming is allowed, so just drop and create */ #}\n {%- else -%}\n {{ get_drop_sql(existing_relation) }};\n {{ get_create_sql(target_relation, sql) }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_replace_view_sql", "macro.dbt.get_replace_table_sql", "macro.dbt.get_replace_materialized_view_sql", "macro.dbt.get_create_intermediate_sql", "macro.dbt.get_create_backup_sql", "macro.dbt.get_rename_intermediate_sql", "macro.dbt.get_drop_backup_sql", "macro.dbt.get_drop_sql", "macro.dbt.get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6173017, "supported_languages": null}, "macro.dbt.get_rename_sql": {"name": "get_rename_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.get_rename_sql", "macro_sql": "{%- macro get_rename_sql(relation, new_name) -%}\n {{- log('Applying RENAME to: ' ~ relation) -}}\n {{- adapter.dispatch('get_rename_sql', 'dbt')(relation, new_name) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6189487, "supported_languages": null}, "macro.dbt.default__get_rename_sql": {"name": "default__get_rename_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.default__get_rename_sql", "macro_sql": "{%- macro default__get_rename_sql(relation, new_name) -%}\n\n {%- if relation.is_view -%}\n {{ get_rename_view_sql(relation, new_name) }}\n\n {%- elif relation.is_table -%}\n {{ get_rename_table_sql(relation, new_name) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ get_rename_materialized_view_sql(relation, new_name) }}\n\n {%- else -%}\n {{- exceptions.raise_compiler_error(\"`get_rename_sql` has not been implemented for: \" ~ relation.type ) -}}\n\n {%- endif -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.get_rename_view_sql", "macro.dbt.get_rename_table_sql", "macro.dbt.get_rename_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6202576, "supported_languages": null}, "macro.dbt.rename_relation": {"name": "rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.rename_relation", "macro_sql": "{% macro rename_relation(from_relation, to_relation) -%}\n {{ return(adapter.dispatch('rename_relation', 'dbt')(from_relation, to_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__rename_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6209073, "supported_languages": null}, "macro.dbt.default__rename_relation": {"name": "default__rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.default__rename_relation", "macro_sql": "{% macro default__rename_relation(from_relation, to_relation) -%}\n {% set target_name = adapter.quote_as_configured(to_relation.identifier, 'identifier') %}\n {% call statement('rename_relation') -%}\n alter table {{ from_relation.render() }} rename to {{ target_name }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6218185, "supported_languages": null}, "macro.dbt.get_rename_intermediate_sql": {"name": "get_rename_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename_intermediate.sql", "original_file_path": "macros/relations/rename_intermediate.sql", "unique_id": "macro.dbt.get_rename_intermediate_sql", "macro_sql": "{%- macro get_rename_intermediate_sql(relation) -%}\n {{- log('Applying RENAME INTERMEDIATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_rename_intermediate_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_rename_intermediate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.622741, "supported_languages": null}, "macro.dbt.default__get_rename_intermediate_sql": {"name": "default__get_rename_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename_intermediate.sql", "original_file_path": "macros/relations/rename_intermediate.sql", "unique_id": "macro.dbt.default__get_rename_intermediate_sql", "macro_sql": "{%- macro default__get_rename_intermediate_sql(relation) -%}\n\n -- get the standard intermediate name\n {% set intermediate_relation = make_intermediate_relation(relation) %}\n\n {{ get_rename_sql(intermediate_relation, relation.identifier) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_intermediate_relation", "macro.dbt.get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6234045, "supported_languages": null}, "macro.dbt.drop_view": {"name": "drop_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt.drop_view", "macro_sql": "{% macro drop_view(relation) -%}\n {{- adapter.dispatch('drop_view', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__drop_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6241193, "supported_languages": null}, "macro.dbt.default__drop_view": {"name": "default__drop_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt.default__drop_view", "macro_sql": "{% macro default__drop_view(relation) -%}\n drop view if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.624486, "supported_languages": null}, "macro.dbt.get_create_view_as_sql": {"name": "get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.get_create_view_as_sql", "macro_sql": "{% macro get_create_view_as_sql(relation, sql) -%}\n {{ adapter.dispatch('get_create_view_as_sql', 'dbt')(relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6255689, "supported_languages": null}, "macro.dbt.default__get_create_view_as_sql": {"name": "default__get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.default__get_create_view_as_sql", "macro_sql": "{% macro default__get_create_view_as_sql(relation, sql) -%}\n {{ return(create_view_as(relation, sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.626067, "supported_languages": null}, "macro.dbt.create_view_as": {"name": "create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.create_view_as", "macro_sql": "{% macro create_view_as(relation, sql) -%}\n {{ adapter.dispatch('create_view_as', 'dbt')(relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6266568, "supported_languages": null}, "macro.dbt.default__create_view_as": {"name": "default__create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.default__create_view_as", "macro_sql": "{% macro default__create_view_as(relation, sql) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n create view {{ relation.render() }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {%- endif %}\n as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6287892, "supported_languages": null}, "macro.dbt.get_replace_view_sql": {"name": "get_replace_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.get_replace_view_sql", "macro_sql": "{% macro get_replace_view_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_view_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6310034, "supported_languages": null}, "macro.dbt.default__get_replace_view_sql": {"name": "default__get_replace_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.default__get_replace_view_sql", "macro_sql": "{% macro default__get_replace_view_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.631648, "supported_languages": null}, "macro.dbt.create_or_replace_view": {"name": "create_or_replace_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.create_or_replace_view", "macro_sql": "{% macro create_or_replace_view() %}\n {%- set identifier = model['alias'] -%}\n\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n {%- set exists_as_view = (old_relation is not none and old_relation.is_view) -%}\n\n {%- set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database,\n type='view') -%}\n {% set grant_config = config.get('grants') %}\n\n {{ run_hooks(pre_hooks) }}\n\n -- If there's a table with the same name and we weren't told to full refresh,\n -- that's an error. If we were told to full refresh, drop it. This behavior differs\n -- for Snowflake and BigQuery, so multiple dispatch is used.\n {%- if old_relation is not none and old_relation.is_table -%}\n {{ handle_existing_table(should_full_refresh(), old_relation) }}\n {%- endif -%}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_view_as_sql(target_relation, sql) }}\n {%- endcall %}\n\n {% set should_revoke = should_revoke(exists_as_view, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {{ run_hooks(post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.handle_existing_table", "macro.dbt.should_full_refresh", "macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6360662, "supported_languages": null}, "macro.dbt.handle_existing_table": {"name": "handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.handle_existing_table", "macro_sql": "{% macro handle_existing_table(full_refresh, old_relation) %}\n {{ adapter.dispatch('handle_existing_table', 'dbt')(full_refresh, old_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__handle_existing_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6367066, "supported_languages": null}, "macro.dbt.default__handle_existing_table": {"name": "default__handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.default__handle_existing_table", "macro_sql": "{% macro default__handle_existing_table(full_refresh, old_relation) %}\n {{ log(\"Dropping relation \" ~ old_relation.render() ~ \" because it is of type \" ~ old_relation.type) }}\n {{ adapter.drop_relation(old_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.637429, "supported_languages": null}, "macro.dbt.get_rename_view_sql": {"name": "get_rename_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt.get_rename_view_sql", "macro_sql": "{% macro get_rename_view_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_view_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_rename_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6382995, "supported_languages": null}, "macro.dbt.default__get_rename_view_sql": {"name": "default__get_rename_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt.default__get_rename_view_sql", "macro_sql": "{% macro default__get_rename_view_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6387568, "supported_languages": null}, "macro.dbt.drop_table": {"name": "drop_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt.drop_table", "macro_sql": "{% macro drop_table(relation) -%}\n {{- adapter.dispatch('drop_table', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__drop_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6394918, "supported_languages": null}, "macro.dbt.default__drop_table": {"name": "default__drop_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt.default__drop_table", "macro_sql": "{% macro default__drop_table(relation) -%}\n drop table if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.639876, "supported_languages": null}, "macro.dbt.get_create_table_as_sql": {"name": "get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.get_create_table_as_sql", "macro_sql": "{% macro get_create_table_as_sql(temporary, relation, sql) -%}\n {{ adapter.dispatch('get_create_table_as_sql', 'dbt')(temporary, relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_table_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.641851, "supported_languages": null}, "macro.dbt.default__get_create_table_as_sql": {"name": "default__get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_create_table_as_sql", "macro_sql": "{% macro default__get_create_table_as_sql(temporary, relation, sql) -%}\n {{ return(create_table_as(temporary, relation, sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6424088, "supported_languages": null}, "macro.dbt.create_table_as": {"name": "create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.create_table_as", "macro_sql": "{% macro create_table_as(temporary, relation, compiled_code, language='sql') -%}\n {# backward compatibility for create_table_as that does not support language #}\n {% if language == \"sql\" %}\n {{ adapter.dispatch('create_table_as', 'dbt')(temporary, relation, compiled_code)}}\n {% else %}\n {{ adapter.dispatch('create_table_as', 'dbt')(temporary, relation, compiled_code, language) }}\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_sqlserver.sqlserver__create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6437418, "supported_languages": null}, "macro.dbt.default__create_table_as": {"name": "default__create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__create_table_as", "macro_sql": "{% macro default__create_table_as(temporary, relation, sql) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n\n create {% if temporary: -%}temporary{%- endif %} table\n {{ relation.include(database=(not temporary), schema=(not temporary)) }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced and (not temporary) %}\n {{ get_assert_columns_equivalent(sql) }}\n {{ get_table_columns_and_constraints() }}\n {%- set sql = get_select_subquery(sql) %}\n {% endif %}\n as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.645879, "supported_languages": null}, "macro.dbt.default__get_column_names": {"name": "default__get_column_names", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_column_names", "macro_sql": "{% macro default__get_column_names() %}\n {#- loop through user_provided_columns to get column names -#}\n {%- set user_provided_columns = model['columns'] -%}\n {%- for i in user_provided_columns %}\n {%- set col = user_provided_columns[i] -%}\n {%- set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] -%}\n {{ col_name }}{{ \", \" if not loop.last }}\n {%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6473656, "supported_languages": null}, "macro.dbt.get_select_subquery": {"name": "get_select_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.get_select_subquery", "macro_sql": "{% macro get_select_subquery(sql) %}\n {{ return(adapter.dispatch('get_select_subquery', 'dbt')(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6480176, "supported_languages": null}, "macro.dbt.default__get_select_subquery": {"name": "default__get_select_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_select_subquery", "macro_sql": "{% macro default__get_select_subquery(sql) %}\n select {{ adapter.dispatch('get_column_names', 'dbt')() }}\n from (\n {{ sql }}\n ) as model_subq\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_column_names"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6486344, "supported_languages": null}, "macro.dbt.get_replace_table_sql": {"name": "get_replace_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt.get_replace_table_sql", "macro_sql": "{% macro get_replace_table_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_table_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_table_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6494827, "supported_languages": null}, "macro.dbt.default__get_replace_table_sql": {"name": "default__get_replace_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt.default__get_replace_table_sql", "macro_sql": "{% macro default__get_replace_table_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_table_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6499531, "supported_languages": null}, "macro.dbt.get_rename_table_sql": {"name": "get_rename_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt.get_rename_table_sql", "macro_sql": "{% macro get_rename_table_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_table_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_rename_table_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6507611, "supported_languages": null}, "macro.dbt.default__get_rename_table_sql": {"name": "default__get_rename_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt.default__get_rename_table_sql", "macro_sql": "{% macro default__get_rename_table_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_table_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.651212, "supported_languages": null}, "macro.dbt.get_table_columns_and_constraints": {"name": "get_table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.get_table_columns_and_constraints", "macro_sql": "{%- macro get_table_columns_and_constraints() -%}\n {{ adapter.dispatch('get_table_columns_and_constraints', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_table_columns_and_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6535273, "supported_languages": null}, "macro.dbt.default__get_table_columns_and_constraints": {"name": "default__get_table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__get_table_columns_and_constraints", "macro_sql": "{% macro default__get_table_columns_and_constraints() -%}\n {{ return(table_columns_and_constraints()) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.table_columns_and_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.653906, "supported_languages": null}, "macro.dbt.table_columns_and_constraints": {"name": "table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.table_columns_and_constraints", "macro_sql": "{% macro table_columns_and_constraints() %}\n {# loop through user_provided_columns to create DDL with data types and constraints #}\n {%- set raw_column_constraints = adapter.render_raw_columns_constraints(raw_columns=model['columns']) -%}\n {%- set raw_model_constraints = adapter.render_raw_model_constraints(raw_constraints=model['constraints']) -%}\n (\n {% for c in raw_column_constraints -%}\n {{ c }}{{ \",\" if not loop.last or raw_model_constraints }}\n {% endfor %}\n {% for c in raw_model_constraints -%}\n {{ c }}{{ \",\" if not loop.last }}\n {% endfor -%}\n )\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6559248, "supported_languages": null}, "macro.dbt.get_assert_columns_equivalent": {"name": "get_assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.get_assert_columns_equivalent", "macro_sql": "\n\n{%- macro get_assert_columns_equivalent(sql) -%}\n {{ adapter.dispatch('get_assert_columns_equivalent', 'dbt')(sql) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6564167, "supported_languages": null}, "macro.dbt.default__get_assert_columns_equivalent": {"name": "default__get_assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__get_assert_columns_equivalent", "macro_sql": "{% macro default__get_assert_columns_equivalent(sql) -%}\n {{ return(assert_columns_equivalent(sql)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6568353, "supported_languages": null}, "macro.dbt.assert_columns_equivalent": {"name": "assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.assert_columns_equivalent", "macro_sql": "{% macro assert_columns_equivalent(sql) %}\n\n {#-- First ensure the user has defined 'columns' in yaml specification --#}\n {%- set user_defined_columns = model['columns'] -%}\n {%- if not user_defined_columns -%}\n {{ exceptions.raise_contract_error([], []) }}\n {%- endif -%}\n\n {#-- Obtain the column schema provided by sql file. #}\n {%- set sql_file_provided_columns = get_column_schema_from_query(sql, config.get('sql_header', none)) -%}\n {#--Obtain the column schema provided by the schema file by generating an 'empty schema' query from the model's columns. #}\n {%- set schema_file_provided_columns = get_column_schema_from_query(get_empty_schema_sql(user_defined_columns)) -%}\n\n {#-- create dictionaries with name and formatted data type and strings for exception #}\n {%- set sql_columns = format_columns(sql_file_provided_columns) -%}\n {%- set yaml_columns = format_columns(schema_file_provided_columns) -%}\n\n {%- if sql_columns|length != yaml_columns|length -%}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n\n {%- for sql_col in sql_columns -%}\n {%- set yaml_col = [] -%}\n {%- for this_col in yaml_columns -%}\n {%- if this_col['name'] == sql_col['name'] -%}\n {%- do yaml_col.append(this_col) -%}\n {%- break -%}\n {%- endif -%}\n {%- endfor -%}\n {%- if not yaml_col -%}\n {#-- Column with name not found in yaml #}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n {%- if sql_col['formatted'] != yaml_col[0]['formatted'] -%}\n {#-- Column data types don't match #}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n {%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_column_schema_from_query", "macro.dbt.get_empty_schema_sql", "macro.dbt.format_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.660746, "supported_languages": null}, "macro.dbt.format_columns": {"name": "format_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.format_columns", "macro_sql": "{% macro format_columns(columns) %}\n {% set formatted_columns = [] %}\n {% for column in columns %}\n {%- set formatted_column = adapter.dispatch('format_column', 'dbt')(column) -%}\n {%- do formatted_columns.append(formatted_column) -%}\n {% endfor %}\n {{ return(formatted_columns) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__format_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6619093, "supported_languages": null}, "macro.dbt.default__format_column": {"name": "default__format_column", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__format_column", "macro_sql": "{% macro default__format_column(column) -%}\n {% set data_type = column.dtype %}\n {% set formatted = column.column.lower() ~ \" \" ~ data_type %}\n {{ return({'name': column.name, 'data_type': data_type, 'formatted': formatted}) }}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6629496, "supported_languages": null}, "macro.dbt.drop_materialized_view": {"name": "drop_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt.drop_materialized_view", "macro_sql": "{% macro drop_materialized_view(relation) -%}\n {{- adapter.dispatch('drop_materialized_view', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__drop_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6638038, "supported_languages": null}, "macro.dbt.default__drop_materialized_view": {"name": "default__drop_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt.default__drop_materialized_view", "macro_sql": "{% macro default__drop_materialized_view(relation) -%}\n drop materialized view if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6641767, "supported_languages": null}, "macro.dbt.refresh_materialized_view": {"name": "refresh_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt.refresh_materialized_view", "macro_sql": "{% macro refresh_materialized_view(relation) %}\n {{- log('Applying REFRESH to: ' ~ relation) -}}\n {{- adapter.dispatch('refresh_materialized_view', 'dbt')(relation) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__refresh_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.665144, "supported_languages": null}, "macro.dbt.default__refresh_materialized_view": {"name": "default__refresh_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt.default__refresh_materialized_view", "macro_sql": "{% macro default__refresh_materialized_view(relation) %}\n {{ exceptions.raise_compiler_error(\"`refresh_materialized_view` has not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6655667, "supported_languages": null}, "macro.dbt.get_alter_materialized_view_as_sql": {"name": "get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.get_alter_materialized_view_as_sql", "macro_sql": "{% macro get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n {{- log('Applying ALTER to: ' ~ relation) -}}\n {{- adapter.dispatch('get_alter_materialized_view_as_sql', 'dbt')(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n ) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_alter_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.667406, "supported_languages": null}, "macro.dbt.default__get_alter_materialized_view_as_sql": {"name": "default__get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.default__get_alter_materialized_view_as_sql", "macro_sql": "{% macro default__get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n {{ exceptions.raise_compiler_error(\"Materialized views have not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6680405, "supported_languages": null}, "macro.dbt.get_materialized_view_configuration_changes": {"name": "get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.get_materialized_view_configuration_changes", "macro_sql": "{% macro get_materialized_view_configuration_changes(existing_relation, new_config) %}\n /* {#\n It's recommended that configuration changes be formatted as follows:\n {\"\": [{\"action\": \"\", \"context\": ...}]}\n\n For example:\n {\n \"indexes\": [\n {\"action\": \"drop\", \"context\": \"index_abc\"},\n {\"action\": \"create\", \"context\": {\"columns\": [\"column_1\", \"column_2\"], \"type\": \"hash\", \"unique\": True}},\n ],\n }\n\n Either way, `get_materialized_view_configuration_changes` needs to align with `get_alter_materialized_view_as_sql`.\n #} */\n {{- log('Determining configuration changes on: ' ~ existing_relation) -}}\n {%- do return(adapter.dispatch('get_materialized_view_configuration_changes', 'dbt')(existing_relation, new_config)) -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_materialized_view_configuration_changes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.668899, "supported_languages": null}, "macro.dbt.default__get_materialized_view_configuration_changes": {"name": "default__get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.default__get_materialized_view_configuration_changes", "macro_sql": "{% macro default__get_materialized_view_configuration_changes(existing_relation, new_config) %}\n {{ exceptions.raise_compiler_error(\"Materialized views have not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6693301, "supported_languages": null}, "macro.dbt.get_create_materialized_view_as_sql": {"name": "get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt.get_create_materialized_view_as_sql", "macro_sql": "{% macro get_create_materialized_view_as_sql(relation, sql) -%}\n {{- adapter.dispatch('get_create_materialized_view_as_sql', 'dbt')(relation, sql) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6701307, "supported_languages": null}, "macro.dbt.default__get_create_materialized_view_as_sql": {"name": "default__get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt.default__get_create_materialized_view_as_sql", "macro_sql": "{% macro default__get_create_materialized_view_as_sql(relation, sql) -%}\n {{ exceptions.raise_compiler_error(\n \"`get_create_materialized_view_as_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6705897, "supported_languages": null}, "macro.dbt.get_replace_materialized_view_sql": {"name": "get_replace_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/replace.sql", "original_file_path": "macros/relations/materialized_view/replace.sql", "unique_id": "macro.dbt.get_replace_materialized_view_sql", "macro_sql": "{% macro get_replace_materialized_view_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_materialized_view_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6713767, "supported_languages": null}, "macro.dbt.default__get_replace_materialized_view_sql": {"name": "default__get_replace_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/replace.sql", "original_file_path": "macros/relations/materialized_view/replace.sql", "unique_id": "macro.dbt.default__get_replace_materialized_view_sql", "macro_sql": "{% macro default__get_replace_materialized_view_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_materialized_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6718388, "supported_languages": null}, "macro.dbt.get_rename_materialized_view_sql": {"name": "get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt.get_rename_materialized_view_sql", "macro_sql": "{% macro get_rename_materialized_view_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_materialized_view_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_rename_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6726034, "supported_languages": null}, "macro.dbt.default__get_rename_materialized_view_sql": {"name": "default__get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt.default__get_rename_materialized_view_sql", "macro_sql": "{% macro default__get_rename_materialized_view_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_materialized_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6730728, "supported_languages": null}, "macro.dbt.get_fixture_sql": {"name": "get_fixture_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.get_fixture_sql", "macro_sql": "{% macro get_fixture_sql(rows, column_name_to_data_types) %}\n-- Fixture for {{ model.name }}\n{% set default_row = {} %}\n\n{%- if not column_name_to_data_types -%}\n{#-- Use defer_relation IFF it is available in the manifest and 'this' is missing from the database --#}\n{%- set this_or_defer_relation = defer_relation if (defer_relation and not load_relation(this)) else this -%}\n{%- set columns_in_relation = adapter.get_columns_in_relation(this_or_defer_relation) -%}\n\n{%- set column_name_to_data_types = {} -%}\n{%- set column_name_to_quoted = {} -%}\n{%- for column in columns_in_relation -%}\n\n{#-- This needs to be a case-insensitive comparison --#}\n{%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}\n{%- do column_name_to_quoted.update({column.name|lower: column.quoted}) -%}\n{%- endfor -%}\n{%- endif -%}\n\n{%- if not column_name_to_data_types -%}\n {{ exceptions.raise_compiler_error(\"Not able to get columns for unit test '\" ~ model.name ~ \"' from relation \" ~ this ~ \" because the relation doesn't exist\") }}\n{%- endif -%}\n\n{%- for column_name, column_type in column_name_to_data_types.items() -%}\n {%- do default_row.update({column_name: (safe_cast(\"null\", column_type) | trim )}) -%}\n{%- endfor -%}\n\n{{ validate_fixture_rows(rows, row_number) }}\n\n{%- for row in rows -%}\n{%- set formatted_row = format_row(row, column_name_to_data_types) -%}\n{%- set default_row_copy = default_row.copy() -%}\n{%- do default_row_copy.update(formatted_row) -%}\nselect\n{%- for column_name, column_value in default_row_copy.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%}, {%- endif %}\n{%- endfor %}\n{%- if not loop.last %}\nunion all\n{% endif %}\n{%- endfor -%}\n\n{%- if (rows | length) == 0 -%}\n select\n {%- for column_name, column_value in default_row.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%},{%- endif %}\n {%- endfor %}\n limit 0\n{%- endif -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_relation", "macro.dbt.safe_cast", "macro.dbt.validate_fixture_rows", "macro.dbt.format_row"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6819637, "supported_languages": null}, "macro.dbt.get_expected_sql": {"name": "get_expected_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.get_expected_sql", "macro_sql": "{% macro get_expected_sql(rows, column_name_to_data_types, column_name_to_quoted) %}\n\n{%- if (rows | length) == 0 -%}\n select * from dbt_internal_unit_test_actual\n limit 0\n{%- else -%}\n{%- for row in rows -%}\n{%- set formatted_row = format_row(row, column_name_to_data_types) -%}\nselect\n{%- for column_name, column_value in formatted_row.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%}, {%- endif %}\n{%- endfor %}\n{%- if not loop.last %}\nunion all\n{% endif %}\n{%- endfor -%}\n{%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.format_row"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6838772, "supported_languages": null}, "macro.dbt.format_row": {"name": "format_row", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.format_row", "macro_sql": "\n\n{%- macro format_row(row, column_name_to_data_types) -%}\n {#-- generate case-insensitive formatted row --#}\n {% set formatted_row = {} %}\n {%- for column_name, column_value in row.items() -%}\n {% set column_name = column_name|lower %}\n\n {%- if column_name not in column_name_to_data_types %}\n {#-- if user-provided row contains column name that relation does not contain, raise an error --#}\n {% set fixture_name = \"expected output\" if model.resource_type == 'unit_test' else (\"'\" ~ model.name ~ \"'\") %}\n {{ exceptions.raise_compiler_error(\n \"Invalid column name: '\" ~ column_name ~ \"' in unit test fixture for \" ~ fixture_name ~ \".\"\n \"\\nAccepted columns for \" ~ fixture_name ~ \" are: \" ~ (column_name_to_data_types.keys()|list)\n ) }}\n {%- endif -%}\n\n {%- set column_type = column_name_to_data_types[column_name] %}\n\n {#-- sanitize column_value: wrap yaml strings in quotes, apply cast --#}\n {%- set column_value_clean = column_value -%}\n {%- if column_value is string -%}\n {%- set column_value_clean = dbt.string_literal(dbt.escape_single_quotes(column_value)) -%}\n {%- elif column_value is none -%}\n {%- set column_value_clean = 'null' -%}\n {%- endif -%}\n\n {%- set row_update = {column_name: safe_cast(column_value_clean, column_type) } -%}\n {%- do formatted_row.update(row_update) -%}\n {%- endfor -%}\n {{ return(formatted_row) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.string_literal", "macro.dbt.escape_single_quotes", "macro.dbt.safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6874669, "supported_languages": null}, "macro.dbt.validate_fixture_rows": {"name": "validate_fixture_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.validate_fixture_rows", "macro_sql": "{%- macro validate_fixture_rows(rows, row_number) -%}\n {{ return(adapter.dispatch('validate_fixture_rows', 'dbt')(rows, row_number)) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__validate_fixture_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.688124, "supported_languages": null}, "macro.dbt.default__validate_fixture_rows": {"name": "default__validate_fixture_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.default__validate_fixture_rows", "macro_sql": "{%- macro default__validate_fixture_rows(rows, row_number) -%}\n {# This is an abstract method for adapter overrides as needed #}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6884177, "supported_languages": null}, "macro.dbt.test_unique": {"name": "test_unique", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_unique", "macro_sql": "{% test unique(model, column_name) %}\n {% set macro = adapter.dispatch('test_unique', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_unique"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.68983, "supported_languages": null}, "macro.dbt.test_not_null": {"name": "test_not_null", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_not_null", "macro_sql": "{% test not_null(model, column_name) %}\n {% set macro = adapter.dispatch('test_not_null', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6905863, "supported_languages": null}, "macro.dbt.test_accepted_values": {"name": "test_accepted_values", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_accepted_values", "macro_sql": "{% test accepted_values(model, column_name, values, quote=True) %}\n {% set macro = adapter.dispatch('test_accepted_values', 'dbt') %}\n {{ macro(model, column_name, values, quote) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6915286, "supported_languages": null}, "macro.dbt.test_relationships": {"name": "test_relationships", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_relationships", "macro_sql": "{% test relationships(model, column_name, to, field) %}\n {% set macro = adapter.dispatch('test_relationships', 'dbt') %}\n {{ macro(model, column_name, to, field) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_relationships"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6924374, "supported_languages": null}, "macro.dbt_utils._is_relation": {"name": "_is_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/_is_relation.sql", "original_file_path": "macros/jinja_helpers/_is_relation.sql", "unique_id": "macro.dbt_utils._is_relation", "macro_sql": "{% macro _is_relation(obj, macro) %}\n {%- if not (obj is mapping and obj.get('metadata', {}).get('type', '').endswith('Relation')) -%}\n {%- do exceptions.raise_compiler_error(\"Macro \" ~ macro ~ \" expected a Relation but received the value: \" ~ obj) -%}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6938431, "supported_languages": null}, "macro.dbt_utils._is_ephemeral": {"name": "_is_ephemeral", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/_is_ephemeral.sql", "original_file_path": "macros/jinja_helpers/_is_ephemeral.sql", "unique_id": "macro.dbt_utils._is_ephemeral", "macro_sql": "{% macro _is_ephemeral(obj, macro) %}\n {%- if obj.is_cte -%}\n {% set ephemeral_prefix = api.Relation.add_ephemeral_prefix('') %}\n {% if obj.name.startswith(ephemeral_prefix) %}\n {% set model_name = obj.name[(ephemeral_prefix|length):] %}\n {% else %}\n {% set model_name = obj.name %}\n {%- endif -%}\n {% set error_message %}\nThe `{{ macro }}` macro cannot be used with ephemeral models, as it relies on the information schema.\n\n`{{ model_name }}` is an ephemeral model. Consider making it a view or table instead.\n {% endset %}\n {%- do exceptions.raise_compiler_error(error_message) -%}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.696081, "supported_languages": null}, "macro.dbt_utils.log_info": {"name": "log_info", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "unique_id": "macro.dbt_utils.log_info", "macro_sql": "{% macro log_info(message) %}\n {{ return(adapter.dispatch('log_info', 'dbt_utils')(message)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__log_info"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6969252, "supported_languages": null}, "macro.dbt_utils.default__log_info": {"name": "default__log_info", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "unique_id": "macro.dbt_utils.default__log_info", "macro_sql": "{% macro default__log_info(message) %}\n {{ log(dbt_utils.pretty_log_format(message), info=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.697442, "supported_languages": null}, "macro.dbt_utils.slugify": {"name": "slugify", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/slugify.sql", "original_file_path": "macros/jinja_helpers/slugify.sql", "unique_id": "macro.dbt_utils.slugify", "macro_sql": "{% macro slugify(string) %}\n\n{% if not string %}\n{{ return('') }}\n{% endif %}\n\n{#- Lower case the string -#}\n{% set string = string | lower %}\n{#- Replace spaces and dashes with underscores -#}\n{% set string = modules.re.sub('[ -]+', '_', string) %}\n{#- Only take letters, numbers, and underscores -#}\n{% set string = modules.re.sub('[^a-z0-9_]+', '', string) %}\n{#- Prepends \"_\" if string begins with a number -#}\n{% set string = modules.re.sub('^[0-9]', '_' + string[0], string) %}\n\n{{ return(string) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.6998904, "supported_languages": null}, "macro.dbt_utils.pretty_log_format": {"name": "pretty_log_format", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "unique_id": "macro.dbt_utils.pretty_log_format", "macro_sql": "{% macro pretty_log_format(message) %}\n {{ return(adapter.dispatch('pretty_log_format', 'dbt_utils')(message)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7006593, "supported_languages": null}, "macro.dbt_utils.default__pretty_log_format": {"name": "default__pretty_log_format", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "unique_id": "macro.dbt_utils.default__pretty_log_format", "macro_sql": "{% macro default__pretty_log_format(message) %}\n {{ return( dbt_utils.pretty_time() ~ ' + ' ~ message) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7011642, "supported_languages": null}, "macro.dbt_utils.pretty_time": {"name": "pretty_time", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "unique_id": "macro.dbt_utils.pretty_time", "macro_sql": "{% macro pretty_time(format='%H:%M:%S') %}\n {{ return(adapter.dispatch('pretty_time', 'dbt_utils')(format)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.701977, "supported_languages": null}, "macro.dbt_utils.default__pretty_time": {"name": "default__pretty_time", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "unique_id": "macro.dbt_utils.default__pretty_time", "macro_sql": "{% macro default__pretty_time(format='%H:%M:%S') %}\n {{ return(modules.datetime.datetime.now().strftime(format)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7025745, "supported_languages": null}, "macro.dbt_utils.group_by": {"name": "group_by", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "unique_id": "macro.dbt_utils.group_by", "macro_sql": "{%- macro group_by(n) -%}\n {{ return(adapter.dispatch('group_by', 'dbt_utils')(n)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__group_by"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7033677, "supported_languages": null}, "macro.dbt_utils.default__group_by": {"name": "default__group_by", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "unique_id": "macro.dbt_utils.default__group_by", "macro_sql": "\n\n{%- macro default__group_by(n) -%}\n\n group by {% for i in range(1, n + 1) -%}\n {{ i }}{{ ',' if not loop.last }} \n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7041323, "supported_languages": null}, "macro.dbt_utils.get_table_types_sql": {"name": "get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.get_table_types_sql", "macro_sql": "{%- macro get_table_types_sql() -%}\n {{ return(adapter.dispatch('get_table_types_sql', 'dbt_utils')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_utils.default__get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7050936, "supported_languages": null}, "macro.dbt_utils.default__get_table_types_sql": {"name": "default__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.default__get_table_types_sql", "macro_sql": "{% macro default__get_table_types_sql() %}\n case table_type\n when 'BASE TABLE' then 'table'\n when 'EXTERNAL TABLE' then 'external'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7055106, "supported_languages": null}, "macro.dbt_utils.postgres__get_table_types_sql": {"name": "postgres__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.postgres__get_table_types_sql", "macro_sql": "{% macro postgres__get_table_types_sql() %}\n case table_type\n when 'BASE TABLE' then 'table'\n when 'FOREIGN' then 'external'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7059486, "supported_languages": null}, "macro.dbt_utils.databricks__get_table_types_sql": {"name": "databricks__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.databricks__get_table_types_sql", "macro_sql": "{% macro databricks__get_table_types_sql() %}\n case table_type\n when 'MANAGED' then 'table'\n when 'BASE TABLE' then 'table'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7063951, "supported_languages": null}, "macro.dbt_utils.generate_surrogate_key": {"name": "generate_surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "unique_id": "macro.dbt_utils.generate_surrogate_key", "macro_sql": "{%- macro generate_surrogate_key(field_list) -%}\n {{ return(adapter.dispatch('generate_surrogate_key', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__generate_surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.707594, "supported_languages": null}, "macro.dbt_utils.default__generate_surrogate_key": {"name": "default__generate_surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "unique_id": "macro.dbt_utils.default__generate_surrogate_key", "macro_sql": "\n\n{%- macro default__generate_surrogate_key(field_list) -%}\n\n{%- if var('surrogate_key_treat_nulls_as_empty_strings', False) -%}\n {%- set default_null_value = \"\" -%}\n{%- else -%}\n {%- set default_null_value = '_dbt_utils_surrogate_key_null_' -%}\n{%- endif -%}\n\n{%- set fields = [] -%}\n\n{%- for field in field_list -%}\n\n {%- do fields.append(\n \"coalesce(cast(\" ~ field ~ \" as \" ~ dbt.type_string() ~ \"), '\" ~ default_null_value ~\"')\"\n ) -%}\n\n {%- if not loop.last %}\n {%- do fields.append(\"'-'\") -%}\n {%- endif -%}\n\n{%- endfor -%}\n\n{{ dbt.hash(dbt.concat(fields)) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.type_string", "macro.dbt.hash", "macro.dbt.concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7099414, "supported_languages": null}, "macro.dbt_utils.get_column_values": {"name": "get_column_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "unique_id": "macro.dbt_utils.get_column_values", "macro_sql": "{% macro get_column_values(table, column, order_by='count(*) desc', max_records=none, default=none, where=none) -%}\n {{ return(adapter.dispatch('get_column_values', 'dbt_utils')(table, column, order_by, max_records, default, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_column_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.712234, "supported_languages": null}, "macro.dbt_utils.default__get_column_values": {"name": "default__get_column_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "unique_id": "macro.dbt_utils.default__get_column_values", "macro_sql": "{% macro default__get_column_values(table, column, order_by='count(*) desc', max_records=none, default=none, where=none) -%}\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n {%- if not execute -%}\n {% set default = [] if not default %}\n {{ return(default) }}\n {% endif %}\n\n {%- do dbt_utils._is_ephemeral(table, 'get_column_values') -%}\n\n {# Not all relations are tables. Renaming for internal clarity without breaking functionality for anyone using named arguments #}\n {# TODO: Change the method signature in a future 0.x.0 release #}\n {%- set target_relation = table -%}\n\n {# adapter.load_relation is a convenience wrapper to avoid building a Relation when we already have one #}\n {% set relation_exists = (load_relation(target_relation)) is not none %}\n\n {%- call statement('get_column_values', fetch_result=true) %}\n\n {%- if not relation_exists and default is none -%}\n\n {{ exceptions.raise_compiler_error(\"In get_column_values(): relation \" ~ target_relation ~ \" does not exist and no default value was provided.\") }}\n\n {%- elif not relation_exists and default is not none -%}\n\n {{ log(\"Relation \" ~ target_relation ~ \" does not exist. Returning the default value: \" ~ default) }}\n\n {{ return(default) }}\n\n {%- else -%}\n\n\n select\n {{ column }} as value\n\n from {{ target_relation }}\n\n {% if where is not none %}\n where {{ where }}\n {% endif %}\n\n group by {{ column }}\n order by {{ order_by }}\n\n {% if max_records is not none %}\n limit {{ max_records }}\n {% endif %}\n\n {% endif %}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_column_values') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values) }}\n {%- else -%}\n {{ return(default) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_ephemeral", "macro.dbt.load_relation", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7172832, "supported_languages": null}, "macro.dbt_utils.safe_add": {"name": "safe_add", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "unique_id": "macro.dbt_utils.safe_add", "macro_sql": "{%- macro safe_add(field_list) -%}\n {{ return(adapter.dispatch('safe_add', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7184904, "supported_languages": null}, "macro.dbt_utils.default__safe_add": {"name": "default__safe_add", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "unique_id": "macro.dbt_utils.default__safe_add", "macro_sql": "\n\n{%- macro default__safe_add(field_list) -%}\n\n{%- if field_list is not iterable or field_list is string or field_list is mapping -%}\n\n{%- set error_message = '\nWarning: the `safe_add` macro now takes a single list argument instead of \\\nstring arguments. The {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.warn(error_message) -%}\n\n{%- endif -%}\n\n{% set fields = [] %}\n\n{%- for field in field_list -%}\n\n {% do fields.append(\"coalesce(\" ~ field ~ \", 0)\") %}\n\n{%- endfor -%}\n\n{{ fields|join(' +\\n ') }}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7202232, "supported_languages": null}, "macro.dbt_utils.deduplicate": {"name": "deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.deduplicate", "macro_sql": "{%- macro deduplicate(relation, partition_by, order_by) -%}\n {{ return(adapter.dispatch('deduplicate', 'dbt_utils')(relation, partition_by, order_by)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.722228, "supported_languages": null}, "macro.dbt_utils.default__deduplicate": {"name": "default__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.default__deduplicate", "macro_sql": "\n\n{%- macro default__deduplicate(relation, partition_by, order_by) -%}\n\n with row_numbered as (\n select\n _inner.*,\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) as rn\n from {{ relation }} as _inner\n )\n\n select\n distinct data.*\n from {{ relation }} as data\n {#\n -- Not all DBs will support natural joins but the ones that do include:\n -- Oracle, MySQL, SQLite, Redshift, Teradata, Materialize, Databricks\n -- Apache Spark, SingleStore, Vertica\n -- Those that do not appear to support natural joins include:\n -- SQLServer, Trino, Presto, Rockset, Athena\n #}\n natural join row_numbered\n where row_numbered.rn = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7230012, "supported_languages": null}, "macro.dbt_utils.redshift__deduplicate": {"name": "redshift__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.redshift__deduplicate", "macro_sql": "{% macro redshift__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }} as tt\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7235312, "supported_languages": null}, "macro.dbt_utils.postgres__deduplicate": {"name": "postgres__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.postgres__deduplicate", "macro_sql": "\n{%- macro postgres__deduplicate(relation, partition_by, order_by) -%}\n\n select\n distinct on ({{ partition_by }}) *\n from {{ relation }}\n order by {{ partition_by }}{{ ',' ~ order_by }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7241416, "supported_languages": null}, "macro.dbt_utils.snowflake__deduplicate": {"name": "snowflake__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.snowflake__deduplicate", "macro_sql": "\n{%- macro snowflake__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }}\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.72466, "supported_languages": null}, "macro.dbt_utils.databricks__deduplicate": {"name": "databricks__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.databricks__deduplicate", "macro_sql": "\n{%- macro databricks__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }}\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7251885, "supported_languages": null}, "macro.dbt_utils.bigquery__deduplicate": {"name": "bigquery__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.bigquery__deduplicate", "macro_sql": "\n{%- macro bigquery__deduplicate(relation, partition_by, order_by) -%}\n\n select unique.*\n from (\n select\n array_agg (\n original\n order by {{ order_by }}\n limit 1\n )[offset(0)] unique\n from {{ relation }} original\n group by {{ partition_by }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7257333, "supported_languages": null}, "macro.dbt_utils.get_tables_by_prefix_sql": {"name": "get_tables_by_prefix_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "unique_id": "macro.dbt_utils.get_tables_by_prefix_sql", "macro_sql": "{% macro get_tables_by_prefix_sql(schema, prefix, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_tables_by_prefix_sql', 'dbt_utils')(schema, prefix, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7269397, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_prefix_sql": {"name": "default__get_tables_by_prefix_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "unique_id": "macro.dbt_utils.default__get_tables_by_prefix_sql", "macro_sql": "{% macro default__get_tables_by_prefix_sql(schema, prefix, exclude='', database=target.database) %}\n\n {{ dbt_utils.get_tables_by_pattern_sql(\n schema_pattern = schema,\n table_pattern = prefix ~ '%',\n exclude = exclude,\n database = database\n ) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7279792, "supported_languages": null}, "macro.dbt_utils.get_single_value": {"name": "get_single_value", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "unique_id": "macro.dbt_utils.get_single_value", "macro_sql": "{% macro get_single_value(query, default=none) %}\n {{ return(adapter.dispatch('get_single_value', 'dbt_utils')(query, default)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_single_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7293243, "supported_languages": null}, "macro.dbt_utils.default__get_single_value": {"name": "default__get_single_value", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "unique_id": "macro.dbt_utils.default__get_single_value", "macro_sql": "{% macro default__get_single_value(query, default) %}\n\n{# This macro returns the (0, 0) record in a query, i.e. the first row of the first column #}\n\n {%- call statement('get_query_result', fetch_result=True, auto_begin=false) -%}\n\n {{ query }}\n\n {%- endcall -%}\n\n {%- if execute -%}\n\n {% set r = load_result('get_query_result').table.columns[0].values() %}\n {% if r | length == 0 %}\n {% do print('Query `' ~ query ~ '` returned no rows. Using the default value: ' ~ default) %}\n {% set sql_result = default %}\n {% else %}\n {% set sql_result = r[0] %}\n {% endif %}\n \n {%- else -%}\n \n {% set sql_result = default %}\n \n {%- endif -%}\n\n {% do return(sql_result) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7318814, "supported_languages": null}, "macro.dbt_utils.width_bucket": {"name": "width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.width_bucket", "macro_sql": "{% macro width_bucket(expr, min_value, max_value, num_buckets) %}\n {{ return(adapter.dispatch('width_bucket', 'dbt_utils') (expr, min_value, max_value, num_buckets)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__width_bucket"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7333324, "supported_languages": null}, "macro.dbt_utils.default__width_bucket": {"name": "default__width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.default__width_bucket", "macro_sql": "{% macro default__width_bucket(expr, min_value, max_value, num_buckets) -%}\n\n {% set bin_size -%}\n (( {{ max_value }} - {{ min_value }} ) / {{ num_buckets }} )\n {%- endset %}\n (\n -- to break ties when the amount is eaxtly at the bucket egde\n case\n when\n mod(\n {{ dbt.safe_cast(expr, dbt.type_numeric() ) }},\n {{ dbt.safe_cast(bin_size, dbt.type_numeric() ) }}\n ) = 0\n then 1\n else 0\n end\n ) +\n -- Anything over max_value goes the N+1 bucket\n least(\n ceil(\n ({{ expr }} - {{ min_value }})/{{ bin_size }}\n ),\n {{ num_buckets }} + 1\n )\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.safe_cast", "macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.734862, "supported_languages": null}, "macro.dbt_utils.snowflake__width_bucket": {"name": "snowflake__width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.snowflake__width_bucket", "macro_sql": "{% macro snowflake__width_bucket(expr, min_value, max_value, num_buckets) %}\n width_bucket({{ expr }}, {{ min_value }}, {{ max_value }}, {{ num_buckets }} )\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.735448, "supported_languages": null}, "macro.dbt_utils.star": {"name": "star", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "unique_id": "macro.dbt_utils.star", "macro_sql": "{% macro star(from, relation_alias=False, except=[], prefix='', suffix='', quote_identifiers=True) -%}\r\n {{ return(adapter.dispatch('star', 'dbt_utils')(from, relation_alias, except, prefix, suffix, quote_identifiers)) }}\r\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__star"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7377064, "supported_languages": null}, "macro.dbt_utils.default__star": {"name": "default__star", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "unique_id": "macro.dbt_utils.default__star", "macro_sql": "{% macro default__star(from, relation_alias=False, except=[], prefix='', suffix='', quote_identifiers=True) -%}\r\n {%- do dbt_utils._is_relation(from, 'star') -%}\r\n {%- do dbt_utils._is_ephemeral(from, 'star') -%}\r\n\r\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\r\n {%- if not execute -%}\r\n {% do return('*') %}\r\n {%- endif -%}\r\n\r\n {% set cols = dbt_utils.get_filtered_columns_in_relation(from, except) %}\r\n\r\n {%- if cols|length <= 0 -%}\r\n {% if flags.WHICH == 'compile' %}\r\n {% set response %}\r\n*\r\n/* No columns were returned. Maybe the relation doesn't exist yet \r\nor all columns were excluded. This star is only output during \r\ndbt compile, and exists to keep SQLFluff happy. */\r\n {% endset %}\r\n {% do return(response) %}\r\n {% else %}\r\n {% do return(\"/* no columns returned from star() macro */\") %}\r\n {% endif %}\r\n {%- else -%}\r\n {%- for col in cols %}\r\n {%- if relation_alias %}{{ relation_alias }}.{% else %}{%- endif -%}\r\n {%- if quote_identifiers -%}\r\n {{ adapter.quote(col)|trim }} {%- if prefix!='' or suffix!='' %} as {{ adapter.quote(prefix ~ col ~ suffix)|trim }} {%- endif -%}\r\n {%- else -%}\r\n {{ col|trim }} {%- if prefix!='' or suffix!='' %} as {{ (prefix ~ col ~ suffix)|trim }} {%- endif -%}\r\n {% endif %}\r\n {%- if not loop.last %},{{ '\\n ' }}{%- endif -%}\r\n {%- endfor -%}\r\n {% endif %}\r\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.get_filtered_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.742509, "supported_languages": null}, "macro.dbt_utils.get_intervals_between": {"name": "get_intervals_between", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.get_intervals_between", "macro_sql": "{% macro get_intervals_between(start_date, end_date, datepart) -%}\n {{ return(adapter.dispatch('get_intervals_between', 'dbt_utils')(start_date, end_date, datepart)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7441142, "supported_languages": null}, "macro.dbt_utils.default__get_intervals_between": {"name": "default__get_intervals_between", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.default__get_intervals_between", "macro_sql": "{% macro default__get_intervals_between(start_date, end_date, datepart) -%}\n {%- call statement('get_intervals_between', fetch_result=True) %}\n\n select {{ dbt.datediff(start_date, end_date, datepart) }}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_intervals_between') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values[0]) }}\n {%- else -%}\n {{ return(1) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7459364, "supported_languages": null}, "macro.dbt_utils.date_spine": {"name": "date_spine", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.date_spine", "macro_sql": "{% macro date_spine(datepart, start_date, end_date) %}\n {{ return(adapter.dispatch('date_spine', 'dbt_utils')(datepart, start_date, end_date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7467058, "supported_languages": null}, "macro.dbt_utils.default__date_spine": {"name": "default__date_spine", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.default__date_spine", "macro_sql": "{% macro default__date_spine(datepart, start_date, end_date) %}\n\n\n{# call as follows:\n\ndate_spine(\n \"day\",\n \"to_date('01/01/2016', 'mm/dd/yyyy')\",\n \"dbt.dateadd(week, 1, current_date)\"\n) #}\n\n\nwith rawdata as (\n\n {{dbt_utils.generate_series(\n dbt_utils.get_intervals_between(start_date, end_date, datepart)\n )}}\n\n),\n\nall_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n \"row_number() over (order by 1) - 1\",\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n)\n\nselect * from filtered\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.generate_series", "macro.dbt_utils.get_intervals_between", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.747867, "supported_languages": null}, "macro.dbt_utils.safe_divide": {"name": "safe_divide", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "unique_id": "macro.dbt_utils.safe_divide", "macro_sql": "{% macro safe_divide(numerator, denominator) -%}\n {{ return(adapter.dispatch('safe_divide', 'dbt_utils')(numerator, denominator)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_divide"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7488537, "supported_languages": null}, "macro.dbt_utils.default__safe_divide": {"name": "default__safe_divide", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "unique_id": "macro.dbt_utils.default__safe_divide", "macro_sql": "{% macro default__safe_divide(numerator, denominator) %}\n ( {{ numerator }} ) / nullif( ( {{ denominator }} ), 0)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7492692, "supported_languages": null}, "macro.dbt_utils.get_query_results_as_dict": {"name": "get_query_results_as_dict", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "unique_id": "macro.dbt_utils.get_query_results_as_dict", "macro_sql": "{% macro get_query_results_as_dict(query) %}\n {{ return(adapter.dispatch('get_query_results_as_dict', 'dbt_utils')(query)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_query_results_as_dict"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7502978, "supported_languages": null}, "macro.dbt_utils.default__get_query_results_as_dict": {"name": "default__get_query_results_as_dict", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "unique_id": "macro.dbt_utils.default__get_query_results_as_dict", "macro_sql": "{% macro default__get_query_results_as_dict(query) %}\n\n{# This macro returns a dictionary of the form {column_name: (tuple_of_results)} #}\n\n {%- call statement('get_query_results', fetch_result=True,auto_begin=false) -%}\n\n {{ query }}\n\n {%- endcall -%}\n\n {% set sql_results={} %}\n\n {%- if execute -%}\n {% set sql_results_table = load_result('get_query_results').table.columns %}\n {% for column_name, column in sql_results_table.items() %}\n {% do sql_results.update({column_name: column.values()}) %}\n {% endfor %}\n {%- endif -%}\n\n {{ return(sql_results) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7521353, "supported_languages": null}, "macro.dbt_utils.get_tables_by_pattern_sql": {"name": "get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.get_tables_by_pattern_sql", "macro_sql": "{% macro get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_tables_by_pattern_sql', 'dbt_utils')\n (schema_pattern, table_pattern, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7548246, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_pattern_sql": {"name": "default__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.default__get_tables_by_pattern_sql", "macro_sql": "{% macro default__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n select distinct\n table_schema as {{ adapter.quote('table_schema') }},\n table_name as {{ adapter.quote('table_name') }},\n {{ dbt_utils.get_table_types_sql() }}\n from {{ database }}.information_schema.tables\n where table_schema ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7559562, "supported_languages": null}, "macro.dbt_utils.redshift__get_tables_by_pattern_sql": {"name": "redshift__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.redshift__get_tables_by_pattern_sql", "macro_sql": "{% macro redshift__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {% set sql %}\n select distinct\n table_schema as {{ adapter.quote('table_schema') }},\n table_name as {{ adapter.quote('table_name') }},\n {{ dbt_utils.get_table_types_sql() }}\n from \"{{ database }}\".\"information_schema\".\"tables\"\n where table_schema ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n union all\n select distinct\n schemaname as {{ adapter.quote('table_schema') }},\n tablename as {{ adapter.quote('table_name') }},\n 'external' as {{ adapter.quote('table_type') }}\n from svv_external_tables\n where redshift_database_name = '{{ database }}'\n and schemaname ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n {% endset %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.758053, "supported_languages": null}, "macro.dbt_utils.bigquery__get_tables_by_pattern_sql": {"name": "bigquery__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.bigquery__get_tables_by_pattern_sql", "macro_sql": "{% macro bigquery__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {% if '%' in schema_pattern %}\n {% set schemata=dbt_utils._bigquery__get_matching_schemata(schema_pattern, database) %}\n {% else %}\n {% set schemata=[schema_pattern] %}\n {% endif %}\n\n {% set sql %}\n {% for schema in schemata %}\n select distinct\n table_schema,\n table_name,\n {{ dbt_utils.get_table_types_sql() }}\n\n from {{ adapter.quote(database) }}.{{ schema }}.INFORMATION_SCHEMA.TABLES\n where lower(table_name) like lower ('{{ table_pattern }}')\n and lower(table_name) not like lower ('{{ exclude }}')\n\n {% if not loop.last %} union all {% endif %}\n\n {% endfor %}\n {% endset %}\n\n {{ return(sql) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._bigquery__get_matching_schemata", "macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.760279, "supported_languages": null}, "macro.dbt_utils._bigquery__get_matching_schemata": {"name": "_bigquery__get_matching_schemata", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils._bigquery__get_matching_schemata", "macro_sql": "{% macro _bigquery__get_matching_schemata(schema_pattern, database) %}\n {% if execute %}\n\n {% set sql %}\n select schema_name from {{ adapter.quote(database) }}.INFORMATION_SCHEMA.SCHEMATA\n where lower(schema_name) like lower('{{ schema_pattern }}')\n {% endset %}\n\n {% set results=run_query(sql) %}\n\n {% set schemata=results.columns['schema_name'].values() %}\n\n {{ return(schemata) }}\n\n {% else %}\n\n {{ return([]) }}\n\n {% endif %}\n\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7618108, "supported_languages": null}, "macro.dbt_utils.surrogate_key": {"name": "surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "unique_id": "macro.dbt_utils.surrogate_key", "macro_sql": "{%- macro surrogate_key(field_list) -%}\n {% set frustrating_jinja_feature = varargs %}\n {{ return(adapter.dispatch('surrogate_key', 'dbt_utils')(field_list, *varargs)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7628546, "supported_languages": null}, "macro.dbt_utils.default__surrogate_key": {"name": "default__surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "unique_id": "macro.dbt_utils.default__surrogate_key", "macro_sql": "\n\n{%- macro default__surrogate_key(field_list) -%}\n\n{%- set error_message = '\nWarning: `dbt_utils.surrogate_key` has been replaced by \\\n`dbt_utils.generate_surrogate_key`. The new macro treats null values \\\ndifferently to empty strings. To restore the behaviour of the original \\\nmacro, add a global variable in dbt_project.yml called \\\n`surrogate_key_treat_nulls_as_empty_strings` to your \\\ndbt_project.yml file with a value of True. \\\nThe {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.raise_compiler_error(error_message) -%}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.763631, "supported_languages": null}, "macro.dbt_utils.union_relations": {"name": "union_relations", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "unique_id": "macro.dbt_utils.union_relations", "macro_sql": "{%- macro union_relations(relations, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n {{ return(adapter.dispatch('union_relations', 'dbt_utils')(relations, column_override, include, exclude, source_column_name, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7670481, "supported_languages": null}, "macro.dbt_utils.default__union_relations": {"name": "default__union_relations", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "unique_id": "macro.dbt_utils.default__union_relations", "macro_sql": "\n\n{%- macro default__union_relations(relations, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n\n {%- if exclude and include -%}\n {{ exceptions.raise_compiler_error(\"Both an exclude and include list were provided to the `union` macro. Only one is allowed\") }}\n {%- endif -%}\n\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. -#}\n {%- if not execute %}\n {{ return('') }}\n {% endif -%}\n\n {%- set column_override = column_override if column_override is not none else {} -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n {%- set all_excludes = [] -%}\n {%- set all_includes = [] -%}\n\n {%- if exclude -%}\n {%- for exc in exclude -%}\n {%- do all_excludes.append(exc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if include -%}\n {%- for inc in include -%}\n {%- do all_includes.append(inc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(relation, 'union_relations') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'union_relations') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) -%}\n {%- for col in cols -%}\n\n {#- If an exclude list was provided and the column is in the list, do nothing -#}\n {%- if exclude and col.column | lower in all_excludes -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column | lower not in all_includes -%}\n\n {#- Otherwise add the column to the column superset -#}\n {%- else -%}\n\n {#- update the list of columns in this relation -#}\n {%- do relation_columns[relation].append(col.column) -%}\n\n {%- if col.column in column_superset -%}\n\n {%- set stored = column_superset[col.column] -%}\n {%- if col.is_string() and stored.is_string() and col.string_size() > stored.string_size() -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif %}\n\n {%- else -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif -%}\n\n {%- endif -%}\n\n {%- endfor -%}\n {%- endfor -%}\n\n {%- set ordered_column_names = column_superset.keys() -%}\n {%- set dbt_command = flags.WHICH -%}\n\n\n {% if dbt_command in ['run', 'build'] %}\n {% if (include | length > 0 or exclude | length > 0) and not column_superset.keys() %}\n {%- set relations_string -%}\n {%- for relation in relations -%}\n {{ relation.name }}\n {%- if not loop.last %}, {% endif -%}\n {%- endfor -%}\n {%- endset -%}\n\n {%- set error_message -%}\n There were no columns found to union for relations {{ relations_string }}\n {%- endset -%}\n\n {{ exceptions.raise_compiler_error(error_message) }}\n {%- endif -%}\n {%- endif -%}\n\n {%- for relation in relations %}\n\n (\n select\n\n {%- if source_column_name is not none %}\n cast({{ dbt.string_literal(relation) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\n {%- endif %}\n\n {% for col_name in ordered_column_names -%}\n\n {%- set col = column_superset[col_name] %}\n {%- set col_type = column_override.get(col.column, col.data_type) %}\n {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %}\n cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}\n\n {%- endfor %}\n\n from {{ relation }}\n\n {% if where -%}\n where {{ where }}\n {%- endif %}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.779117, "supported_languages": null}, "macro.dbt_utils.pivot": {"name": "pivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "unique_id": "macro.dbt_utils.pivot", "macro_sql": "{% macro pivot(column,\n values,\n alias=True,\n agg='sum',\n cmp='=',\n prefix='',\n suffix='',\n then_value=1,\n else_value=0,\n quote_identifiers=True,\n distinct=False) %}\n {{ return(adapter.dispatch('pivot', 'dbt_utils')(column, values, alias, agg, cmp, prefix, suffix, then_value, else_value, quote_identifiers, distinct)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7819362, "supported_languages": null}, "macro.dbt_utils.default__pivot": {"name": "default__pivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "unique_id": "macro.dbt_utils.default__pivot", "macro_sql": "{% macro default__pivot(column,\n values,\n alias=True,\n agg='sum',\n cmp='=',\n prefix='',\n suffix='',\n then_value=1,\n else_value=0,\n quote_identifiers=True,\n distinct=False) %}\n {% for value in values %}\n {{ agg }}(\n {% if distinct %} distinct {% endif %}\n case\n when {{ column }} {{ cmp }} '{{ dbt.escape_single_quotes(value) }}'\n then {{ then_value }}\n else {{ else_value }}\n end\n )\n {% if alias %}\n {% if quote_identifiers %}\n as {{ adapter.quote(prefix ~ value ~ suffix) }}\n {% else %}\n as {{ dbt_utils.slugify(prefix ~ value ~ suffix) }}\n {% endif %}\n {% endif %}\n {% if not loop.last %},{% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.escape_single_quotes", "macro.dbt_utils.slugify"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7846048, "supported_languages": null}, "macro.dbt_utils.get_relations_by_pattern": {"name": "get_relations_by_pattern", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "unique_id": "macro.dbt_utils.get_relations_by_pattern", "macro_sql": "{% macro get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_relations_by_pattern', 'dbt_utils')(schema_pattern, table_pattern, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7861443, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_pattern": {"name": "default__get_relations_by_pattern", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "unique_id": "macro.dbt_utils.default__get_relations_by_pattern", "macro_sql": "{% macro default__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n {{ dbt_utils.get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude, database) }}\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=database,\n schema=row.table_schema,\n identifier=row.table_name,\n type=row.table_type\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7888741, "supported_languages": null}, "macro.dbt_utils.nullcheck_table": {"name": "nullcheck_table", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "unique_id": "macro.dbt_utils.nullcheck_table", "macro_sql": "{% macro nullcheck_table(relation) %}\n {{ return(adapter.dispatch('nullcheck_table', 'dbt_utils')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7897768, "supported_languages": null}, "macro.dbt_utils.default__nullcheck_table": {"name": "default__nullcheck_table", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "unique_id": "macro.dbt_utils.default__nullcheck_table", "macro_sql": "{% macro default__nullcheck_table(relation) %}\n\n {%- do dbt_utils._is_relation(relation, 'nullcheck_table') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'nullcheck_table') -%}\n {% set cols = adapter.get_columns_in_relation(relation) %}\n\n select {{ dbt_utils.nullcheck(cols) }}\n from {{relation}}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7908027, "supported_languages": null}, "macro.dbt_utils.get_relations_by_prefix": {"name": "get_relations_by_prefix", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "unique_id": "macro.dbt_utils.get_relations_by_prefix", "macro_sql": "{% macro get_relations_by_prefix(schema, prefix, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_relations_by_prefix', 'dbt_utils')(schema, prefix, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7922626, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_prefix": {"name": "default__get_relations_by_prefix", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "unique_id": "macro.dbt_utils.default__get_relations_by_prefix", "macro_sql": "{% macro default__get_relations_by_prefix(schema, prefix, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n {{ dbt_utils.get_tables_by_prefix_sql(schema, prefix, exclude, database) }}\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=database,\n schema=row.table_schema,\n identifier=row.table_name,\n type=row.table_type\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7948604, "supported_languages": null}, "macro.dbt_utils.degrees_to_radians": {"name": "degrees_to_radians", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.degrees_to_radians", "macro_sql": "{% macro degrees_to_radians(degrees) -%}\n acos(-1) * {{degrees}} / 180\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7965024, "supported_languages": null}, "macro.dbt_utils.haversine_distance": {"name": "haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.haversine_distance", "macro_sql": "{% macro haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n {{ return(adapter.dispatch('haversine_distance', 'dbt_utils')(lat1,lon1,lat2,lon2,unit)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__haversine_distance"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.7974553, "supported_languages": null}, "macro.dbt_utils.default__haversine_distance": {"name": "default__haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.default__haversine_distance", "macro_sql": "{% macro default__haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n{%- if unit == 'mi' %}\n {% set conversion_rate = 1 %}\n{% elif unit == 'km' %}\n {% set conversion_rate = 1.60934 %}\n{% else %}\n {{ exceptions.raise_compiler_error(\"unit input must be one of 'mi' or 'km'. Got \" ~ unit) }}\n{% endif %}\n\n 2 * 3961 * asin(sqrt(power((sin(radians(({{ lat2 }} - {{ lat1 }}) / 2))), 2) +\n cos(radians({{lat1}})) * cos(radians({{lat2}})) *\n power((sin(radians(({{ lon2 }} - {{ lon1 }}) / 2))), 2))) * {{ conversion_rate }}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.799257, "supported_languages": null}, "macro.dbt_utils.bigquery__haversine_distance": {"name": "bigquery__haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.bigquery__haversine_distance", "macro_sql": "{% macro bigquery__haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n{% set radians_lat1 = dbt_utils.degrees_to_radians(lat1) %}\n{% set radians_lat2 = dbt_utils.degrees_to_radians(lat2) %}\n{% set radians_lon1 = dbt_utils.degrees_to_radians(lon1) %}\n{% set radians_lon2 = dbt_utils.degrees_to_radians(lon2) %}\n{%- if unit == 'mi' %}\n {% set conversion_rate = 1 %}\n{% elif unit == 'km' %}\n {% set conversion_rate = 1.60934 %}\n{% else %}\n {{ exceptions.raise_compiler_error(\"unit input must be one of 'mi' or 'km'. Got \" ~ unit) }}\n{% endif %}\n 2 * 3961 * asin(sqrt(power(sin(({{ radians_lat2 }} - {{ radians_lat1 }}) / 2), 2) +\n cos({{ radians_lat1 }}) * cos({{ radians_lat2 }}) *\n power(sin(({{ radians_lon2 }} - {{ radians_lon1 }}) / 2), 2))) * {{ conversion_rate }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.degrees_to_radians"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8017483, "supported_languages": null}, "macro.dbt_utils.unpivot": {"name": "unpivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "unique_id": "macro.dbt_utils.unpivot", "macro_sql": "{% macro unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value', quote_identifiers=False) -%}\n {{ return(adapter.dispatch('unpivot', 'dbt_utils')(relation, cast_to, exclude, remove, field_name, value_name, quote_identifiers)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__unpivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8042135, "supported_languages": null}, "macro.dbt_utils.default__unpivot": {"name": "default__unpivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "unique_id": "macro.dbt_utils.default__unpivot", "macro_sql": "{% macro default__unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value', quote_identifiers=False) -%}\n\n {% if not relation %}\n {{ exceptions.raise_compiler_error(\"Error: argument `relation` is required for `unpivot` macro.\") }}\n {% endif %}\n\n {%- set exclude = exclude if exclude is not none else [] %}\n {%- set remove = remove if remove is not none else [] %}\n\n {%- set include_cols = [] %}\n\n {%- set table_columns = {} %}\n\n {%- do table_columns.update({relation: []}) %}\n\n {%- do dbt_utils._is_relation(relation, 'unpivot') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'unpivot') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) %}\n\n {%- for col in cols -%}\n {%- if col.column.lower() not in remove|map('lower') and col.column.lower() not in exclude|map('lower') -%}\n {% do include_cols.append(col) %}\n {%- endif %}\n {%- endfor %}\n\n\n {%- for col in include_cols -%}\n {%- set current_col_name = adapter.quote(col.column) if quote_identifiers else col.column -%}\n select\n {%- for exclude_col in exclude %}\n {{ adapter.quote(exclude_col) if quote_identifiers else exclude_col }},\n {%- endfor %}\n\n cast('{{ col.column }}' as {{ dbt.type_string() }}) as {{ adapter.quote(field_name) if quote_identifiers else field_name }},\n cast( {% if col.data_type == 'boolean' %}\n {{ dbt.cast_bool_to_text(current_col_name) }}\n {% else %}\n {{ current_col_name }}\n {% endif %}\n as {{ cast_to }}) as {{ adapter.quote(value_name) if quote_identifiers else value_name }}\n\n from {{ relation }}\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n {%- endfor -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.type_string", "macro.dbt.cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8101375, "supported_languages": null}, "macro.dbt_utils.get_filtered_columns_in_relation": {"name": "get_filtered_columns_in_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "unique_id": "macro.dbt_utils.get_filtered_columns_in_relation", "macro_sql": "{% macro get_filtered_columns_in_relation(from, except=[]) -%}\n {{ return(adapter.dispatch('get_filtered_columns_in_relation', 'dbt_utils')(from, except)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_filtered_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8114238, "supported_languages": null}, "macro.dbt_utils.default__get_filtered_columns_in_relation": {"name": "default__get_filtered_columns_in_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "unique_id": "macro.dbt_utils.default__get_filtered_columns_in_relation", "macro_sql": "{% macro default__get_filtered_columns_in_relation(from, except=[]) -%}\n {%- do dbt_utils._is_relation(from, 'get_filtered_columns_in_relation') -%}\n {%- do dbt_utils._is_ephemeral(from, 'get_filtered_columns_in_relation') -%}\n\n {# -- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n {%- if not execute -%}\n {{ return('') }}\n {% endif %}\n\n {%- set include_cols = [] %}\n {%- set cols = adapter.get_columns_in_relation(from) -%}\n {%- set except = except | map(\"lower\") | list %}\n {%- for col in cols -%}\n {%- if col.column|lower not in except -%}\n {% do include_cols.append(col.column) %}\n {%- endif %}\n {%- endfor %}\n\n {{ return(include_cols) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8137736, "supported_languages": null}, "macro.dbt_utils.get_powers_of_two": {"name": "get_powers_of_two", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.get_powers_of_two", "macro_sql": "{% macro get_powers_of_two(upper_bound) %}\n {{ return(adapter.dispatch('get_powers_of_two', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8152614, "supported_languages": null}, "macro.dbt_utils.default__get_powers_of_two": {"name": "default__get_powers_of_two", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.default__get_powers_of_two", "macro_sql": "{% macro default__get_powers_of_two(upper_bound) %}\n\n {% if upper_bound <= 0 %}\n {{ exceptions.raise_compiler_error(\"upper bound must be positive\") }}\n {% endif %}\n\n {% for _ in range(1, 100) %}\n {% if upper_bound <= 2 ** loop.index %}{{ return(loop.index) }}{% endif %}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8166661, "supported_languages": null}, "macro.dbt_utils.generate_series": {"name": "generate_series", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8172536, "supported_languages": null}, "macro.dbt_utils.default__generate_series": {"name": "default__generate_series", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.default__generate_series", "macro_sql": "{% macro default__generate_series(upper_bound) %}\n\n {% set n = dbt_utils.get_powers_of_two(upper_bound) %}\n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n {% for i in range(n) %}\n p{{i}}.generated_number * power(2, {{i}})\n {% if not loop.last %} + {% endif %}\n {% endfor %}\n + 1\n as generated_number\n\n from\n\n {% for i in range(n) %}\n p as p{{i}}\n {% if not loop.last %} cross join {% endif %}\n {% endfor %}\n\n )\n\n select *\n from unioned\n where generated_number <= {{upper_bound}}\n order by generated_number\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.818873, "supported_languages": null}, "macro.dbt_utils.safe_subtract": {"name": "safe_subtract", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_subtract.sql", "original_file_path": "macros/sql/safe_subtract.sql", "unique_id": "macro.dbt_utils.safe_subtract", "macro_sql": "{%- macro safe_subtract(field_list) -%}\n {{ return(adapter.dispatch('safe_subtract', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_subtract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8198924, "supported_languages": null}, "macro.dbt_utils.default__safe_subtract": {"name": "default__safe_subtract", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_subtract.sql", "original_file_path": "macros/sql/safe_subtract.sql", "unique_id": "macro.dbt_utils.default__safe_subtract", "macro_sql": "\n\n{%- macro default__safe_subtract(field_list) -%}\n\n{%- if field_list is not iterable or field_list is string or field_list is mapping -%}\n\n{%- set error_message = '\nWarning: the `safe_subtract` macro takes a single list argument instead of \\\nstring arguments. The {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.raise_compiler_error(error_message) -%}\n\n{%- endif -%}\n\n{% set fields = [] %}\n\n{%- for field in field_list -%}\n\n {% do fields.append(\"coalesce(\" ~ field ~ \", 0)\") %}\n\n{%- endfor -%}\n\n{{ fields|join(' -\\n ') }}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8219411, "supported_languages": null}, "macro.dbt_utils.nullcheck": {"name": "nullcheck", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "unique_id": "macro.dbt_utils.nullcheck", "macro_sql": "{% macro nullcheck(cols) %}\n {{ return(adapter.dispatch('nullcheck', 'dbt_utils')(cols)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8228874, "supported_languages": null}, "macro.dbt_utils.default__nullcheck": {"name": "default__nullcheck", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "unique_id": "macro.dbt_utils.default__nullcheck", "macro_sql": "{% macro default__nullcheck(cols) %}\n{%- for col in cols %}\n\n {% if col.is_string() -%}\n\n nullif({{col.name}},'') as {{col.name}}\n\n {%- else -%}\n\n {{col.name}}\n\n {%- endif -%}\n\n{%- if not loop.last -%} , {%- endif -%}\n\n{%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.823933, "supported_languages": null}, "macro.dbt_utils.test_equal_rowcount": {"name": "test_equal_rowcount", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "unique_id": "macro.dbt_utils.test_equal_rowcount", "macro_sql": "{% test equal_rowcount(model, compare_model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_equal_rowcount', 'dbt_utils')(model, compare_model, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equal_rowcount"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8257258, "supported_languages": null}, "macro.dbt_utils.default__test_equal_rowcount": {"name": "default__test_equal_rowcount", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "unique_id": "macro.dbt_utils.default__test_equal_rowcount", "macro_sql": "{% macro default__test_equal_rowcount(model, compare_model, group_by_columns) %}\n\n{#-- Needs to be set at parse time, before we return '' below --#}\n{{ config(fail_calc = 'sum(coalesce(diff_count, 0))') }}\n\n{#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n{%- if not execute -%}\n {{ return('') }}\n{% endif %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(', ') + ', ' %}\n {% set join_gb_cols %}\n {% for c in group_by_columns %}\n and a.{{c}} = b.{{c}}\n {% endfor %}\n {% endset %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n{#-- We must add a fake join key in case additional grouping variables are not provided --#}\n{#-- Redshift does not allow for dynamically created join conditions (e.g. full join on 1 = 1 --#}\n{#-- The same logic is used in fewer_rows_than. In case of changes, maintain consistent logic --#}\n{% set group_by_columns = ['id_dbtutils_test_equal_rowcount'] + group_by_columns %}\n{% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n\nwith a as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_equal_rowcount,\n count(*) as count_a \n from {{ model }}\n {{groupby_gb_cols}}\n\n\n),\nb as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_equal_rowcount,\n count(*) as count_b \n from {{ compare_model }}\n {{groupby_gb_cols}}\n\n),\nfinal as (\n\n select\n \n {% for c in group_by_columns -%}\n a.{{c}} as {{c}}_a,\n b.{{c}} as {{c}}_b,\n {% endfor %}\n\n count_a,\n count_b,\n abs(count_a - count_b) as diff_count\n\n from a\n full join b\n on\n a.id_dbtutils_test_equal_rowcount = b.id_dbtutils_test_equal_rowcount\n {{join_gb_cols}}\n\n\n)\n\nselect * from final\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.829162, "supported_languages": null}, "macro.dbt_utils.test_equality": {"name": "test_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "unique_id": "macro.dbt_utils.test_equality", "macro_sql": "{% test equality(model, compare_model, compare_columns=None, exclude_columns=None, precision = None) %}\n {{ return(adapter.dispatch('test_equality', 'dbt_utils')(model, compare_model, compare_columns, exclude_columns, precision)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8332589, "supported_languages": null}, "macro.dbt_utils.default__test_equality": {"name": "default__test_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "unique_id": "macro.dbt_utils.default__test_equality", "macro_sql": "{% macro default__test_equality(model, compare_model, compare_columns=None, exclude_columns=None, precision = None) %}\n\n{%- if compare_columns and exclude_columns -%}\n {{ exceptions.raise_compiler_error(\"Both a compare and an ignore list were provided to the `equality` macro. Only one is allowed\") }}\n{%- endif -%}\n\n{% set set_diff %}\n count(*) + coalesce(abs(\n sum(case when which_diff = 'a_minus_b' then 1 else 0 end) -\n sum(case when which_diff = 'b_minus_a' then 1 else 0 end)\n ), 0)\n{% endset %}\n\n{#-- Needs to be set at parse time, before we return '' below --#}\n{{ config(fail_calc = set_diff) }}\n\n{#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n{%- if not execute -%}\n {{ return('') }}\n{% endif %}\n\n\n\n-- setup\n{%- do dbt_utils._is_relation(model, 'test_equality') -%}\n\n{# Ensure there are no extra columns in the compare_model vs model #}\n{%- if not compare_columns -%}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- do dbt_utils._is_ephemeral(compare_model, 'test_equality') -%}\n\n {%- set model_columns = adapter.get_columns_in_relation(model) -%}\n {%- set compare_model_columns = adapter.get_columns_in_relation(compare_model) -%}\n\n\n {%- if exclude_columns -%}\n {#-- Lower case ignore columns for easier comparison --#}\n {%- set exclude_columns = exclude_columns | map(\"lower\") | list %}\n\n {# Filter out the excluded columns #}\n {%- set include_columns = [] %}\n {%- set include_model_columns = [] %}\n {%- for column in model_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n {%- for column in compare_model_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_model_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n\n {%- set compare_columns_set = set(include_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- set compare_model_columns_set = set(include_model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- else -%}\n {%- set compare_columns_set = set(model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- set compare_model_columns_set = set(compare_model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- endif -%}\n\n {% if compare_columns_set != compare_model_columns_set %}\n {{ exceptions.raise_compiler_error(compare_model ~\" has less columns than \" ~ model ~ \", please ensure they have the same columns or use the `compare_columns` or `exclude_columns` arguments to subset them.\") }}\n {% endif %}\n\n\n{% endif %}\n\n{%- if not precision -%}\n {%- if not compare_columns -%}\n {# \n You cannot get the columns in an ephemeral model (due to not existing in the information schema),\n so if the user does not provide an explicit list of columns we must error in the case it is ephemeral\n #}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set compare_columns = adapter.get_columns_in_relation(model)-%}\n\n {%- if exclude_columns -%}\n {#-- Lower case ignore columns for easier comparison --#}\n {%- set exclude_columns = exclude_columns | map(\"lower\") | list %}\n\n {# Filter out the excluded columns #}\n {%- set include_columns = [] %}\n {%- for column in compare_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n\n {%- set compare_columns = include_columns | map(attribute='quoted') %}\n {%- else -%} {# Compare columns provided #}\n {%- set compare_columns = compare_columns | map(attribute='quoted') %}\n {%- endif -%}\n {%- endif -%}\n\n {% set compare_cols_csv = compare_columns | join(', ') %}\n\n{% else %} {# Precision required #}\n {#-\n If rounding is required, we need to get the types, so it cannot be ephemeral even if they provide column names\n -#}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set columns = adapter.get_columns_in_relation(model) -%}\n\n {% set columns_list = [] %}\n {%- for col in columns -%}\n {%- if (\n (col.name|lower in compare_columns|map('lower') or not compare_columns) and\n (col.name|lower not in exclude_columns|map('lower') or not exclude_columns)\n ) -%}\n {# Databricks double type is not picked up by any number type checks in dbt #}\n {%- if col.is_float() or col.is_numeric() or col.data_type == 'double' -%}\n {# Cast is required due to postgres not having round for a double precision number #}\n {%- do columns_list.append('round(cast(' ~ col.quoted ~ ' as ' ~ dbt.type_numeric() ~ '),' ~ precision ~ ') as ' ~ col.quoted) -%}\n {%- else -%} {# Non-numeric type #}\n {%- do columns_list.append(col.quoted) -%}\n {%- endif -%}\n {% endif %}\n {%- endfor -%}\n\n {% set compare_cols_csv = columns_list | join(', ') %}\n\n{% endif %}\n\nwith a as (\n\n select * from {{ model }}\n\n),\n\nb as (\n\n select * from {{ compare_model }}\n\n),\n\na_minus_b as (\n\n select {{compare_cols_csv}} from a\n {{ dbt.except() }}\n select {{compare_cols_csv}} from b\n\n),\n\nb_minus_a as (\n\n select {{compare_cols_csv}} from b\n {{ dbt.except() }}\n select {{compare_cols_csv}} from a\n\n),\n\nunioned as (\n\n select 'a_minus_b' as which_diff, a_minus_b.* from a_minus_b\n union all\n select 'b_minus_a' as which_diff, b_minus_a.* from b_minus_a\n\n)\n\nselect * from unioned\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.type_numeric", "macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.845639, "supported_languages": null}, "macro.dbt_utils.test_accepted_range": {"name": "test_accepted_range", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "unique_id": "macro.dbt_utils.test_accepted_range", "macro_sql": "{% test accepted_range(model, column_name, min_value=none, max_value=none, inclusive=true) %}\n {{ return(adapter.dispatch('test_accepted_range', 'dbt_utils')(model, column_name, min_value, max_value, inclusive)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_accepted_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8473353, "supported_languages": null}, "macro.dbt_utils.default__test_accepted_range": {"name": "default__test_accepted_range", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "unique_id": "macro.dbt_utils.default__test_accepted_range", "macro_sql": "{% macro default__test_accepted_range(model, column_name, min_value=none, max_value=none, inclusive=true) %}\n\nwith meet_condition as(\n select *\n from {{ model }}\n),\n\nvalidation_errors as (\n select *\n from meet_condition\n where\n -- never true, defaults to an empty result set. Exists to ensure any combo of the `or` clauses below succeeds\n 1 = 2\n\n {%- if min_value is not none %}\n -- records with a value >= min_value are permitted. The `not` flips this to find records that don't meet the rule.\n or not {{ column_name }} > {{- \"=\" if inclusive }} {{ min_value }}\n {%- endif %}\n\n {%- if max_value is not none %}\n -- records with a value <= max_value are permitted. The `not` flips this to find records that don't meet the rule.\n or not {{ column_name }} < {{- \"=\" if inclusive }} {{ max_value }}\n {%- endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.848928, "supported_languages": null}, "macro.dbt_utils.test_cardinality_equality": {"name": "test_cardinality_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "unique_id": "macro.dbt_utils.test_cardinality_equality", "macro_sql": "{% test cardinality_equality(model, column_name, to, field) %}\n {{ return(adapter.dispatch('test_cardinality_equality', 'dbt_utils')(model, column_name, to, field)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_cardinality_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8502584, "supported_languages": null}, "macro.dbt_utils.default__test_cardinality_equality": {"name": "default__test_cardinality_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "unique_id": "macro.dbt_utils.default__test_cardinality_equality", "macro_sql": "{% macro default__test_cardinality_equality(model, column_name, to, field) %}\n\n{# T-SQL does not let you use numbers as aliases for columns #}\n{# Thus, no \"GROUP BY 1\" #}\n\nwith table_a as (\nselect\n {{ column_name }},\n count(*) as num_rows\nfrom {{ model }}\ngroup by {{ column_name }}\n),\n\ntable_b as (\nselect\n {{ field }},\n count(*) as num_rows\nfrom {{ to }}\ngroup by {{ field }}\n),\n\nexcept_a as (\n select *\n from table_a\n {{ dbt.except() }}\n select *\n from table_b\n),\n\nexcept_b as (\n select *\n from table_b\n {{ dbt.except() }}\n select *\n from table_a\n),\n\nunioned as (\n select *\n from except_a\n union all\n select *\n from except_b\n)\n\nselect *\nfrom unioned\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8513508, "supported_languages": null}, "macro.dbt_utils.test_recency": {"name": "test_recency", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "unique_id": "macro.dbt_utils.test_recency", "macro_sql": "{% test recency(model, field, datepart, interval, ignore_time_component=False, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_recency', 'dbt_utils')(model, field, datepart, interval, ignore_time_component, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_recency"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.852981, "supported_languages": null}, "macro.dbt_utils.default__test_recency": {"name": "default__test_recency", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "unique_id": "macro.dbt_utils.default__test_recency", "macro_sql": "{% macro default__test_recency(model, field, datepart, interval, ignore_time_component, group_by_columns) %}\n\n{% set threshold = 'cast(' ~ dbt.dateadd(datepart, interval * -1, dbt.current_timestamp()) ~ ' as ' ~ ('date' if ignore_time_component else dbt.type_timestamp()) ~ ')' %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n\nwith recency as (\n\n select \n\n {{ select_gb_cols }}\n {% if ignore_time_component %}\n cast(max({{ field }}) as date) as most_recent\n {%- else %}\n max({{ field }}) as most_recent\n {%- endif %}\n\n from {{ model }}\n\n {{ groupby_gb_cols }}\n\n)\n\nselect\n\n {{ select_gb_cols }}\n most_recent,\n {{ threshold }} as threshold\n\nfrom recency\nwhere most_recent < {{ threshold }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.current_timestamp", "macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8555756, "supported_languages": null}, "macro.dbt_utils.test_not_constant": {"name": "test_not_constant", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "unique_id": "macro.dbt_utils.test_not_constant", "macro_sql": "{% test not_constant(model, column_name, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_not_constant', 'dbt_utils')(model, column_name, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_constant"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8569226, "supported_languages": null}, "macro.dbt_utils.default__test_not_constant": {"name": "default__test_not_constant", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "unique_id": "macro.dbt_utils.default__test_not_constant", "macro_sql": "{% macro default__test_not_constant(model, column_name, group_by_columns) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n\nselect\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n {{select_gb_cols}}\n count(distinct {{ column_name }}) as filler_column\n\nfrom {{ model }}\n\n {{groupby_gb_cols}}\n\nhaving count(distinct {{ column_name }}) = 1\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.858333, "supported_languages": null}, "macro.dbt_utils.test_not_null_proportion": {"name": "test_not_null_proportion", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "unique_id": "macro.dbt_utils.test_not_null_proportion", "macro_sql": "{% macro test_not_null_proportion(model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_not_null_proportion', 'dbt_utils')(model, group_by_columns, **kwargs)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_null_proportion"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8597076, "supported_languages": null}, "macro.dbt_utils.default__test_not_null_proportion": {"name": "default__test_not_null_proportion", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "unique_id": "macro.dbt_utils.default__test_not_null_proportion", "macro_sql": "{% macro default__test_not_null_proportion(model, group_by_columns) %}\n\n{% set column_name = kwargs.get('column_name', kwargs.get('arg')) %}\n{% set at_least = kwargs.get('at_least', kwargs.get('arg')) %}\n{% set at_most = kwargs.get('at_most', kwargs.get('arg', 1)) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\nwith validation as (\n select\n {{select_gb_cols}}\n sum(case when {{ column_name }} is null then 0 else 1 end) / cast(count(*) as {{ dbt.type_numeric() }}) as not_null_proportion\n from {{ model }}\n {{groupby_gb_cols}}\n),\nvalidation_errors as (\n select\n {{select_gb_cols}}\n not_null_proportion\n from validation\n where not_null_proportion < {{ at_least }} or not_null_proportion > {{ at_most }}\n)\nselect\n *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.862286, "supported_languages": null}, "macro.dbt_utils.test_at_least_one": {"name": "test_at_least_one", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "unique_id": "macro.dbt_utils.test_at_least_one", "macro_sql": "{% test at_least_one(model, column_name, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_at_least_one', 'dbt_utils')(model, column_name, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_at_least_one"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8638127, "supported_languages": null}, "macro.dbt_utils.default__test_at_least_one": {"name": "default__test_at_least_one", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "unique_id": "macro.dbt_utils.default__test_at_least_one", "macro_sql": "{% macro default__test_at_least_one(model, column_name, group_by_columns) %}\n\n{% set pruned_cols = [column_name] %}\n\n{% if group_by_columns|length() > 0 %}\n\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n {% set pruned_cols = group_by_columns %}\n\n {% if column_name not in pruned_cols %}\n {% do pruned_cols.append(column_name) %}\n {% endif %}\n\n{% endif %}\n\n{% set select_pruned_cols = pruned_cols|join(' ,') %}\n\nselect *\nfrom (\n with pruned_rows as (\n select\n {{ select_pruned_cols }}\n from {{ model }}\n {% if group_by_columns|length() == 0 %}\n where {{ column_name }} is not null\n limit 1\n {% endif %}\n )\n select\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n {{select_gb_cols}}\n count({{ column_name }}) as filler_column\n\n from pruned_rows\n\n {{groupby_gb_cols}}\n\n having count({{ column_name }}) = 0\n\n) validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8665643, "supported_languages": null}, "macro.dbt_utils.test_relationships_where": {"name": "test_relationships_where", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "unique_id": "macro.dbt_utils.test_relationships_where", "macro_sql": "{% test relationships_where(model, column_name, to, field, from_condition=\"1=1\", to_condition=\"1=1\") %}\n {{ return(adapter.dispatch('test_relationships_where', 'dbt_utils')(model, column_name, to, field, from_condition, to_condition)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_relationships_where"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8680875, "supported_languages": null}, "macro.dbt_utils.default__test_relationships_where": {"name": "default__test_relationships_where", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "unique_id": "macro.dbt_utils.default__test_relationships_where", "macro_sql": "{% macro default__test_relationships_where(model, column_name, to, field, from_condition=\"1=1\", to_condition=\"1=1\") %}\n\n{# T-SQL has no boolean data type so we use 1=1 which returns TRUE #}\n{# ref https://stackoverflow.com/a/7170753/3842610 #}\n\nwith left_table as (\n\n select\n {{column_name}} as id\n\n from {{model}}\n\n where {{column_name}} is not null\n and {{from_condition}}\n\n),\n\nright_table as (\n\n select\n {{field}} as id\n\n from {{to}}\n\n where {{field}} is not null\n and {{to_condition}}\n\n),\n\nexceptions as (\n\n select\n left_table.id,\n right_table.id as right_id\n\n from left_table\n\n left join right_table\n on left_table.id = right_table.id\n\n where right_table.id is null\n\n)\n\nselect * from exceptions\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8692837, "supported_languages": null}, "macro.dbt_utils.test_not_empty_string": {"name": "test_not_empty_string", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "unique_id": "macro.dbt_utils.test_not_empty_string", "macro_sql": "{% test not_empty_string(model, column_name, trim_whitespace=true) %}\n\n {{ return(adapter.dispatch('test_not_empty_string', 'dbt_utils')(model, column_name, trim_whitespace)) }}\n\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_empty_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.870508, "supported_languages": null}, "macro.dbt_utils.default__test_not_empty_string": {"name": "default__test_not_empty_string", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "unique_id": "macro.dbt_utils.default__test_not_empty_string", "macro_sql": "{% macro default__test_not_empty_string(model, column_name, trim_whitespace=true) %}\n\n with\n \n all_values as (\n\n select \n\n\n {% if trim_whitespace == true -%}\n\n trim({{ column_name }}) as {{ column_name }}\n\n {%- else -%}\n\n {{ column_name }}\n\n {%- endif %}\n \n from {{ model }}\n\n ),\n\n errors as (\n\n select * from all_values\n where {{ column_name }} = ''\n\n )\n\n select * from errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8718052, "supported_languages": null}, "macro.dbt_utils.test_mutually_exclusive_ranges": {"name": "test_mutually_exclusive_ranges", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "unique_id": "macro.dbt_utils.test_mutually_exclusive_ranges", "macro_sql": "{% test mutually_exclusive_ranges(model, lower_bound_column, upper_bound_column, partition_by=None, gaps='allowed', zero_length_range_allowed=False) %}\n {{ return(adapter.dispatch('test_mutually_exclusive_ranges', 'dbt_utils')(model, lower_bound_column, upper_bound_column, partition_by, gaps, zero_length_range_allowed)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_mutually_exclusive_ranges"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8744452, "supported_languages": null}, "macro.dbt_utils.default__test_mutually_exclusive_ranges": {"name": "default__test_mutually_exclusive_ranges", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "unique_id": "macro.dbt_utils.default__test_mutually_exclusive_ranges", "macro_sql": "{% macro default__test_mutually_exclusive_ranges(model, lower_bound_column, upper_bound_column, partition_by=None, gaps='allowed', zero_length_range_allowed=False) %}\n{% if gaps == 'not_allowed' %}\n {% set allow_gaps_operator='=' %}\n {% set allow_gaps_operator_in_words='equal_to' %}\n{% elif gaps == 'allowed' %}\n {% set allow_gaps_operator='<=' %}\n {% set allow_gaps_operator_in_words='less_than_or_equal_to' %}\n{% elif gaps == 'required' %}\n {% set allow_gaps_operator='<' %}\n {% set allow_gaps_operator_in_words='less_than' %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`gaps` argument for mutually_exclusive_ranges test must be one of ['not_allowed', 'allowed', 'required'] Got: '\" ~ gaps ~\"'.'\"\n ) }}\n{% endif %}\n{% if not zero_length_range_allowed %}\n {% set allow_zero_length_operator='<' %}\n {% set allow_zero_length_operator_in_words='less_than' %}\n{% elif zero_length_range_allowed %}\n {% set allow_zero_length_operator='<=' %}\n {% set allow_zero_length_operator_in_words='less_than_or_equal_to' %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`zero_length_range_allowed` argument for mutually_exclusive_ranges test must be one of [true, false] Got: '\" ~ zero_length_range_allowed ~\"'.'\"\n ) }}\n{% endif %}\n\n{% set partition_clause=\"partition by \" ~ partition_by if partition_by else '' %}\n\nwith window_functions as (\n\n select\n {% if partition_by %}\n {{ partition_by }} as partition_by_col,\n {% endif %}\n {{ lower_bound_column }} as lower_bound,\n {{ upper_bound_column }} as upper_bound,\n\n lead({{ lower_bound_column }}) over (\n {{ partition_clause }}\n order by {{ lower_bound_column }}, {{ upper_bound_column }}\n ) as next_lower_bound,\n\n row_number() over (\n {{ partition_clause }}\n order by {{ lower_bound_column }} desc, {{ upper_bound_column }} desc\n ) = 1 as is_last_record\n\n from {{ model }}\n\n),\n\ncalc as (\n -- We want to return records where one of our assumptions fails, so we'll use\n -- the `not` function with `and` statements so we can write our assumptions more cleanly\n select\n *,\n\n -- For each record: lower_bound should be < upper_bound.\n -- Coalesce it to return an error on the null case (implicit assumption\n -- these columns are not_null)\n coalesce(\n lower_bound {{ allow_zero_length_operator }} upper_bound,\n false\n ) as lower_bound_{{ allow_zero_length_operator_in_words }}_upper_bound,\n\n -- For each record: upper_bound {{ allow_gaps_operator }} the next lower_bound.\n -- Coalesce it to handle null cases for the last record.\n coalesce(\n upper_bound {{ allow_gaps_operator }} next_lower_bound,\n is_last_record,\n false\n ) as upper_bound_{{ allow_gaps_operator_in_words }}_next_lower_bound\n\n from window_functions\n\n),\n\nvalidation_errors as (\n\n select\n *\n from calc\n\n where not(\n -- THE FOLLOWING SHOULD BE TRUE --\n lower_bound_{{ allow_zero_length_operator_in_words }}_upper_bound\n and upper_bound_{{ allow_gaps_operator_in_words }}_next_lower_bound\n )\n)\n\nselect * from validation_errors\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8793247, "supported_languages": null}, "macro.dbt_utils.test_unique_combination_of_columns": {"name": "test_unique_combination_of_columns", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "unique_id": "macro.dbt_utils.test_unique_combination_of_columns", "macro_sql": "{% test unique_combination_of_columns(model, combination_of_columns, quote_columns=false) %}\n {{ return(adapter.dispatch('test_unique_combination_of_columns', 'dbt_utils')(model, combination_of_columns, quote_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_unique_combination_of_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.880811, "supported_languages": null}, "macro.dbt_utils.default__test_unique_combination_of_columns": {"name": "default__test_unique_combination_of_columns", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "unique_id": "macro.dbt_utils.default__test_unique_combination_of_columns", "macro_sql": "{% macro default__test_unique_combination_of_columns(model, combination_of_columns, quote_columns=false) %}\n\n{% if not quote_columns %}\n {%- set column_list=combination_of_columns %}\n{% elif quote_columns %}\n {%- set column_list=[] %}\n {% for column in combination_of_columns -%}\n {% set column_list = column_list.append( adapter.quote(column) ) %}\n {%- endfor %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`quote_columns` argument for unique_combination_of_columns test must be one of [True, False] Got: '\" ~ quote ~\"'.'\"\n ) }}\n{% endif %}\n\n{%- set columns_csv=column_list | join(', ') %}\n\n\nwith validation_errors as (\n\n select\n {{ columns_csv }}\n from {{ model }}\n group by {{ columns_csv }}\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8828485, "supported_languages": null}, "macro.dbt_utils.test_not_accepted_values": {"name": "test_not_accepted_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "unique_id": "macro.dbt_utils.test_not_accepted_values", "macro_sql": "{% test not_accepted_values(model, column_name, values, quote=True) %}\n {{ return(adapter.dispatch('test_not_accepted_values', 'dbt_utils')(model, column_name, values, quote)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8841255, "supported_languages": null}, "macro.dbt_utils.default__test_not_accepted_values": {"name": "default__test_not_accepted_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "unique_id": "macro.dbt_utils.default__test_not_accepted_values", "macro_sql": "{% macro default__test_not_accepted_values(model, column_name, values, quote=True) %}\nwith all_values as (\n\n select distinct\n {{ column_name }} as value_field\n\n from {{ model }}\n\n),\n\nvalidation_errors as (\n\n select\n value_field\n\n from all_values\n where value_field in (\n {% for value in values -%}\n {% if quote -%}\n '{{ value }}'\n {%- else -%}\n {{ value }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {%- endfor %}\n )\n\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.885318, "supported_languages": null}, "macro.dbt_utils.test_fewer_rows_than": {"name": "test_fewer_rows_than", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "unique_id": "macro.dbt_utils.test_fewer_rows_than", "macro_sql": "{% test fewer_rows_than(model, compare_model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_fewer_rows_than', 'dbt_utils')(model, compare_model, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_fewer_rows_than"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8870893, "supported_languages": null}, "macro.dbt_utils.default__test_fewer_rows_than": {"name": "default__test_fewer_rows_than", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "unique_id": "macro.dbt_utils.default__test_fewer_rows_than", "macro_sql": "{% macro default__test_fewer_rows_than(model, compare_model, group_by_columns) %}\n\n{{ config(fail_calc = 'sum(coalesce(row_count_delta, 0))') }}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set join_gb_cols %}\n {% for c in group_by_columns %}\n and a.{{c}} = b.{{c}}\n {% endfor %}\n {% endset %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n{#-- We must add a fake join key in case additional grouping variables are not provided --#}\n{#-- Redshift does not allow for dynamically created join conditions (e.g. full join on 1 = 1 --#}\n{#-- The same logic is used in equal_rowcount. In case of changes, maintain consistent logic --#}\n{% set group_by_columns = ['id_dbtutils_test_fewer_rows_than'] + group_by_columns %}\n{% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n\n\nwith a as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_fewer_rows_than,\n count(*) as count_our_model \n from {{ model }}\n {{ groupby_gb_cols }}\n\n),\nb as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_fewer_rows_than,\n count(*) as count_comparison_model \n from {{ compare_model }}\n {{ groupby_gb_cols }}\n\n),\ncounts as (\n\n select\n\n {% for c in group_by_columns -%}\n a.{{c}} as {{c}}_a,\n b.{{c}} as {{c}}_b,\n {% endfor %}\n\n count_our_model,\n count_comparison_model\n from a\n full join b on \n a.id_dbtutils_test_fewer_rows_than = b.id_dbtutils_test_fewer_rows_than\n {{ join_gb_cols }}\n\n),\nfinal as (\n\n select *,\n case\n -- fail the test if we have more rows than the reference model and return the row count delta\n when count_our_model > count_comparison_model then (count_our_model - count_comparison_model)\n -- fail the test if they are the same number\n when count_our_model = count_comparison_model then 1\n -- pass the test if the delta is positive (i.e. return the number 0)\n else 0\n end as row_count_delta\n from counts\n\n)\n\nselect * from final\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8902857, "supported_languages": null}, "macro.dbt_utils.test_sequential_values": {"name": "test_sequential_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "unique_id": "macro.dbt_utils.test_sequential_values", "macro_sql": "{% test sequential_values(model, column_name, interval=1, datepart=None, group_by_columns = []) %}\n\n {{ return(adapter.dispatch('test_sequential_values', 'dbt_utils')(model, column_name, interval, datepart, group_by_columns)) }}\n\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_sequential_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8920736, "supported_languages": null}, "macro.dbt_utils.default__test_sequential_values": {"name": "default__test_sequential_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "unique_id": "macro.dbt_utils.default__test_sequential_values", "macro_sql": "{% macro default__test_sequential_values(model, column_name, interval=1, datepart=None, group_by_columns = []) %}\n\n{% set previous_column_name = \"previous_\" ~ dbt_utils.slugify(column_name) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(',') + ', ' %}\n {% set partition_gb_cols = 'partition by ' + group_by_columns|join(',') %}\n{% endif %}\n\nwith windowed as (\n\n select\n {{ select_gb_cols }}\n {{ column_name }},\n lag({{ column_name }}) over (\n {{partition_gb_cols}}\n order by {{ column_name }}\n ) as {{ previous_column_name }}\n from {{ model }}\n),\n\nvalidation_errors as (\n select\n *\n from windowed\n {% if datepart %}\n where not(cast({{ column_name }} as {{ dbt.type_timestamp() }})= cast({{ dbt.dateadd(datepart, interval, previous_column_name) }} as {{ dbt.type_timestamp() }}))\n {% else %}\n where not({{ column_name }} = {{ previous_column_name }} + {{ interval }})\n {% endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.slugify", "macro.dbt.type_timestamp", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8948855, "supported_languages": null}, "macro.dbt_utils.test_expression_is_true": {"name": "test_expression_is_true", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "unique_id": "macro.dbt_utils.test_expression_is_true", "macro_sql": "{% test expression_is_true(model, expression, column_name=None) %}\n {{ return(adapter.dispatch('test_expression_is_true', 'dbt_utils')(model, expression, column_name)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_expression_is_true"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.8960176, "supported_languages": null}, "macro.dbt_utils.default__test_expression_is_true": {"name": "default__test_expression_is_true", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "unique_id": "macro.dbt_utils.default__test_expression_is_true", "macro_sql": "{% macro default__test_expression_is_true(model, expression, column_name) %}\n\n{% set column_list = '*' if should_store_failures() else \"1\" %}\n\nselect\n {{ column_list }}\nfrom {{ model }}\n{% if column_name is none %}\nwhere not({{ expression }})\n{%- else %}\nwhere not({{ column_name }} {{ expression }})\n{%- endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.89726, "supported_languages": null}, "macro.dbt_utils.get_url_path": {"name": "get_url_path", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "unique_id": "macro.dbt_utils.get_url_path", "macro_sql": "{% macro get_url_path(field) -%}\n {{ return(adapter.dispatch('get_url_path', 'dbt_utils')(field)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_path"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.898377, "supported_languages": null}, "macro.dbt_utils.default__get_url_path": {"name": "default__get_url_path", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "unique_id": "macro.dbt_utils.default__get_url_path", "macro_sql": "{% macro default__get_url_path(field) -%}\n\n {%- set stripped_url =\n dbt.replace(\n dbt.replace(field, \"'http://'\", \"''\"), \"'https://'\", \"''\")\n -%}\n\n {%- set first_slash_pos -%}\n coalesce(\n nullif({{ dbt.position(\"'/'\", stripped_url) }}, 0),\n {{ dbt.position(\"'?'\", stripped_url) }} - 1\n )\n {%- endset -%}\n\n {%- set parsed_path =\n dbt.split_part(\n dbt.right(\n stripped_url,\n dbt.length(stripped_url) ~ \"-\" ~ first_slash_pos\n ),\n \"'?'\", 1\n )\n -%}\n\n {{ dbt.safe_cast(\n parsed_path,\n dbt.type_string()\n )}}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.position", "macro.dbt.split_part", "macro.dbt.right", "macro.dbt.length", "macro.dbt.safe_cast", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.9003575, "supported_languages": null}, "macro.dbt_utils.get_url_host": {"name": "get_url_host", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "unique_id": "macro.dbt_utils.get_url_host", "macro_sql": "{% macro get_url_host(field) -%}\n {{ return(adapter.dispatch('get_url_host', 'dbt_utils')(field)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_host"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.9012575, "supported_languages": null}, "macro.dbt_utils.default__get_url_host": {"name": "default__get_url_host", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "unique_id": "macro.dbt_utils.default__get_url_host", "macro_sql": "{% macro default__get_url_host(field) -%}\n\n{%- set parsed =\n dbt.split_part(\n dbt.split_part(\n dbt.replace(\n dbt.replace(\n dbt.replace(field, \"'android-app://'\", \"''\"\n ), \"'http://'\", \"''\"\n ), \"'https://'\", \"''\"\n ), \"'/'\", 1\n ), \"'?'\", 1\n )\n\n-%}\n\n\n {{ dbt.safe_cast(\n parsed,\n dbt.type_string()\n )}}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.split_part", "macro.dbt.replace", "macro.dbt.safe_cast", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.9028604, "supported_languages": null}, "macro.dbt_utils.get_url_parameter": {"name": "get_url_parameter", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "unique_id": "macro.dbt_utils.get_url_parameter", "macro_sql": "{% macro get_url_parameter(field, url_parameter) -%}\n {{ return(adapter.dispatch('get_url_parameter', 'dbt_utils')(field, url_parameter)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.903795, "supported_languages": null}, "macro.dbt_utils.default__get_url_parameter": {"name": "default__get_url_parameter", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "unique_id": "macro.dbt_utils.default__get_url_parameter", "macro_sql": "{% macro default__get_url_parameter(field, url_parameter) -%}\n\n{%- set formatted_url_parameter = \"'\" + url_parameter + \"='\" -%}\n\n{%- set split = dbt.split_part(dbt.split_part(field, formatted_url_parameter, 2), \"'&'\", 1) -%}\n\nnullif({{ split }},'')\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1782269920.904781, "supported_languages": null}, "macro.dbt_analytics_engineering.test_valid_date_of_birth": {"name": "test_valid_date_of_birth", "resource_type": "macro", "package_name": "dbt_analytics_engineering", "path": "tests/generic/valid_date_format.sql", "original_file_path": "tests/generic/valid_date_format.sql", "unique_id": "macro.dbt_analytics_engineering.test_valid_date_of_birth", "macro_sql": "{% test valid_date_of_birth(model, column_name) %}\n\nSELECT *\nFROM {{ model }}\nWHERE {{ column_name }} IS NOT NULL\n AND (\n {{ column_name }} < '1900-01-01'\n OR {{ column_name }} > CAST(GETDATE() AS DATE)\n )\n\n{% endtest %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784198862.3690453, "supported_languages": null}, "macro.dbt_analytics_engineering.standardize_date": {"name": "standardize_date", "resource_type": "macro", "package_name": "dbt_analytics_engineering", "path": "macros/standardize_date.sql", "original_file_path": "macros/standardize_date.sql", "unique_id": "macro.dbt_analytics_engineering.standardize_date", "macro_sql": "{% macro standardize_date(column_name) %}\n{% set col = \"TRIM(\" ~ column_name ~ \")\" %}\n\n CASE\n WHEN {{ col }} LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, {{ col }})\n\n WHEN {{ col }} LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, {{ col }})\n\n WHEN {{ col }} LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING({{ col }}, 4, 2)) > 12\n THEN TRY_CONVERT(DATE, {{ col }}, 110)\n\n WHEN {{ col }} LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT({{ col }}, 2)) > 12\n THEN TRY_CONVERT(DATE, {{ col }}, 105)\n\n WHEN {{ col }} LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, {{ col }})\n\n WHEN {{ col }} LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, {{ col }})\n\n WHEN {{ col }} LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING({{ col }}, 4, 2)) > 12\n THEN TRY_CONVERT(DATE, {{ col }}, 101)\n\n WHEN {{ col }} LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT({{ col }}, 2)) > 12\n THEN TRY_CONVERT(DATE, {{ col }}, 103)\n\n ELSE TRY_CONVERT(DATE, {{ col }}, 101)\n\n END\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784392131.4541864, "supported_languages": null}, "macro.dbt_analytics_engineering.standardize_phone": {"name": "standardize_phone", "resource_type": "macro", "package_name": "dbt_analytics_engineering", "path": "macros/standardize_phone.sql", "original_file_path": "macros/standardize_phone.sql", "unique_id": "macro.dbt_analytics_engineering.standardize_phone", "macro_sql": "{% macro standardize_phone(column_name) %}\n{% set col = \"TRIM(\" ~ column_name ~ \")\" %}\n CASE \n WHEN {{ col }} LIKE '+1__________' \n THEN CONCAT('+1 (', SUBSTRING({{ col }}, 3, 3), ') ',\n SUBSTRING({{ col }}, 6, 3),'-',\n SUBSTRING({{ col }},9,4))\n\n WHEN {{ col }} LIKE '__________' \n THEN CONCAT('+1 (', SUBSTRING({{ col }}, 1 ,3), ') ',\n SUBSTRING({{ col }}, 4 ,3), '-',\n SUBSTRING({{ col }}, 7, 4))\n\n WHEN {{ col }} LIKE '___-___-____' \n THEN CONCAT('+1 (', SUBSTRING({{ col }}, 1, 3), ') ',\n SUBSTRING({{ col }}, 5, 3), '-',\n SUBSTRING({{ col }}, 9 ,4))\n\n WHEN {{ col }} LIKE '___.___.____' \n THEN CONCAT('+1 (', SUBSTRING({{ col }}, 1, 3), ') ',\n SUBSTRING({{ col }}, 5, 3), '-',\n SUBSTRING({{ col }},9, 4))\n\n WHEN {{ col }} LIKE '(___) ___-____' \n THEN CONCAT('+1 ', SUBSTRING({{ col }}, 1, 14))\n\n WHEN {{ col }} IS NULL OR {{col }} = '' \n THEN 'Unknown'\n\n ELSE 'Unknown'\n END\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784430173.302934, "supported_languages": null}, "macro.dbt_analytics_engineering.trim_lower": {"name": "trim_lower", "resource_type": "macro", "package_name": "dbt_analytics_engineering", "path": "macros/trim_lower.sql", "original_file_path": "macros/trim_lower.sql", "unique_id": "macro.dbt_analytics_engineering.trim_lower", "macro_sql": "{% macro trim_lower(column_name) %}\n LOWER(TRIM({{ column_name }}))\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784562472.4884164, "supported_languages": null}}, "docs": {"doc.dbt.__overview__": {"name": "__overview__", "resource_type": "doc", "package_name": "dbt", "path": "overview.md", "original_file_path": "docs/overview.md", "unique_id": "doc.dbt.__overview__", "block_contents": "### Welcome!\n\nWelcome to the auto-generated documentation for your dbt project!\n\n### Navigation\n\nYou can use the `Project` and `Database` navigation tabs on the left side of the window to explore the models\nin your project.\n\n#### Project Tab\nThe `Project` tab mirrors the directory structure of your dbt project. In this tab, you can see all of the\nmodels defined in your dbt project, as well as models imported from dbt packages.\n\n#### Database Tab\nThe `Database` tab also exposes your models, but in a format that looks more like a database explorer. This view\nshows relations (tables and views) grouped into database schemas. Note that ephemeral models are _not_ shown\nin this interface, as they do not exist in the database.\n\n### Graph Exploration\nYou can click the blue icon on the bottom-right corner of the page to view the lineage graph of your models.\n\nOn model pages, you'll see the immediate parents and children of the model you're exploring. By clicking the `Expand`\nbutton at the top-right of this lineage pane, you'll be able to see all of the models that are used to build,\nor are built from, the model you're exploring.\n\nOnce expanded, you'll be able to use the `--select` and `--exclude` model selection syntax to filter the\nmodels in the graph. For more information on model selection, check out the [dbt docs](https://docs.getdbt.com/docs/model-selection-syntax).\n\nNote that you can also right-click on models to interactively filter and explore the graph.\n\n---\n\n### More information\n\n- [What is dbt](https://docs.getdbt.com/docs/introduction)?\n- Read the [dbt viewpoint](https://docs.getdbt.com/docs/viewpoint)\n- [Installation](https://docs.getdbt.com/docs/installation)\n- Join the [dbt Community](https://www.getdbt.com/community/) for questions and discussion"}}, "exposures": {}, "metrics": {}, "groups": {}, "selectors": {}, "disabled": {}, "parent_map": {"model.dbt_analytics_engineering.stg_stores": ["source.dbt_analytics_engineering.bronze.stores"], "model.dbt_analytics_engineering.stg_products": ["source.dbt_analytics_engineering.bronze.products"], "model.dbt_analytics_engineering.stg_reviews": ["source.dbt_analytics_engineering.bronze.reviews"], "model.dbt_analytics_engineering.stg_inventory": ["source.dbt_analytics_engineering.bronze.inventory_snapshots"], "model.dbt_analytics_engineering.stg_customers": ["source.dbt_analytics_engineering.bronze.customers"], "model.dbt_analytics_engineering.stg_employees": ["source.dbt_analytics_engineering.bronze.employees"], "model.dbt_analytics_engineering.stg_transactions": ["source.dbt_analytics_engineering.bronze.sales_transactions"], "model.dbt_analytics_engineering.stg_returns": ["source.dbt_analytics_engineering.bronze.returns"], "model.dbt_analytics_engineering.int_product_pricing": ["model.dbt_analytics_engineering.stg_products"], "model.dbt_analytics_engineering.int_product_supplier": ["model.dbt_analytics_engineering.stg_products"], "model.dbt_analytics_engineering.int_inventory_stock": ["model.dbt_analytics_engineering.stg_inventory"], "model.dbt_analytics_engineering.int_inventory_valuation": ["model.dbt_analytics_engineering.stg_inventory"], "model.dbt_analytics_engineering.int_return_refund": ["model.dbt_analytics_engineering.stg_returns"], "test.dbt_analytics_engineering.unique_stg_customers_customer_id.c7614daada": ["model.dbt_analytics_engineering.stg_customers"], "test.dbt_analytics_engineering.not_null_stg_customers_customer_id.e2cfb1f9aa": ["model.dbt_analytics_engineering.stg_customers"], "test.dbt_analytics_engineering.unique_stg_employees_employee_id.db72478d64": ["model.dbt_analytics_engineering.stg_employees"], "test.dbt_analytics_engineering.not_null_stg_employees_employee_id.7f6f73d15b": ["model.dbt_analytics_engineering.stg_employees"], "test.dbt_analytics_engineering.unique_stg_inventory_inventory_snapshot_sk.424f04d53c": ["model.dbt_analytics_engineering.stg_inventory"], "test.dbt_analytics_engineering.not_null_stg_inventory_inventory_snapshot_sk.54b4a35ec9": ["model.dbt_analytics_engineering.stg_inventory"], "test.dbt_analytics_engineering.not_null_stg_inventory_snapshot_date.f47349bb98": ["model.dbt_analytics_engineering.stg_inventory"], "test.dbt_analytics_engineering.not_null_stg_inventory_product_id.065830936a": ["model.dbt_analytics_engineering.stg_inventory"], "test.dbt_analytics_engineering.not_null_stg_products_product_id.6373b0acf3": ["model.dbt_analytics_engineering.stg_products"], "test.dbt_analytics_engineering.unique_stg_products_product_id.7d950a1467": ["model.dbt_analytics_engineering.stg_products"], "test.dbt_analytics_engineering.not_null_stg_products_sku.a9d39174ce": ["model.dbt_analytics_engineering.stg_products"], "test.dbt_analytics_engineering.unique_stg_returns_return_id.c2232dee8a": ["model.dbt_analytics_engineering.stg_returns"], "test.dbt_analytics_engineering.not_null_stg_returns_return_id.8e8e7cd8be": ["model.dbt_analytics_engineering.stg_returns"], "test.dbt_analytics_engineering.unique_stg_reviews_review_id.9b6c259f3c": ["model.dbt_analytics_engineering.stg_reviews"], "test.dbt_analytics_engineering.not_null_stg_reviews_review_id.943b8fc3e4": ["model.dbt_analytics_engineering.stg_reviews"], "test.dbt_analytics_engineering.unique_stg_stores_store_id.2e80d074c2": ["model.dbt_analytics_engineering.stg_stores"], "test.dbt_analytics_engineering.not_null_stg_stores_store_id.ebecf07ec6": ["model.dbt_analytics_engineering.stg_stores"], "test.dbt_analytics_engineering.unique_stg_transactions_transaction_id.ee9a78a396": ["model.dbt_analytics_engineering.stg_transactions"], "test.dbt_analytics_engineering.not_null_stg_transactions_transaction_id.1d00a8e2e4": ["model.dbt_analytics_engineering.stg_transactions"], "test.dbt_analytics_engineering.not_null_stg_transactions_order_line_number.abd883623b": ["model.dbt_analytics_engineering.stg_transactions"], "test.dbt_analytics_engineering.unique_int_inventory_stock_inventory_snapshot_sk.9d7117fc4c": ["model.dbt_analytics_engineering.int_inventory_stock"], "test.dbt_analytics_engineering.not_null_int_inventory_stock_inventory_snapshot_sk.ff913462e4": ["model.dbt_analytics_engineering.int_inventory_stock"], "test.dbt_analytics_engineering.unique_int_inventory_valuation_inventory_snapshot_sk.2d586ef9af": ["model.dbt_analytics_engineering.int_inventory_valuation"], "test.dbt_analytics_engineering.not_null_int_inventory_valuation_inventory_snapshot_sk.036a80c28a": ["model.dbt_analytics_engineering.int_inventory_valuation"], "test.dbt_analytics_engineering.not_null_int_inventory_valuation_warehouse_location.835673fed9": ["model.dbt_analytics_engineering.int_inventory_valuation"], "test.dbt_analytics_engineering.unique_int_product_pricing_product_id.1ba68cde3a": ["model.dbt_analytics_engineering.int_product_pricing"], "test.dbt_analytics_engineering.not_null_int_product_pricing_product_id.fadb03a63d": ["model.dbt_analytics_engineering.int_product_pricing"], "test.dbt_analytics_engineering.unique_int_product_supplier_product_id.3e37319263": ["model.dbt_analytics_engineering.int_product_supplier"], "test.dbt_analytics_engineering.not_null_int_product_supplier_product_id.19984a84be": ["model.dbt_analytics_engineering.int_product_supplier"], "test.dbt_analytics_engineering.unique_int_return_refund_return_id.1904e0149a": ["model.dbt_analytics_engineering.int_return_refund"], "test.dbt_analytics_engineering.not_null_int_return_refund_return_id.0a7f23f19b": ["model.dbt_analytics_engineering.int_return_refund"], "test.dbt_analytics_engineering.not_null_int_return_refund_refund_method.83f1b9cc4e": ["model.dbt_analytics_engineering.int_return_refund"], "test.dbt_analytics_engineering.accepted_values_int_return_refund_refund_method__Cash__Original_Payment__Store_Credit.c4762af53a": ["model.dbt_analytics_engineering.int_return_refund"], "model.dbt_analytics_engineering.int_review_rating": ["model.dbt_analytics_engineering.stg_reviews"], "test.dbt_analytics_engineering.unique_int_review_rating_review_id.fb244f2642": ["model.dbt_analytics_engineering.int_review_rating"], "test.dbt_analytics_engineering.not_null_int_review_rating_review_id.c8fa2eb4d0": ["model.dbt_analytics_engineering.int_review_rating"], "test.dbt_analytics_engineering.accepted_values_int_review_rating_rating__1__2__3__4__5.fa6071f8df": ["model.dbt_analytics_engineering.int_review_rating"], "model.dbt_analytics_engineering.int_transaction_order": ["model.dbt_analytics_engineering.stg_transactions"], "test.dbt_analytics_engineering.unique_int_transaction_order_transaction_id.7ef27eea80": ["model.dbt_analytics_engineering.int_transaction_order"], "test.dbt_analytics_engineering.not_null_int_transaction_order_transaction_id.ce8ae051e2": ["model.dbt_analytics_engineering.int_transaction_order"], "test.dbt_analytics_engineering.not_null_int_transaction_order_order_id.402e3d5af3": ["model.dbt_analytics_engineering.int_transaction_order"], "test.dbt_analytics_engineering.not_null_int_transaction_order_customer_id.ad17338ea9": ["model.dbt_analytics_engineering.int_transaction_order"], "test.dbt_analytics_engineering.not_null_int_transaction_order_product_id.e1c83e6b81": ["model.dbt_analytics_engineering.int_transaction_order"], "test.dbt_analytics_engineering.not_null_int_transaction_order_store_id.a5a31f4088": ["model.dbt_analytics_engineering.int_transaction_order"], "test.dbt_analytics_engineering.not_null_int_transaction_order_employee_id.12d68f00f2": ["model.dbt_analytics_engineering.int_transaction_order"], "model.dbt_analytics_engineering.dim_stores": ["model.dbt_analytics_engineering.int_store_location", "model.dbt_analytics_engineering.int_store_operations", "model.dbt_analytics_engineering.int_store_profile"], "model.dbt_analytics_engineering.dim_employees": ["model.dbt_analytics_engineering.int_employee_contact", "model.dbt_analytics_engineering.int_employee_employment", "model.dbt_analytics_engineering.int_employee_profile"], "test.dbt_analytics_engineering.unique_dim_employees_employee_id.79828c8f30": ["model.dbt_analytics_engineering.dim_employees"], "test.dbt_analytics_engineering.not_null_dim_employees_employee_id.ef83a0c291": ["model.dbt_analytics_engineering.dim_employees"], "test.dbt_analytics_engineering.unique_dim_stores_store_id.0479724a85": ["model.dbt_analytics_engineering.dim_stores"], "test.dbt_analytics_engineering.not_null_dim_stores_store_id.e93781bc63": ["model.dbt_analytics_engineering.dim_stores"], "test.dbt_analytics_engineering.accepted_values_dim_stores_is_active__True__False__Unknown.35f5206575": ["model.dbt_analytics_engineering.dim_stores"], "model.dbt_analytics_engineering.dim_products": ["model.dbt_analytics_engineering.int_product_attributes", "model.dbt_analytics_engineering.int_product_inventory", "model.dbt_analytics_engineering.int_product_pricing", "model.dbt_analytics_engineering.int_product_supplier"], "test.dbt_analytics_engineering.unique_dim_products_product_id.ef7b2a9985": ["model.dbt_analytics_engineering.dim_products"], "test.dbt_analytics_engineering.not_null_dim_products_product_id.c8aba288d1": ["model.dbt_analytics_engineering.dim_products"], "model.dbt_analytics_engineering.dim_inventory": ["model.dbt_analytics_engineering.int_inventory_product", "model.dbt_analytics_engineering.int_inventory_valuation"], "test.dbt_analytics_engineering.valid_zip_code": ["model.dbt_analytics_engineering.int_customer_location"], "model.dbt_analytics_engineering.dim_customers": ["model.dbt_analytics_engineering.int_customer_location", "model.dbt_analytics_engineering.int_customer_profile", "model.dbt_analytics_engineering.int_customer_segmentation", "model.dbt_analytics_engineering.int_customers_contact"], "test.dbt_analytics_engineering.unique_dim_customers_customer_id.15c9f1e2fd": ["model.dbt_analytics_engineering.dim_customers"], "test.dbt_analytics_engineering.not_null_dim_customers_customer_id.dd91cd1c8d": ["model.dbt_analytics_engineering.dim_customers"], "model.dbt_analytics_engineering.int_employee_profile": ["model.dbt_analytics_engineering.stg_employees"], "model.dbt_analytics_engineering.int_review_transaction": ["model.dbt_analytics_engineering.stg_reviews"], "test.dbt_analytics_engineering.unique_int_employee_profile_employee_id.a5993c7dd6": ["model.dbt_analytics_engineering.int_employee_profile"], "test.dbt_analytics_engineering.not_null_int_employee_profile_employee_id.b0a9f39539": ["model.dbt_analytics_engineering.int_employee_profile"], "test.dbt_analytics_engineering.not_null_int_employee_profile_first_name.1ecad5e479": ["model.dbt_analytics_engineering.int_employee_profile"], "test.dbt_analytics_engineering.not_null_int_employee_profile_last_name.580f17b21c": ["model.dbt_analytics_engineering.int_employee_profile"], "test.dbt_analytics_engineering.not_null_int_employee_profile_hire_date.7ee99bcf22": ["model.dbt_analytics_engineering.int_employee_profile"], "test.dbt_analytics_engineering.unique_int_review_transaction_review_id.ace040f037": ["model.dbt_analytics_engineering.int_review_transaction"], "test.dbt_analytics_engineering.not_null_int_review_transaction_review_id.36ac118ba9": ["model.dbt_analytics_engineering.int_review_transaction"], "test.dbt_analytics_engineering.not_null_int_review_transaction_txn_id.b153953529": ["model.dbt_analytics_engineering.int_review_transaction"], "test.dbt_analytics_engineering.not_null_int_review_transaction_customer_id.296d834f24": ["model.dbt_analytics_engineering.int_review_transaction"], "test.dbt_analytics_engineering.not_null_int_review_transaction_product_id.980062fb89": ["model.dbt_analytics_engineering.int_review_transaction"], "test.dbt_analytics_engineering.not_null_int_review_transaction_review_date.2e4911b1c8": ["model.dbt_analytics_engineering.int_review_transaction"], "model.dbt_analytics_engineering.int_store_profile": ["model.dbt_analytics_engineering.stg_stores"], "test.dbt_analytics_engineering.unique_int_store_profile_store_id.d293596622": ["model.dbt_analytics_engineering.int_store_profile"], "test.dbt_analytics_engineering.not_null_int_store_profile_store_id.bb3e17dcc3": ["model.dbt_analytics_engineering.int_store_profile"], "test.dbt_analytics_engineering.not_null_int_store_profile_manager_name.7e1eb48b5b": ["model.dbt_analytics_engineering.int_store_profile"], "test.dbt_analytics_engineering.not_null_int_store_profile_store_name.440ba3db70": ["model.dbt_analytics_engineering.int_store_profile"], "test.dbt_analytics_engineering.not_null_int_store_profile_store_type.1533baa047": ["model.dbt_analytics_engineering.int_store_profile"], "model.dbt_analytics_engineering.int_store_location": ["model.dbt_analytics_engineering.stg_stores"], "test.dbt_analytics_engineering.unique_int_store_location_store_id.708c011d5e": ["model.dbt_analytics_engineering.int_store_location"], "test.dbt_analytics_engineering.not_null_int_store_location_store_id.1a1692bb1e": ["model.dbt_analytics_engineering.int_store_location"], "test.dbt_analytics_engineering.not_null_int_store_location_address.0ce7c5738d": ["model.dbt_analytics_engineering.int_store_location"], "test.dbt_analytics_engineering.not_null_int_store_location_city.52cb5206b2": ["model.dbt_analytics_engineering.int_store_location"], "test.dbt_analytics_engineering.not_null_int_store_location_country.bf81137315": ["model.dbt_analytics_engineering.int_store_location"], "test.dbt_analytics_engineering.not_null_int_store_location_region.10b1faa762": ["model.dbt_analytics_engineering.int_store_location"], "test.dbt_analytics_engineering.not_null_int_store_location_district.29150f3093": ["model.dbt_analytics_engineering.int_store_location"], "test.dbt_analytics_engineering.not_null_int_store_location_phone.2b5ee0a89d": ["model.dbt_analytics_engineering.int_store_location"], "model.dbt_analytics_engineering.int_employee_contact": ["model.dbt_analytics_engineering.stg_employees"], "test.dbt_analytics_engineering.unique_int_employee_contact_employee_id.062a8592c6": ["model.dbt_analytics_engineering.int_employee_contact"], "test.dbt_analytics_engineering.not_null_int_employee_contact_employee_id.6831e85930": ["model.dbt_analytics_engineering.int_employee_contact"], "test.dbt_analytics_engineering.not_null_int_employee_contact_email.e8efeefd4a": ["model.dbt_analytics_engineering.int_employee_contact"], "test.dbt_analytics_engineering.not_null_int_employee_contact_phone.7457f56eb1": ["model.dbt_analytics_engineering.int_employee_contact"], "model.dbt_analytics_engineering.int_product_inventory": ["model.dbt_analytics_engineering.stg_products"], "test.dbt_analytics_engineering.unique_int_product_inventory_product_id.732744fd20": ["model.dbt_analytics_engineering.int_product_inventory"], "test.dbt_analytics_engineering.not_null_int_product_inventory_product_id.9b12ada6b4": ["model.dbt_analytics_engineering.int_product_inventory"], "test.dbt_analytics_engineering.accepted_values_int_product_inventory_is_available__Available__Not_Available__Discontinued__Unknown.6fb8d64f81": ["model.dbt_analytics_engineering.int_product_inventory"], "model.dbt_analytics_engineering.int_employee_employment": ["model.dbt_analytics_engineering.stg_employees"], "model.dbt_analytics_engineering.int_product_attributes": ["model.dbt_analytics_engineering.stg_products"], "model.dbt_analytics_engineering.int_inventory_product": ["model.dbt_analytics_engineering.stg_inventory"], "test.dbt_analytics_engineering.unique_int_employee_employment_employee_id.349cd9d024": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.not_null_int_employee_employment_employee_id.4b317cafdf": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.not_null_int_employee_employment_job_title.6b190a9a12": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.accepted_values_int_employee_employment_job_title__Account_Executive__Customer_Advisor__Regional_Manager__Sales_Associate__Sales_Consultant__Sales_Manager__Sales_Representative__Senior_Sales_Associate__Store_Manager.5a26b81538": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.not_null_int_employee_employment_department.7be8a16615": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.accepted_values_int_employee_employment_department__Customer_Service__Management__Operations__Sales__Unknown.a347d6218f": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.relationships_int_employee_employment_store_id__store_id__ref_int_store_profile_.1941f5b907": ["model.dbt_analytics_engineering.int_employee_employment", "model.dbt_analytics_engineering.int_store_profile"], "test.dbt_analytics_engineering.not_null_int_employee_employment_store_name.f651f514ac": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.not_null_int_employee_employment_store_city.6cc8b5a1a2": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.not_null_int_employee_employment_annual_salary_usd.5061dbe7e6": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.not_null_int_employee_employment_commission_rate_pct.35495fa9d9": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.accepted_values_int_employee_employment_performance_rating__Excellent__Good__Average__Below_Average__Unknown.3755c7561e": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.not_null_int_employee_employment_is_active.cc4cfb1aec": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.accepted_values_int_employee_employment_is_active__True__False.7b923c6da0": ["model.dbt_analytics_engineering.int_employee_employment"], "test.dbt_analytics_engineering.unique_int_inventory_product_inventory_snapshot_sk.08e50afdaf": ["model.dbt_analytics_engineering.int_inventory_product"], "test.dbt_analytics_engineering.not_null_int_inventory_product_inventory_snapshot_sk.9c74fa15eb": ["model.dbt_analytics_engineering.int_inventory_product"], "test.dbt_analytics_engineering.not_null_int_inventory_product_snapshot_date.f7776ecf58": ["model.dbt_analytics_engineering.int_inventory_product"], "test.dbt_analytics_engineering.not_null_int_inventory_product_product_id.b039ccc8f4": ["model.dbt_analytics_engineering.int_inventory_product"], "test.dbt_analytics_engineering.relationships_int_inventory_product_product_id__product_id__ref_int_product_attributes_.96b32ae525": ["model.dbt_analytics_engineering.int_inventory_product", "model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.not_null_int_inventory_product_product_name.b1cc316d19": ["model.dbt_analytics_engineering.int_inventory_product"], "test.dbt_analytics_engineering.not_null_int_inventory_product_sku.38fee3ca77": ["model.dbt_analytics_engineering.int_inventory_product"], "test.dbt_analytics_engineering.not_null_int_inventory_product_category.3b4559e898": ["model.dbt_analytics_engineering.int_inventory_product"], "test.dbt_analytics_engineering.accepted_values_int_inventory_product_category__Electronics__Clothing__Kitchen__Office__Sports__Health__Beauty__Footwear__Toys__Bags__Unknown.fd70912290": ["model.dbt_analytics_engineering.int_inventory_product"], "test.dbt_analytics_engineering.unique_int_product_attributes_product_id.8584b57f27": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.not_null_int_product_attributes_product_id.d317fe9f5c": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.unique_int_product_attributes_sku.46fd7012d5": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.not_null_int_product_attributes_sku.4d167f66ec": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.unique_int_product_attributes_product_name.ccc7fc48bd": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.not_null_int_product_attributes_product_name.ab95611d88": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.not_null_int_product_attributes_brand.c1dd65709d": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.not_null_int_product_attributes_category.39f4905b43": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.accepted_values_int_product_attributes_category__Bags__Beauty__Clothing__Electronics__Footwear__Health__Kitchen__Office__Sports__Toys.07ebbdc1f6": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.not_null_int_product_attributes_sub_category.ec1e5bef03": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.not_null_int_product_attributes_department.fad95d1e4c": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.accepted_values_int_product_attributes_department__Apparel_Sports__Books_Office__Fitness_Outdoors__Health_Beauty__Home_Garden__Technology__Toys_Games.2b64b418f6": ["model.dbt_analytics_engineering.int_product_attributes"], "test.dbt_analytics_engineering.not_null_int_product_attributes_launched_date.7175feb482": ["model.dbt_analytics_engineering.int_product_attributes"], "model.dbt_analytics_engineering.int_return_processing": ["model.dbt_analytics_engineering.stg_returns"], "model.dbt_analytics_engineering.int_return_transaction": ["model.dbt_analytics_engineering.stg_returns"], "model.dbt_analytics_engineering.int_review_feedback": ["model.dbt_analytics_engineering.stg_reviews"], "model.dbt_analytics_engineering.int_store_operations": ["model.dbt_analytics_engineering.stg_stores"], "test.dbt_analytics_engineering.unique_int_return_processing_return_id.7f07242ef7": ["model.dbt_analytics_engineering.int_return_processing"], "test.dbt_analytics_engineering.not_null_int_return_processing_return_id.70a41fc821": ["model.dbt_analytics_engineering.int_return_processing"], "test.dbt_analytics_engineering.not_null_int_return_processing_return_reason.def074cf28": ["model.dbt_analytics_engineering.int_return_processing"], "test.dbt_analytics_engineering.not_null_int_return_processing_return_channel.4e70d8cedb": ["model.dbt_analytics_engineering.int_return_processing"], "test.dbt_analytics_engineering.accepted_values_int_return_processing_return_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.5fccc869d9": ["model.dbt_analytics_engineering.int_return_processing"], "test.dbt_analytics_engineering.not_null_int_return_processing_restocked.a169aa3d70": ["model.dbt_analytics_engineering.int_return_processing"], "test.dbt_analytics_engineering.accepted_values_int_return_processing_restocked__Yes__No__Unknown.bcf59a1e1f": ["model.dbt_analytics_engineering.int_return_processing"], "test.dbt_analytics_engineering.not_null_int_return_processing_return_status.6d8d37f1d3": ["model.dbt_analytics_engineering.int_return_processing"], "test.dbt_analytics_engineering.unique_int_return_transaction_return_id.28ded58b95": ["model.dbt_analytics_engineering.int_return_transaction"], "test.dbt_analytics_engineering.not_null_int_return_transaction_return_id.163631358b": ["model.dbt_analytics_engineering.int_return_transaction"], "test.dbt_analytics_engineering.not_null_int_return_transaction_customer_name.da820b6e0e": ["model.dbt_analytics_engineering.int_return_transaction"], "test.dbt_analytics_engineering.not_null_int_return_transaction_product_name.973039b798": ["model.dbt_analytics_engineering.int_return_transaction"], "test.dbt_analytics_engineering.not_null_int_return_transaction_return_date.0ceaab3215": ["model.dbt_analytics_engineering.int_return_transaction"], "test.dbt_analytics_engineering.unique_int_review_feedback_review_id.abd37c25ad": ["model.dbt_analytics_engineering.int_review_feedback"], "test.dbt_analytics_engineering.not_null_int_review_feedback_review_id.7319c6feb3": ["model.dbt_analytics_engineering.int_review_feedback"], "test.dbt_analytics_engineering.not_null_int_review_feedback_review_channel.e637eee1d6": ["model.dbt_analytics_engineering.int_review_feedback"], "test.dbt_analytics_engineering.accepted_values_int_review_feedback_review_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.e21453d669": ["model.dbt_analytics_engineering.int_review_feedback"], "test.dbt_analytics_engineering.not_null_int_review_feedback_review_title.4b5134c5ca": ["model.dbt_analytics_engineering.int_review_feedback"], "test.dbt_analytics_engineering.unique_int_store_operations_store_id.2018d3ff75": ["model.dbt_analytics_engineering.int_store_operations"], "test.dbt_analytics_engineering.not_null_int_store_operations_store_id.4e3985d8f2": ["model.dbt_analytics_engineering.int_store_operations"], "test.dbt_analytics_engineering.not_null_int_store_operations_is_active.b4ed4559d5": ["model.dbt_analytics_engineering.int_store_operations"], "test.dbt_analytics_engineering.accepted_values_int_store_operations_is_active__True__False__Unknown.298394908a": ["model.dbt_analytics_engineering.int_store_operations"], "test.dbt_analytics_engineering.not_null_int_store_operations_has_parking.94fffde25b": ["model.dbt_analytics_engineering.int_store_operations"], "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_parking__True__False__Unknown.3728409db2": ["model.dbt_analytics_engineering.int_store_operations"], "test.dbt_analytics_engineering.not_null_int_store_operations_has_cafe.6ebade018d": ["model.dbt_analytics_engineering.int_store_operations"], "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_cafe__True__False__Unknown.b02c35a29d": ["model.dbt_analytics_engineering.int_store_operations"], "model.dbt_analytics_engineering.int_customer_profile": ["model.dbt_analytics_engineering.stg_customers"], "model.dbt_analytics_engineering.int_transaction_fulfillment": ["model.dbt_analytics_engineering.stg_transactions"], "model.dbt_analytics_engineering.int_customer_segmentation": ["model.dbt_analytics_engineering.stg_customers"], "model.dbt_analytics_engineering.int_transaction_financial": ["model.dbt_analytics_engineering.stg_transactions"], "model.dbt_analytics_engineering.int_customer_location": ["model.dbt_analytics_engineering.stg_customers"], "test.dbt_analytics_engineering.not_null_int_customer_profile_first_name.601ca24c11": ["model.dbt_analytics_engineering.int_customer_profile"], "test.dbt_analytics_engineering.not_null_int_customer_profile_last_name.406eccd58c": ["model.dbt_analytics_engineering.int_customer_profile"], "test.dbt_analytics_engineering.not_null_int_customer_profile_gender.f510f79209": ["model.dbt_analytics_engineering.int_customer_profile"], "test.dbt_analytics_engineering.accepted_values_int_customer_profile_gender__Male__Female__Non_Binary__Other__Unknown.68b6d3ed48": ["model.dbt_analytics_engineering.int_customer_profile"], "test.dbt_analytics_engineering.not_null_int_customer_segmentation_customer_segment.491592cc63": ["model.dbt_analytics_engineering.int_customer_segmentation"], "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_customer_segment__Bronze__Silver__Gold__Platinum__Unknown.08c611db09": ["model.dbt_analytics_engineering.int_customer_segmentation"], "test.dbt_analytics_engineering.not_null_int_customer_segmentation_company.828a751ca9": ["model.dbt_analytics_engineering.int_customer_segmentation"], "test.dbt_analytics_engineering.not_null_int_customer_segmentation_is_active.6eae5bb04d": ["model.dbt_analytics_engineering.int_customer_segmentation"], "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_is_active__True__False__Unknown.a740e8b8b9": ["model.dbt_analytics_engineering.int_customer_segmentation"], "test.dbt_analytics_engineering.not_null_int_customer_location_address.0477470aa5": ["model.dbt_analytics_engineering.int_customer_location"], "test.dbt_analytics_engineering.not_null_int_customer_location_city.8e1a6a4cee": ["model.dbt_analytics_engineering.int_customer_location"], "test.dbt_analytics_engineering.not_null_int_customer_location_state_abbr.15ac178793": ["model.dbt_analytics_engineering.int_customer_location"], "test.dbt_analytics_engineering.not_null_int_customer_location_state.f7b75af023": ["model.dbt_analytics_engineering.int_customer_location"], "test.dbt_analytics_engineering.not_null_int_customer_location_zip_code.a7263a9e3a": ["model.dbt_analytics_engineering.int_customer_location"], "test.dbt_analytics_engineering.not_null_int_customer_location_country.39087bf4f2": ["model.dbt_analytics_engineering.int_customer_location"], "test.dbt_analytics_engineering.accepted_values_int_customer_location_country__United_States__Unknown.86cb2451d3": ["model.dbt_analytics_engineering.int_customer_location"], "test.dbt_analytics_engineering.not_null_int_customer_location_region.bb382037e2": ["model.dbt_analytics_engineering.int_customer_location"], "test.dbt_analytics_engineering.accepted_values_int_customer_location_region__Midwest__Northeast__South__West.941ae25bfa": ["model.dbt_analytics_engineering.int_customer_location"], "test.dbt_analytics_engineering.unique_int_transaction_fulfillment_transaction_id.19535076ac": ["model.dbt_analytics_engineering.int_transaction_fulfillment"], "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_transaction_id.6074867dc7": ["model.dbt_analytics_engineering.int_transaction_fulfillment"], "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_order_date.2248138cc0": ["model.dbt_analytics_engineering.int_transaction_fulfillment"], "test.dbt_analytics_engineering.unique_int_transaction_financial_transaction_id.9f42b7645d": ["model.dbt_analytics_engineering.int_transaction_financial"], "test.dbt_analytics_engineering.not_null_int_transaction_financial_transaction_id.b0c6238393": ["model.dbt_analytics_engineering.int_transaction_financial"], "model.dbt_analytics_engineering.int_transaction_status": ["model.dbt_analytics_engineering.stg_transactions"], "model.dbt_analytics_engineering.int_customers_contact": ["model.dbt_analytics_engineering.stg_customers"], "test.dbt_analytics_engineering.unique_int_transaction_status_transaction_id.5a928112d7": ["model.dbt_analytics_engineering.int_transaction_status"], "test.dbt_analytics_engineering.not_null_int_transaction_status_transaction_id.307f36c18d": ["model.dbt_analytics_engineering.int_transaction_status"], "test.dbt_analytics_engineering.not_null_int_transaction_status_promo_name.73af556bae": ["model.dbt_analytics_engineering.int_transaction_status"], "test.dbt_analytics_engineering.not_null_int_transaction_status_order_status.e2edc43658": ["model.dbt_analytics_engineering.int_transaction_status"], "test.dbt_analytics_engineering.accepted_values_int_transaction_status_order_status__Pending__Processing__Shipped__Delivered__Returned__Cancelled.d3263719c7": ["model.dbt_analytics_engineering.int_transaction_status"], "test.dbt_analytics_engineering.not_null_int_transaction_status_is_returned.68242f5dfd": ["model.dbt_analytics_engineering.int_transaction_status"], "test.dbt_analytics_engineering.accepted_values_int_transaction_status_is_returned__True__False__Unknown.fcbf6be4ad": ["model.dbt_analytics_engineering.int_transaction_status"], "test.dbt_analytics_engineering.not_null_int_customers_contact_email.7b842fa5e7": ["model.dbt_analytics_engineering.int_customers_contact"], "test.dbt_analytics_engineering.not_null_int_customers_contact_phone.fe6527d505": ["model.dbt_analytics_engineering.int_customers_contact"], "test.dbt_analytics_engineering.not_null_int_customers_contact_preferred_channel.ab818846a7": ["model.dbt_analytics_engineering.int_customers_contact"], "test.dbt_analytics_engineering.accepted_values_int_customers_contact_preferred_channel__Mobile_App__In_Store__Catalog__Website__Phone_Call__Unknown.1735c0ec9c": ["model.dbt_analytics_engineering.int_customers_contact"], "source.dbt_analytics_engineering.bronze.customers": [], "source.dbt_analytics_engineering.bronze.employees": [], "source.dbt_analytics_engineering.bronze.inventory_snapshots": [], "source.dbt_analytics_engineering.bronze.products": [], "source.dbt_analytics_engineering.bronze.returns": [], "source.dbt_analytics_engineering.bronze.reviews": [], "source.dbt_analytics_engineering.bronze.sales_transactions": [], "source.dbt_analytics_engineering.bronze.stores": []}, "child_map": {"model.dbt_analytics_engineering.stg_stores": ["model.dbt_analytics_engineering.int_store_location", "model.dbt_analytics_engineering.int_store_operations", "model.dbt_analytics_engineering.int_store_profile", "test.dbt_analytics_engineering.not_null_stg_stores_store_id.ebecf07ec6", "test.dbt_analytics_engineering.unique_stg_stores_store_id.2e80d074c2"], "model.dbt_analytics_engineering.stg_products": ["model.dbt_analytics_engineering.int_product_attributes", "model.dbt_analytics_engineering.int_product_inventory", "model.dbt_analytics_engineering.int_product_pricing", "model.dbt_analytics_engineering.int_product_supplier", "test.dbt_analytics_engineering.not_null_stg_products_product_id.6373b0acf3", "test.dbt_analytics_engineering.not_null_stg_products_sku.a9d39174ce", "test.dbt_analytics_engineering.unique_stg_products_product_id.7d950a1467"], "model.dbt_analytics_engineering.stg_reviews": ["model.dbt_analytics_engineering.int_review_feedback", "model.dbt_analytics_engineering.int_review_rating", "model.dbt_analytics_engineering.int_review_transaction", "test.dbt_analytics_engineering.not_null_stg_reviews_review_id.943b8fc3e4", "test.dbt_analytics_engineering.unique_stg_reviews_review_id.9b6c259f3c"], "model.dbt_analytics_engineering.stg_inventory": ["model.dbt_analytics_engineering.int_inventory_product", "model.dbt_analytics_engineering.int_inventory_stock", "model.dbt_analytics_engineering.int_inventory_valuation", "test.dbt_analytics_engineering.not_null_stg_inventory_inventory_snapshot_sk.54b4a35ec9", "test.dbt_analytics_engineering.not_null_stg_inventory_product_id.065830936a", "test.dbt_analytics_engineering.not_null_stg_inventory_snapshot_date.f47349bb98", "test.dbt_analytics_engineering.unique_stg_inventory_inventory_snapshot_sk.424f04d53c"], "model.dbt_analytics_engineering.stg_customers": ["model.dbt_analytics_engineering.int_customer_location", "model.dbt_analytics_engineering.int_customer_profile", "model.dbt_analytics_engineering.int_customer_segmentation", "model.dbt_analytics_engineering.int_customers_contact", "test.dbt_analytics_engineering.not_null_stg_customers_customer_id.e2cfb1f9aa", "test.dbt_analytics_engineering.unique_stg_customers_customer_id.c7614daada"], "model.dbt_analytics_engineering.stg_employees": ["model.dbt_analytics_engineering.int_employee_contact", "model.dbt_analytics_engineering.int_employee_employment", "model.dbt_analytics_engineering.int_employee_profile", "test.dbt_analytics_engineering.not_null_stg_employees_employee_id.7f6f73d15b", "test.dbt_analytics_engineering.unique_stg_employees_employee_id.db72478d64"], "model.dbt_analytics_engineering.stg_transactions": ["model.dbt_analytics_engineering.int_transaction_financial", "model.dbt_analytics_engineering.int_transaction_fulfillment", "model.dbt_analytics_engineering.int_transaction_order", "model.dbt_analytics_engineering.int_transaction_status", "test.dbt_analytics_engineering.not_null_stg_transactions_order_line_number.abd883623b", "test.dbt_analytics_engineering.not_null_stg_transactions_transaction_id.1d00a8e2e4", "test.dbt_analytics_engineering.unique_stg_transactions_transaction_id.ee9a78a396"], "model.dbt_analytics_engineering.stg_returns": ["model.dbt_analytics_engineering.int_return_processing", "model.dbt_analytics_engineering.int_return_refund", "model.dbt_analytics_engineering.int_return_transaction", "test.dbt_analytics_engineering.not_null_stg_returns_return_id.8e8e7cd8be", "test.dbt_analytics_engineering.unique_stg_returns_return_id.c2232dee8a"], "model.dbt_analytics_engineering.int_product_pricing": ["model.dbt_analytics_engineering.dim_products", "test.dbt_analytics_engineering.not_null_int_product_pricing_product_id.fadb03a63d", "test.dbt_analytics_engineering.unique_int_product_pricing_product_id.1ba68cde3a"], "model.dbt_analytics_engineering.int_product_supplier": ["model.dbt_analytics_engineering.dim_products", "test.dbt_analytics_engineering.not_null_int_product_supplier_product_id.19984a84be", "test.dbt_analytics_engineering.unique_int_product_supplier_product_id.3e37319263"], "model.dbt_analytics_engineering.int_inventory_stock": ["test.dbt_analytics_engineering.not_null_int_inventory_stock_inventory_snapshot_sk.ff913462e4", "test.dbt_analytics_engineering.unique_int_inventory_stock_inventory_snapshot_sk.9d7117fc4c"], "model.dbt_analytics_engineering.int_inventory_valuation": ["model.dbt_analytics_engineering.dim_inventory", "test.dbt_analytics_engineering.not_null_int_inventory_valuation_inventory_snapshot_sk.036a80c28a", "test.dbt_analytics_engineering.not_null_int_inventory_valuation_warehouse_location.835673fed9", "test.dbt_analytics_engineering.unique_int_inventory_valuation_inventory_snapshot_sk.2d586ef9af"], "model.dbt_analytics_engineering.int_return_refund": ["test.dbt_analytics_engineering.accepted_values_int_return_refund_refund_method__Cash__Original_Payment__Store_Credit.c4762af53a", "test.dbt_analytics_engineering.not_null_int_return_refund_refund_method.83f1b9cc4e", "test.dbt_analytics_engineering.not_null_int_return_refund_return_id.0a7f23f19b", "test.dbt_analytics_engineering.unique_int_return_refund_return_id.1904e0149a"], "test.dbt_analytics_engineering.unique_stg_customers_customer_id.c7614daada": [], "test.dbt_analytics_engineering.not_null_stg_customers_customer_id.e2cfb1f9aa": [], "test.dbt_analytics_engineering.unique_stg_employees_employee_id.db72478d64": [], "test.dbt_analytics_engineering.not_null_stg_employees_employee_id.7f6f73d15b": [], "test.dbt_analytics_engineering.unique_stg_inventory_inventory_snapshot_sk.424f04d53c": [], "test.dbt_analytics_engineering.not_null_stg_inventory_inventory_snapshot_sk.54b4a35ec9": [], "test.dbt_analytics_engineering.not_null_stg_inventory_snapshot_date.f47349bb98": [], "test.dbt_analytics_engineering.not_null_stg_inventory_product_id.065830936a": [], "test.dbt_analytics_engineering.not_null_stg_products_product_id.6373b0acf3": [], "test.dbt_analytics_engineering.unique_stg_products_product_id.7d950a1467": [], "test.dbt_analytics_engineering.not_null_stg_products_sku.a9d39174ce": [], "test.dbt_analytics_engineering.unique_stg_returns_return_id.c2232dee8a": [], "test.dbt_analytics_engineering.not_null_stg_returns_return_id.8e8e7cd8be": [], "test.dbt_analytics_engineering.unique_stg_reviews_review_id.9b6c259f3c": [], "test.dbt_analytics_engineering.not_null_stg_reviews_review_id.943b8fc3e4": [], "test.dbt_analytics_engineering.unique_stg_stores_store_id.2e80d074c2": [], "test.dbt_analytics_engineering.not_null_stg_stores_store_id.ebecf07ec6": [], "test.dbt_analytics_engineering.unique_stg_transactions_transaction_id.ee9a78a396": [], "test.dbt_analytics_engineering.not_null_stg_transactions_transaction_id.1d00a8e2e4": [], "test.dbt_analytics_engineering.not_null_stg_transactions_order_line_number.abd883623b": [], "test.dbt_analytics_engineering.unique_int_inventory_stock_inventory_snapshot_sk.9d7117fc4c": [], "test.dbt_analytics_engineering.not_null_int_inventory_stock_inventory_snapshot_sk.ff913462e4": [], "test.dbt_analytics_engineering.unique_int_inventory_valuation_inventory_snapshot_sk.2d586ef9af": [], "test.dbt_analytics_engineering.not_null_int_inventory_valuation_inventory_snapshot_sk.036a80c28a": [], "test.dbt_analytics_engineering.not_null_int_inventory_valuation_warehouse_location.835673fed9": [], "test.dbt_analytics_engineering.unique_int_product_pricing_product_id.1ba68cde3a": [], "test.dbt_analytics_engineering.not_null_int_product_pricing_product_id.fadb03a63d": [], "test.dbt_analytics_engineering.unique_int_product_supplier_product_id.3e37319263": [], "test.dbt_analytics_engineering.not_null_int_product_supplier_product_id.19984a84be": [], "test.dbt_analytics_engineering.unique_int_return_refund_return_id.1904e0149a": [], "test.dbt_analytics_engineering.not_null_int_return_refund_return_id.0a7f23f19b": [], "test.dbt_analytics_engineering.not_null_int_return_refund_refund_method.83f1b9cc4e": [], "test.dbt_analytics_engineering.accepted_values_int_return_refund_refund_method__Cash__Original_Payment__Store_Credit.c4762af53a": [], "model.dbt_analytics_engineering.int_review_rating": ["test.dbt_analytics_engineering.accepted_values_int_review_rating_rating__1__2__3__4__5.fa6071f8df", "test.dbt_analytics_engineering.not_null_int_review_rating_review_id.c8fa2eb4d0", "test.dbt_analytics_engineering.unique_int_review_rating_review_id.fb244f2642"], "test.dbt_analytics_engineering.unique_int_review_rating_review_id.fb244f2642": [], "test.dbt_analytics_engineering.not_null_int_review_rating_review_id.c8fa2eb4d0": [], "test.dbt_analytics_engineering.accepted_values_int_review_rating_rating__1__2__3__4__5.fa6071f8df": [], "model.dbt_analytics_engineering.int_transaction_order": ["test.dbt_analytics_engineering.not_null_int_transaction_order_customer_id.ad17338ea9", "test.dbt_analytics_engineering.not_null_int_transaction_order_employee_id.12d68f00f2", "test.dbt_analytics_engineering.not_null_int_transaction_order_order_id.402e3d5af3", "test.dbt_analytics_engineering.not_null_int_transaction_order_product_id.e1c83e6b81", "test.dbt_analytics_engineering.not_null_int_transaction_order_store_id.a5a31f4088", "test.dbt_analytics_engineering.not_null_int_transaction_order_transaction_id.ce8ae051e2", "test.dbt_analytics_engineering.unique_int_transaction_order_transaction_id.7ef27eea80"], "test.dbt_analytics_engineering.unique_int_transaction_order_transaction_id.7ef27eea80": [], "test.dbt_analytics_engineering.not_null_int_transaction_order_transaction_id.ce8ae051e2": [], "test.dbt_analytics_engineering.not_null_int_transaction_order_order_id.402e3d5af3": [], "test.dbt_analytics_engineering.not_null_int_transaction_order_customer_id.ad17338ea9": [], "test.dbt_analytics_engineering.not_null_int_transaction_order_product_id.e1c83e6b81": [], "test.dbt_analytics_engineering.not_null_int_transaction_order_store_id.a5a31f4088": [], "test.dbt_analytics_engineering.not_null_int_transaction_order_employee_id.12d68f00f2": [], "model.dbt_analytics_engineering.dim_stores": ["test.dbt_analytics_engineering.accepted_values_dim_stores_is_active__True__False__Unknown.35f5206575", "test.dbt_analytics_engineering.not_null_dim_stores_store_id.e93781bc63", "test.dbt_analytics_engineering.unique_dim_stores_store_id.0479724a85"], "model.dbt_analytics_engineering.dim_employees": ["test.dbt_analytics_engineering.not_null_dim_employees_employee_id.ef83a0c291", "test.dbt_analytics_engineering.unique_dim_employees_employee_id.79828c8f30"], "test.dbt_analytics_engineering.unique_dim_employees_employee_id.79828c8f30": [], "test.dbt_analytics_engineering.not_null_dim_employees_employee_id.ef83a0c291": [], "test.dbt_analytics_engineering.unique_dim_stores_store_id.0479724a85": [], "test.dbt_analytics_engineering.not_null_dim_stores_store_id.e93781bc63": [], "test.dbt_analytics_engineering.accepted_values_dim_stores_is_active__True__False__Unknown.35f5206575": [], "model.dbt_analytics_engineering.dim_products": ["test.dbt_analytics_engineering.not_null_dim_products_product_id.c8aba288d1", "test.dbt_analytics_engineering.unique_dim_products_product_id.ef7b2a9985"], "test.dbt_analytics_engineering.unique_dim_products_product_id.ef7b2a9985": [], "test.dbt_analytics_engineering.not_null_dim_products_product_id.c8aba288d1": [], "model.dbt_analytics_engineering.dim_inventory": [], "test.dbt_analytics_engineering.valid_zip_code": [], "model.dbt_analytics_engineering.dim_customers": ["test.dbt_analytics_engineering.not_null_dim_customers_customer_id.dd91cd1c8d", "test.dbt_analytics_engineering.unique_dim_customers_customer_id.15c9f1e2fd"], "test.dbt_analytics_engineering.unique_dim_customers_customer_id.15c9f1e2fd": [], "test.dbt_analytics_engineering.not_null_dim_customers_customer_id.dd91cd1c8d": [], "model.dbt_analytics_engineering.int_employee_profile": ["model.dbt_analytics_engineering.dim_employees", "test.dbt_analytics_engineering.not_null_int_employee_profile_employee_id.b0a9f39539", "test.dbt_analytics_engineering.not_null_int_employee_profile_first_name.1ecad5e479", "test.dbt_analytics_engineering.not_null_int_employee_profile_hire_date.7ee99bcf22", "test.dbt_analytics_engineering.not_null_int_employee_profile_last_name.580f17b21c", "test.dbt_analytics_engineering.unique_int_employee_profile_employee_id.a5993c7dd6"], "model.dbt_analytics_engineering.int_review_transaction": ["test.dbt_analytics_engineering.not_null_int_review_transaction_customer_id.296d834f24", "test.dbt_analytics_engineering.not_null_int_review_transaction_product_id.980062fb89", "test.dbt_analytics_engineering.not_null_int_review_transaction_review_date.2e4911b1c8", "test.dbt_analytics_engineering.not_null_int_review_transaction_review_id.36ac118ba9", "test.dbt_analytics_engineering.not_null_int_review_transaction_txn_id.b153953529", "test.dbt_analytics_engineering.unique_int_review_transaction_review_id.ace040f037"], "test.dbt_analytics_engineering.unique_int_employee_profile_employee_id.a5993c7dd6": [], "test.dbt_analytics_engineering.not_null_int_employee_profile_employee_id.b0a9f39539": [], "test.dbt_analytics_engineering.not_null_int_employee_profile_first_name.1ecad5e479": [], "test.dbt_analytics_engineering.not_null_int_employee_profile_last_name.580f17b21c": [], "test.dbt_analytics_engineering.not_null_int_employee_profile_hire_date.7ee99bcf22": [], "test.dbt_analytics_engineering.unique_int_review_transaction_review_id.ace040f037": [], "test.dbt_analytics_engineering.not_null_int_review_transaction_review_id.36ac118ba9": [], "test.dbt_analytics_engineering.not_null_int_review_transaction_txn_id.b153953529": [], "test.dbt_analytics_engineering.not_null_int_review_transaction_customer_id.296d834f24": [], "test.dbt_analytics_engineering.not_null_int_review_transaction_product_id.980062fb89": [], "test.dbt_analytics_engineering.not_null_int_review_transaction_review_date.2e4911b1c8": [], "model.dbt_analytics_engineering.int_store_profile": ["model.dbt_analytics_engineering.dim_stores", "test.dbt_analytics_engineering.not_null_int_store_profile_manager_name.7e1eb48b5b", "test.dbt_analytics_engineering.not_null_int_store_profile_store_id.bb3e17dcc3", "test.dbt_analytics_engineering.not_null_int_store_profile_store_name.440ba3db70", "test.dbt_analytics_engineering.not_null_int_store_profile_store_type.1533baa047", "test.dbt_analytics_engineering.relationships_int_employee_employment_store_id__store_id__ref_int_store_profile_.1941f5b907", "test.dbt_analytics_engineering.unique_int_store_profile_store_id.d293596622"], "test.dbt_analytics_engineering.unique_int_store_profile_store_id.d293596622": [], "test.dbt_analytics_engineering.not_null_int_store_profile_store_id.bb3e17dcc3": [], "test.dbt_analytics_engineering.not_null_int_store_profile_manager_name.7e1eb48b5b": [], "test.dbt_analytics_engineering.not_null_int_store_profile_store_name.440ba3db70": [], "test.dbt_analytics_engineering.not_null_int_store_profile_store_type.1533baa047": [], "model.dbt_analytics_engineering.int_store_location": ["model.dbt_analytics_engineering.dim_stores", "test.dbt_analytics_engineering.not_null_int_store_location_address.0ce7c5738d", "test.dbt_analytics_engineering.not_null_int_store_location_city.52cb5206b2", "test.dbt_analytics_engineering.not_null_int_store_location_country.bf81137315", "test.dbt_analytics_engineering.not_null_int_store_location_district.29150f3093", "test.dbt_analytics_engineering.not_null_int_store_location_phone.2b5ee0a89d", "test.dbt_analytics_engineering.not_null_int_store_location_region.10b1faa762", "test.dbt_analytics_engineering.not_null_int_store_location_store_id.1a1692bb1e", "test.dbt_analytics_engineering.unique_int_store_location_store_id.708c011d5e"], "test.dbt_analytics_engineering.unique_int_store_location_store_id.708c011d5e": [], "test.dbt_analytics_engineering.not_null_int_store_location_store_id.1a1692bb1e": [], "test.dbt_analytics_engineering.not_null_int_store_location_address.0ce7c5738d": [], "test.dbt_analytics_engineering.not_null_int_store_location_city.52cb5206b2": [], "test.dbt_analytics_engineering.not_null_int_store_location_country.bf81137315": [], "test.dbt_analytics_engineering.not_null_int_store_location_region.10b1faa762": [], "test.dbt_analytics_engineering.not_null_int_store_location_district.29150f3093": [], "test.dbt_analytics_engineering.not_null_int_store_location_phone.2b5ee0a89d": [], "model.dbt_analytics_engineering.int_employee_contact": ["model.dbt_analytics_engineering.dim_employees", "test.dbt_analytics_engineering.not_null_int_employee_contact_email.e8efeefd4a", "test.dbt_analytics_engineering.not_null_int_employee_contact_employee_id.6831e85930", "test.dbt_analytics_engineering.not_null_int_employee_contact_phone.7457f56eb1", "test.dbt_analytics_engineering.unique_int_employee_contact_employee_id.062a8592c6"], "test.dbt_analytics_engineering.unique_int_employee_contact_employee_id.062a8592c6": [], "test.dbt_analytics_engineering.not_null_int_employee_contact_employee_id.6831e85930": [], "test.dbt_analytics_engineering.not_null_int_employee_contact_email.e8efeefd4a": [], "test.dbt_analytics_engineering.not_null_int_employee_contact_phone.7457f56eb1": [], "model.dbt_analytics_engineering.int_product_inventory": ["model.dbt_analytics_engineering.dim_products", "test.dbt_analytics_engineering.accepted_values_int_product_inventory_is_available__Available__Not_Available__Discontinued__Unknown.6fb8d64f81", "test.dbt_analytics_engineering.not_null_int_product_inventory_product_id.9b12ada6b4", "test.dbt_analytics_engineering.unique_int_product_inventory_product_id.732744fd20"], "test.dbt_analytics_engineering.unique_int_product_inventory_product_id.732744fd20": [], "test.dbt_analytics_engineering.not_null_int_product_inventory_product_id.9b12ada6b4": [], "test.dbt_analytics_engineering.accepted_values_int_product_inventory_is_available__Available__Not_Available__Discontinued__Unknown.6fb8d64f81": [], "model.dbt_analytics_engineering.int_employee_employment": ["model.dbt_analytics_engineering.dim_employees", "test.dbt_analytics_engineering.accepted_values_int_employee_employment_department__Customer_Service__Management__Operations__Sales__Unknown.a347d6218f", "test.dbt_analytics_engineering.accepted_values_int_employee_employment_is_active__True__False.7b923c6da0", "test.dbt_analytics_engineering.accepted_values_int_employee_employment_job_title__Account_Executive__Customer_Advisor__Regional_Manager__Sales_Associate__Sales_Consultant__Sales_Manager__Sales_Representative__Senior_Sales_Associate__Store_Manager.5a26b81538", "test.dbt_analytics_engineering.accepted_values_int_employee_employment_performance_rating__Excellent__Good__Average__Below_Average__Unknown.3755c7561e", "test.dbt_analytics_engineering.not_null_int_employee_employment_annual_salary_usd.5061dbe7e6", "test.dbt_analytics_engineering.not_null_int_employee_employment_commission_rate_pct.35495fa9d9", "test.dbt_analytics_engineering.not_null_int_employee_employment_department.7be8a16615", "test.dbt_analytics_engineering.not_null_int_employee_employment_employee_id.4b317cafdf", "test.dbt_analytics_engineering.not_null_int_employee_employment_is_active.cc4cfb1aec", "test.dbt_analytics_engineering.not_null_int_employee_employment_job_title.6b190a9a12", "test.dbt_analytics_engineering.not_null_int_employee_employment_store_city.6cc8b5a1a2", "test.dbt_analytics_engineering.not_null_int_employee_employment_store_name.f651f514ac", "test.dbt_analytics_engineering.relationships_int_employee_employment_store_id__store_id__ref_int_store_profile_.1941f5b907", "test.dbt_analytics_engineering.unique_int_employee_employment_employee_id.349cd9d024"], "model.dbt_analytics_engineering.int_product_attributes": ["model.dbt_analytics_engineering.dim_products", "test.dbt_analytics_engineering.accepted_values_int_product_attributes_category__Bags__Beauty__Clothing__Electronics__Footwear__Health__Kitchen__Office__Sports__Toys.07ebbdc1f6", "test.dbt_analytics_engineering.accepted_values_int_product_attributes_department__Apparel_Sports__Books_Office__Fitness_Outdoors__Health_Beauty__Home_Garden__Technology__Toys_Games.2b64b418f6", "test.dbt_analytics_engineering.not_null_int_product_attributes_brand.c1dd65709d", "test.dbt_analytics_engineering.not_null_int_product_attributes_category.39f4905b43", "test.dbt_analytics_engineering.not_null_int_product_attributes_department.fad95d1e4c", "test.dbt_analytics_engineering.not_null_int_product_attributes_launched_date.7175feb482", "test.dbt_analytics_engineering.not_null_int_product_attributes_product_id.d317fe9f5c", "test.dbt_analytics_engineering.not_null_int_product_attributes_product_name.ab95611d88", "test.dbt_analytics_engineering.not_null_int_product_attributes_sku.4d167f66ec", "test.dbt_analytics_engineering.not_null_int_product_attributes_sub_category.ec1e5bef03", "test.dbt_analytics_engineering.relationships_int_inventory_product_product_id__product_id__ref_int_product_attributes_.96b32ae525", "test.dbt_analytics_engineering.unique_int_product_attributes_product_id.8584b57f27", "test.dbt_analytics_engineering.unique_int_product_attributes_product_name.ccc7fc48bd", "test.dbt_analytics_engineering.unique_int_product_attributes_sku.46fd7012d5"], "model.dbt_analytics_engineering.int_inventory_product": ["model.dbt_analytics_engineering.dim_inventory", "test.dbt_analytics_engineering.accepted_values_int_inventory_product_category__Electronics__Clothing__Kitchen__Office__Sports__Health__Beauty__Footwear__Toys__Bags__Unknown.fd70912290", "test.dbt_analytics_engineering.not_null_int_inventory_product_category.3b4559e898", "test.dbt_analytics_engineering.not_null_int_inventory_product_inventory_snapshot_sk.9c74fa15eb", "test.dbt_analytics_engineering.not_null_int_inventory_product_product_id.b039ccc8f4", "test.dbt_analytics_engineering.not_null_int_inventory_product_product_name.b1cc316d19", "test.dbt_analytics_engineering.not_null_int_inventory_product_sku.38fee3ca77", "test.dbt_analytics_engineering.not_null_int_inventory_product_snapshot_date.f7776ecf58", "test.dbt_analytics_engineering.relationships_int_inventory_product_product_id__product_id__ref_int_product_attributes_.96b32ae525", "test.dbt_analytics_engineering.unique_int_inventory_product_inventory_snapshot_sk.08e50afdaf"], "test.dbt_analytics_engineering.unique_int_employee_employment_employee_id.349cd9d024": [], "test.dbt_analytics_engineering.not_null_int_employee_employment_employee_id.4b317cafdf": [], "test.dbt_analytics_engineering.not_null_int_employee_employment_job_title.6b190a9a12": [], "test.dbt_analytics_engineering.accepted_values_int_employee_employment_job_title__Account_Executive__Customer_Advisor__Regional_Manager__Sales_Associate__Sales_Consultant__Sales_Manager__Sales_Representative__Senior_Sales_Associate__Store_Manager.5a26b81538": [], "test.dbt_analytics_engineering.not_null_int_employee_employment_department.7be8a16615": [], "test.dbt_analytics_engineering.accepted_values_int_employee_employment_department__Customer_Service__Management__Operations__Sales__Unknown.a347d6218f": [], "test.dbt_analytics_engineering.relationships_int_employee_employment_store_id__store_id__ref_int_store_profile_.1941f5b907": [], "test.dbt_analytics_engineering.not_null_int_employee_employment_store_name.f651f514ac": [], "test.dbt_analytics_engineering.not_null_int_employee_employment_store_city.6cc8b5a1a2": [], "test.dbt_analytics_engineering.not_null_int_employee_employment_annual_salary_usd.5061dbe7e6": [], "test.dbt_analytics_engineering.not_null_int_employee_employment_commission_rate_pct.35495fa9d9": [], "test.dbt_analytics_engineering.accepted_values_int_employee_employment_performance_rating__Excellent__Good__Average__Below_Average__Unknown.3755c7561e": [], "test.dbt_analytics_engineering.not_null_int_employee_employment_is_active.cc4cfb1aec": [], "test.dbt_analytics_engineering.accepted_values_int_employee_employment_is_active__True__False.7b923c6da0": [], "test.dbt_analytics_engineering.unique_int_inventory_product_inventory_snapshot_sk.08e50afdaf": [], "test.dbt_analytics_engineering.not_null_int_inventory_product_inventory_snapshot_sk.9c74fa15eb": [], "test.dbt_analytics_engineering.not_null_int_inventory_product_snapshot_date.f7776ecf58": [], "test.dbt_analytics_engineering.not_null_int_inventory_product_product_id.b039ccc8f4": [], "test.dbt_analytics_engineering.relationships_int_inventory_product_product_id__product_id__ref_int_product_attributes_.96b32ae525": [], "test.dbt_analytics_engineering.not_null_int_inventory_product_product_name.b1cc316d19": [], "test.dbt_analytics_engineering.not_null_int_inventory_product_sku.38fee3ca77": [], "test.dbt_analytics_engineering.not_null_int_inventory_product_category.3b4559e898": [], "test.dbt_analytics_engineering.accepted_values_int_inventory_product_category__Electronics__Clothing__Kitchen__Office__Sports__Health__Beauty__Footwear__Toys__Bags__Unknown.fd70912290": [], "test.dbt_analytics_engineering.unique_int_product_attributes_product_id.8584b57f27": [], "test.dbt_analytics_engineering.not_null_int_product_attributes_product_id.d317fe9f5c": [], "test.dbt_analytics_engineering.unique_int_product_attributes_sku.46fd7012d5": [], "test.dbt_analytics_engineering.not_null_int_product_attributes_sku.4d167f66ec": [], "test.dbt_analytics_engineering.unique_int_product_attributes_product_name.ccc7fc48bd": [], "test.dbt_analytics_engineering.not_null_int_product_attributes_product_name.ab95611d88": [], "test.dbt_analytics_engineering.not_null_int_product_attributes_brand.c1dd65709d": [], "test.dbt_analytics_engineering.not_null_int_product_attributes_category.39f4905b43": [], "test.dbt_analytics_engineering.accepted_values_int_product_attributes_category__Bags__Beauty__Clothing__Electronics__Footwear__Health__Kitchen__Office__Sports__Toys.07ebbdc1f6": [], "test.dbt_analytics_engineering.not_null_int_product_attributes_sub_category.ec1e5bef03": [], "test.dbt_analytics_engineering.not_null_int_product_attributes_department.fad95d1e4c": [], "test.dbt_analytics_engineering.accepted_values_int_product_attributes_department__Apparel_Sports__Books_Office__Fitness_Outdoors__Health_Beauty__Home_Garden__Technology__Toys_Games.2b64b418f6": [], "test.dbt_analytics_engineering.not_null_int_product_attributes_launched_date.7175feb482": [], "model.dbt_analytics_engineering.int_return_processing": ["test.dbt_analytics_engineering.accepted_values_int_return_processing_restocked__Yes__No__Unknown.bcf59a1e1f", "test.dbt_analytics_engineering.accepted_values_int_return_processing_return_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.5fccc869d9", "test.dbt_analytics_engineering.not_null_int_return_processing_restocked.a169aa3d70", "test.dbt_analytics_engineering.not_null_int_return_processing_return_channel.4e70d8cedb", "test.dbt_analytics_engineering.not_null_int_return_processing_return_id.70a41fc821", "test.dbt_analytics_engineering.not_null_int_return_processing_return_reason.def074cf28", "test.dbt_analytics_engineering.not_null_int_return_processing_return_status.6d8d37f1d3", "test.dbt_analytics_engineering.unique_int_return_processing_return_id.7f07242ef7"], "model.dbt_analytics_engineering.int_return_transaction": ["test.dbt_analytics_engineering.not_null_int_return_transaction_customer_name.da820b6e0e", "test.dbt_analytics_engineering.not_null_int_return_transaction_product_name.973039b798", "test.dbt_analytics_engineering.not_null_int_return_transaction_return_date.0ceaab3215", "test.dbt_analytics_engineering.not_null_int_return_transaction_return_id.163631358b", "test.dbt_analytics_engineering.unique_int_return_transaction_return_id.28ded58b95"], "model.dbt_analytics_engineering.int_review_feedback": ["test.dbt_analytics_engineering.accepted_values_int_review_feedback_review_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.e21453d669", "test.dbt_analytics_engineering.not_null_int_review_feedback_review_channel.e637eee1d6", "test.dbt_analytics_engineering.not_null_int_review_feedback_review_id.7319c6feb3", "test.dbt_analytics_engineering.not_null_int_review_feedback_review_title.4b5134c5ca", "test.dbt_analytics_engineering.unique_int_review_feedback_review_id.abd37c25ad"], "model.dbt_analytics_engineering.int_store_operations": ["model.dbt_analytics_engineering.dim_stores", "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_cafe__True__False__Unknown.b02c35a29d", "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_parking__True__False__Unknown.3728409db2", "test.dbt_analytics_engineering.accepted_values_int_store_operations_is_active__True__False__Unknown.298394908a", "test.dbt_analytics_engineering.not_null_int_store_operations_has_cafe.6ebade018d", "test.dbt_analytics_engineering.not_null_int_store_operations_has_parking.94fffde25b", "test.dbt_analytics_engineering.not_null_int_store_operations_is_active.b4ed4559d5", "test.dbt_analytics_engineering.not_null_int_store_operations_store_id.4e3985d8f2", "test.dbt_analytics_engineering.unique_int_store_operations_store_id.2018d3ff75"], "test.dbt_analytics_engineering.unique_int_return_processing_return_id.7f07242ef7": [], "test.dbt_analytics_engineering.not_null_int_return_processing_return_id.70a41fc821": [], "test.dbt_analytics_engineering.not_null_int_return_processing_return_reason.def074cf28": [], "test.dbt_analytics_engineering.not_null_int_return_processing_return_channel.4e70d8cedb": [], "test.dbt_analytics_engineering.accepted_values_int_return_processing_return_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.5fccc869d9": [], "test.dbt_analytics_engineering.not_null_int_return_processing_restocked.a169aa3d70": [], "test.dbt_analytics_engineering.accepted_values_int_return_processing_restocked__Yes__No__Unknown.bcf59a1e1f": [], "test.dbt_analytics_engineering.not_null_int_return_processing_return_status.6d8d37f1d3": [], "test.dbt_analytics_engineering.unique_int_return_transaction_return_id.28ded58b95": [], "test.dbt_analytics_engineering.not_null_int_return_transaction_return_id.163631358b": [], "test.dbt_analytics_engineering.not_null_int_return_transaction_customer_name.da820b6e0e": [], "test.dbt_analytics_engineering.not_null_int_return_transaction_product_name.973039b798": [], "test.dbt_analytics_engineering.not_null_int_return_transaction_return_date.0ceaab3215": [], "test.dbt_analytics_engineering.unique_int_review_feedback_review_id.abd37c25ad": [], "test.dbt_analytics_engineering.not_null_int_review_feedback_review_id.7319c6feb3": [], "test.dbt_analytics_engineering.not_null_int_review_feedback_review_channel.e637eee1d6": [], "test.dbt_analytics_engineering.accepted_values_int_review_feedback_review_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.e21453d669": [], "test.dbt_analytics_engineering.not_null_int_review_feedback_review_title.4b5134c5ca": [], "test.dbt_analytics_engineering.unique_int_store_operations_store_id.2018d3ff75": [], "test.dbt_analytics_engineering.not_null_int_store_operations_store_id.4e3985d8f2": [], "test.dbt_analytics_engineering.not_null_int_store_operations_is_active.b4ed4559d5": [], "test.dbt_analytics_engineering.accepted_values_int_store_operations_is_active__True__False__Unknown.298394908a": [], "test.dbt_analytics_engineering.not_null_int_store_operations_has_parking.94fffde25b": [], "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_parking__True__False__Unknown.3728409db2": [], "test.dbt_analytics_engineering.not_null_int_store_operations_has_cafe.6ebade018d": [], "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_cafe__True__False__Unknown.b02c35a29d": [], "model.dbt_analytics_engineering.int_customer_profile": ["model.dbt_analytics_engineering.dim_customers", "test.dbt_analytics_engineering.accepted_values_int_customer_profile_gender__Male__Female__Non_Binary__Other__Unknown.68b6d3ed48", "test.dbt_analytics_engineering.not_null_int_customer_profile_first_name.601ca24c11", "test.dbt_analytics_engineering.not_null_int_customer_profile_gender.f510f79209", "test.dbt_analytics_engineering.not_null_int_customer_profile_last_name.406eccd58c"], "model.dbt_analytics_engineering.int_transaction_fulfillment": ["test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_order_date.2248138cc0", "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_transaction_id.6074867dc7", "test.dbt_analytics_engineering.unique_int_transaction_fulfillment_transaction_id.19535076ac"], "model.dbt_analytics_engineering.int_customer_segmentation": ["model.dbt_analytics_engineering.dim_customers", "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_customer_segment__Bronze__Silver__Gold__Platinum__Unknown.08c611db09", "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_is_active__True__False__Unknown.a740e8b8b9", "test.dbt_analytics_engineering.not_null_int_customer_segmentation_company.828a751ca9", "test.dbt_analytics_engineering.not_null_int_customer_segmentation_customer_segment.491592cc63", "test.dbt_analytics_engineering.not_null_int_customer_segmentation_is_active.6eae5bb04d"], "model.dbt_analytics_engineering.int_transaction_financial": ["test.dbt_analytics_engineering.not_null_int_transaction_financial_transaction_id.b0c6238393", "test.dbt_analytics_engineering.unique_int_transaction_financial_transaction_id.9f42b7645d"], "model.dbt_analytics_engineering.int_customer_location": ["model.dbt_analytics_engineering.dim_customers", "test.dbt_analytics_engineering.accepted_values_int_customer_location_country__United_States__Unknown.86cb2451d3", "test.dbt_analytics_engineering.accepted_values_int_customer_location_region__Midwest__Northeast__South__West.941ae25bfa", "test.dbt_analytics_engineering.not_null_int_customer_location_address.0477470aa5", "test.dbt_analytics_engineering.not_null_int_customer_location_city.8e1a6a4cee", "test.dbt_analytics_engineering.not_null_int_customer_location_country.39087bf4f2", "test.dbt_analytics_engineering.not_null_int_customer_location_region.bb382037e2", "test.dbt_analytics_engineering.not_null_int_customer_location_state.f7b75af023", "test.dbt_analytics_engineering.not_null_int_customer_location_state_abbr.15ac178793", "test.dbt_analytics_engineering.not_null_int_customer_location_zip_code.a7263a9e3a", "test.dbt_analytics_engineering.valid_zip_code"], "test.dbt_analytics_engineering.not_null_int_customer_profile_first_name.601ca24c11": [], "test.dbt_analytics_engineering.not_null_int_customer_profile_last_name.406eccd58c": [], "test.dbt_analytics_engineering.not_null_int_customer_profile_gender.f510f79209": [], "test.dbt_analytics_engineering.accepted_values_int_customer_profile_gender__Male__Female__Non_Binary__Other__Unknown.68b6d3ed48": [], "test.dbt_analytics_engineering.not_null_int_customer_segmentation_customer_segment.491592cc63": [], "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_customer_segment__Bronze__Silver__Gold__Platinum__Unknown.08c611db09": [], "test.dbt_analytics_engineering.not_null_int_customer_segmentation_company.828a751ca9": [], "test.dbt_analytics_engineering.not_null_int_customer_segmentation_is_active.6eae5bb04d": [], "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_is_active__True__False__Unknown.a740e8b8b9": [], "test.dbt_analytics_engineering.not_null_int_customer_location_address.0477470aa5": [], "test.dbt_analytics_engineering.not_null_int_customer_location_city.8e1a6a4cee": [], "test.dbt_analytics_engineering.not_null_int_customer_location_state_abbr.15ac178793": [], "test.dbt_analytics_engineering.not_null_int_customer_location_state.f7b75af023": [], "test.dbt_analytics_engineering.not_null_int_customer_location_zip_code.a7263a9e3a": [], "test.dbt_analytics_engineering.not_null_int_customer_location_country.39087bf4f2": [], "test.dbt_analytics_engineering.accepted_values_int_customer_location_country__United_States__Unknown.86cb2451d3": [], "test.dbt_analytics_engineering.not_null_int_customer_location_region.bb382037e2": [], "test.dbt_analytics_engineering.accepted_values_int_customer_location_region__Midwest__Northeast__South__West.941ae25bfa": [], "test.dbt_analytics_engineering.unique_int_transaction_fulfillment_transaction_id.19535076ac": [], "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_transaction_id.6074867dc7": [], "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_order_date.2248138cc0": [], "test.dbt_analytics_engineering.unique_int_transaction_financial_transaction_id.9f42b7645d": [], "test.dbt_analytics_engineering.not_null_int_transaction_financial_transaction_id.b0c6238393": [], "model.dbt_analytics_engineering.int_transaction_status": ["test.dbt_analytics_engineering.accepted_values_int_transaction_status_is_returned__True__False__Unknown.fcbf6be4ad", "test.dbt_analytics_engineering.accepted_values_int_transaction_status_order_status__Pending__Processing__Shipped__Delivered__Returned__Cancelled.d3263719c7", "test.dbt_analytics_engineering.not_null_int_transaction_status_is_returned.68242f5dfd", "test.dbt_analytics_engineering.not_null_int_transaction_status_order_status.e2edc43658", "test.dbt_analytics_engineering.not_null_int_transaction_status_promo_name.73af556bae", "test.dbt_analytics_engineering.not_null_int_transaction_status_transaction_id.307f36c18d", "test.dbt_analytics_engineering.unique_int_transaction_status_transaction_id.5a928112d7"], "model.dbt_analytics_engineering.int_customers_contact": ["model.dbt_analytics_engineering.dim_customers", "test.dbt_analytics_engineering.accepted_values_int_customers_contact_preferred_channel__Mobile_App__In_Store__Catalog__Website__Phone_Call__Unknown.1735c0ec9c", "test.dbt_analytics_engineering.not_null_int_customers_contact_email.7b842fa5e7", "test.dbt_analytics_engineering.not_null_int_customers_contact_phone.fe6527d505", "test.dbt_analytics_engineering.not_null_int_customers_contact_preferred_channel.ab818846a7"], "test.dbt_analytics_engineering.unique_int_transaction_status_transaction_id.5a928112d7": [], "test.dbt_analytics_engineering.not_null_int_transaction_status_transaction_id.307f36c18d": [], "test.dbt_analytics_engineering.not_null_int_transaction_status_promo_name.73af556bae": [], "test.dbt_analytics_engineering.not_null_int_transaction_status_order_status.e2edc43658": [], "test.dbt_analytics_engineering.accepted_values_int_transaction_status_order_status__Pending__Processing__Shipped__Delivered__Returned__Cancelled.d3263719c7": [], "test.dbt_analytics_engineering.not_null_int_transaction_status_is_returned.68242f5dfd": [], "test.dbt_analytics_engineering.accepted_values_int_transaction_status_is_returned__True__False__Unknown.fcbf6be4ad": [], "test.dbt_analytics_engineering.not_null_int_customers_contact_email.7b842fa5e7": [], "test.dbt_analytics_engineering.not_null_int_customers_contact_phone.fe6527d505": [], "test.dbt_analytics_engineering.not_null_int_customers_contact_preferred_channel.ab818846a7": [], "test.dbt_analytics_engineering.accepted_values_int_customers_contact_preferred_channel__Mobile_App__In_Store__Catalog__Website__Phone_Call__Unknown.1735c0ec9c": [], "source.dbt_analytics_engineering.bronze.customers": ["model.dbt_analytics_engineering.stg_customers"], "source.dbt_analytics_engineering.bronze.employees": ["model.dbt_analytics_engineering.stg_employees"], "source.dbt_analytics_engineering.bronze.inventory_snapshots": ["model.dbt_analytics_engineering.stg_inventory"], "source.dbt_analytics_engineering.bronze.products": ["model.dbt_analytics_engineering.stg_products"], "source.dbt_analytics_engineering.bronze.returns": ["model.dbt_analytics_engineering.stg_returns"], "source.dbt_analytics_engineering.bronze.reviews": ["model.dbt_analytics_engineering.stg_reviews"], "source.dbt_analytics_engineering.bronze.sales_transactions": ["model.dbt_analytics_engineering.stg_transactions"], "source.dbt_analytics_engineering.bronze.stores": ["model.dbt_analytics_engineering.stg_stores"]}, "group_map": {}, "saved_queries": {}, "semantic_models": {}, "unit_tests": {}, "functions": {}}
\ No newline at end of file
diff --git a/target/partial_parse.msgpack b/target/partial_parse.msgpack
new file mode 100644
index 0000000..ee775c7
Binary files /dev/null and b/target/partial_parse.msgpack differ
diff --git a/target/perf_info.json b/target/perf_info.json
new file mode 100644
index 0000000..caa7a1a
--- /dev/null
+++ b/target/perf_info.json
@@ -0,0 +1,56 @@
+{
+ "path_count": 258,
+ "parsed_path_count": 13,
+ "static_analysis_path_count": 10,
+ "static_analysis_parsed_path_count": 10,
+ "is_partial_parse_enabled": true,
+ "is_static_analysis_enabled": true,
+ "read_files_elapsed": 0.15386959899842623,
+ "load_macros_elapsed": 0.0016458659993077163,
+ "parse_project_elapsed": 1.9365297820004344,
+ "patch_sources_elapsed": 5.5652999435551465e-05,
+ "process_manifest_elapsed": 0.016926584001339506,
+ "load_all_elapsed": 2.8412363619972894,
+ "projects": [
+ {
+ "project_name": "dbt_analytics_engineering",
+ "elapsed": 1.9355608900041261,
+ "parsers": [
+ {
+ "parser": "model",
+ "elapsed": 0.6181939060006698,
+ "parsed_path_count": 10
+ },
+ {
+ "parser": "snapshot",
+ "elapsed": 0.5630835140000272,
+ "parsed_path_count": 1
+ },
+ {
+ "parser": "test",
+ "elapsed": 0.7542374869990454,
+ "parsed_path_count": 2
+ }
+ ],
+ "parsed_path_count": 13
+ },
+ {
+ "project_name": "dbt_sqlserver",
+ "elapsed": 0,
+ "parsers": [],
+ "parsed_path_count": 0
+ },
+ {
+ "project_name": "dbt",
+ "elapsed": 0,
+ "parsers": [],
+ "parsed_path_count": 0
+ },
+ {
+ "project_name": "dbt_utils",
+ "elapsed": 0,
+ "parsers": [],
+ "parsed_path_count": 0
+ }
+ ]
+}
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09.sql
new file mode 100644
index 0000000..7480f7a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_6729bb973ae89d874a72b985f26dfd09.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_b83b1e9561b73aa2e88a8099d4836e56_9659]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ region as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customer_location"
+ group by region
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Midwest'',''Northeast'',''South'',''West''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_b83b1e9561b73aa2e88a8099d4836e56_9659]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_b83b1e9561b73aa2e88a8099d4836e56_9659]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b.sql
new file mode 100644
index 0000000..d0916ab
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_l_898a62b7d28855309e3d6fc57eed5b3b.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_e855ff9e18667c9cc170f24eb1620e9f_10088]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ country as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customer_location"
+ group by country
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''United States'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_e855ff9e18667c9cc170f24eb1620e9f_10088]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_e855ff9e18667c9cc170f24eb1620e9f_10088]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977.sql
new file mode 100644
index 0000000..ff485f0
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_p_8484d88ec3e1ea168b31a1f750d09977.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a2710fd926020818cc6edc4642aa4eff_6551]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ gender as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customer_profile"
+ group by gender
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Male'',''Female'',''Non-Binary'',''Other'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a2710fd926020818cc6edc4642aa4eff_6551]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a2710fd926020818cc6edc4642aa4eff_6551]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04.sql
new file mode 100644
index 0000000..da4bd32
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_21ac60e78ecd22305e0f96329442cd04.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c0b162c85fc65675a79b4eaa1a999f26_18577]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ is_active as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customer_segmentation"
+ group by is_active
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''True'',''False'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c0b162c85fc65675a79b4eaa1a999f26_18577]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c0b162c85fc65675a79b4eaa1a999f26_18577]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7.sql
new file mode 100644
index 0000000..02bef3b
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customer_s_2729f708b54d062f9a6e7d8e9f570ee7.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_0670ac43ce3d30a7412ddd5eac318562_9587]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ customer_segment as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customer_segmentation"
+ group by customer_segment
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Bronze'',''Silver'',''Gold'',''Platinum'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_0670ac43ce3d30a7412ddd5eac318562_9587]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_0670ac43ce3d30a7412ddd5eac318562_9587]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47.sql
new file mode 100644
index 0000000..19db356
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/accepted_values_int_customers__adc6f6132fa24d0f68165d4e8d371c47.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_644b84621c8d19951d6974c090d7ab05_6763]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ preferred_channel as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_customers_contact"
+ group by preferred_channel
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Mobile App'',''In Store'',''Catalog'',''Website'',''Phone Call'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_644b84621c8d19951d6974c090d7ab05_6763]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_644b84621c8d19951d6974c090d7ab05_6763]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_address.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_address.sql
new file mode 100644
index 0000000..acd6f58
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_address.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_44954609380f14a3cbcbd287ddfaf028_9462]
+ as
+
+
+
+
+
+
+select address
+from "RetailDB"."bronze"."int_customer_location"
+where address is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_44954609380f14a3cbcbd287ddfaf028_9462]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_44954609380f14a3cbcbd287ddfaf028_9462]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_city.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_city.sql
new file mode 100644
index 0000000..2951ee3
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_city.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c55b208d5f730bb541dd35724d4af1e4_17198]
+ as
+
+
+
+
+
+
+select city
+from "RetailDB"."bronze"."int_customer_location"
+where city is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c55b208d5f730bb541dd35724d4af1e4_17198]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c55b208d5f730bb541dd35724d4af1e4_17198]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_country.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_country.sql
new file mode 100644
index 0000000..70808a0
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_country.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_ce1b50ce25f22d7042872659f8dfe41c_2091]
+ as
+
+
+
+
+
+
+select country
+from "RetailDB"."bronze"."int_customer_location"
+where country is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_ce1b50ce25f22d7042872659f8dfe41c_2091]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_ce1b50ce25f22d7042872659f8dfe41c_2091]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_region.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_region.sql
new file mode 100644
index 0000000..b10e48c
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_region.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a474a2fa4e3f937d1d2ad7da017ec060_8243]
+ as
+
+
+
+
+
+
+select region
+from "RetailDB"."bronze"."int_customer_location"
+where region is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a474a2fa4e3f937d1d2ad7da017ec060_8243]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a474a2fa4e3f937d1d2ad7da017ec060_8243]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state.sql
new file mode 100644
index 0000000..73b9e6c
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_f44054b1ff4ac6c90cbe7ae3cafaa25f_12936]
+ as
+
+
+
+
+
+
+select state
+from "RetailDB"."bronze"."int_customer_location"
+where state is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_f44054b1ff4ac6c90cbe7ae3cafaa25f_12936]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_f44054b1ff4ac6c90cbe7ae3cafaa25f_12936]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state_abbr.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state_abbr.sql
new file mode 100644
index 0000000..36d40f8
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_state_abbr.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_aa43af34375282406ff246813004b6cc_14260]
+ as
+
+
+
+
+
+
+select state_abbr
+from "RetailDB"."bronze"."int_customer_location"
+where state_abbr is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_aa43af34375282406ff246813004b6cc_14260]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_aa43af34375282406ff246813004b6cc_14260]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_zip_code.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_zip_code.sql
new file mode 100644
index 0000000..d2b41ca
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_location_zip_code.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_898a0599dee3990f84222a72f44edc4e_13768]
+ as
+
+
+
+
+
+
+select zip_code
+from "RetailDB"."bronze"."int_customer_location"
+where zip_code is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_898a0599dee3990f84222a72f44edc4e_13768]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_898a0599dee3990f84222a72f44edc4e_13768]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_date_of_birth.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_date_of_birth.sql
new file mode 100644
index 0000000..9897ddf
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_date_of_birth.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_138c0de329baa08aad9d0a8d0525e67a_17952]
+ as
+
+
+
+
+
+
+select date_of_birth
+from "RetailDB"."bronze"."int_customer_profile"
+where date_of_birth is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_138c0de329baa08aad9d0a8d0525e67a_17952]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_138c0de329baa08aad9d0a8d0525e67a_17952]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_first_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_first_name.sql
new file mode 100644
index 0000000..9bd3a77
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_first_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_64ae43b30cc4fbcf620ce2fa2f0c8612_1907]
+ as
+
+
+
+
+
+
+select first_name
+from "RetailDB"."bronze"."int_customer_profile"
+where first_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_64ae43b30cc4fbcf620ce2fa2f0c8612_1907]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_64ae43b30cc4fbcf620ce2fa2f0c8612_1907]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_gender.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_gender.sql
new file mode 100644
index 0000000..c0920d0
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_gender.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_b2c2a6cb21631be04f3326ae40e854b1_14660]
+ as
+
+
+
+
+
+
+select gender
+from "RetailDB"."bronze"."int_customer_profile"
+where gender is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_b2c2a6cb21631be04f3326ae40e854b1_14660]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_b2c2a6cb21631be04f3326ae40e854b1_14660]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_last_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_last_name.sql
new file mode 100644
index 0000000..d44ea5d
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_profile_last_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_40aa02b17af28292f7a8e69b81dc9a0f_9039]
+ as
+
+
+
+
+
+
+select last_name
+from "RetailDB"."bronze"."int_customer_profile"
+where last_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_40aa02b17af28292f7a8e69b81dc9a0f_9039]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_40aa02b17af28292f7a8e69b81dc9a0f_9039]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_company.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_company.sql
new file mode 100644
index 0000000..51075ad
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_company.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_030fca3c2ded2abbda113a0a9f3e9b9b_11911]
+ as
+
+
+
+
+
+
+select company
+from "RetailDB"."bronze"."int_customer_segmentation"
+where company is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_030fca3c2ded2abbda113a0a9f3e9b9b_11911]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_030fca3c2ded2abbda113a0a9f3e9b9b_11911]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_customer_segment.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_customer_segment.sql
new file mode 100644
index 0000000..ceaf4d1
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_customer_segment.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_83dd097b849ae2e91786a33fee0a59f3_18210]
+ as
+
+
+
+
+
+
+select customer_segment
+from "RetailDB"."bronze"."int_customer_segmentation"
+where customer_segment is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_83dd097b849ae2e91786a33fee0a59f3_18210]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_83dd097b849ae2e91786a33fee0a59f3_18210]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_is_active.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_is_active.sql
new file mode 100644
index 0000000..7c89028
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customer_segmentation_is_active.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_3bfcdff6bd0f291458b56f99b3698928_6209]
+ as
+
+
+
+
+
+
+select is_active
+from "RetailDB"."bronze"."int_customer_segmentation"
+where is_active is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_3bfcdff6bd0f291458b56f99b3698928_6209]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_3bfcdff6bd0f291458b56f99b3698928_6209]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_email.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_email.sql
new file mode 100644
index 0000000..d98c91d
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_email.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_0e1ba299d57cca0a58c6f9358b78cf09_3874]
+ as
+
+
+
+
+
+
+select email
+from "RetailDB"."bronze"."int_customers_contact"
+where email is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_0e1ba299d57cca0a58c6f9358b78cf09_3874]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_0e1ba299d57cca0a58c6f9358b78cf09_3874]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_phone.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_phone.sql
new file mode 100644
index 0000000..040e173
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_phone.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_40b9f02f6e8b7c65d3ee3310b004e532_10705]
+ as
+
+
+
+
+
+
+select phone
+from "RetailDB"."bronze"."int_customers_contact"
+where phone is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_40b9f02f6e8b7c65d3ee3310b004e532_10705]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_40b9f02f6e8b7c65d3ee3310b004e532_10705]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_preferred_channel.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_preferred_channel.sql
new file mode 100644
index 0000000..fbddb08
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/not_null_int_customers_contact_preferred_channel.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_3222e126a8cb65bd840f33b0a9952c43_16563]
+ as
+
+
+
+
+
+
+select preferred_channel
+from "RetailDB"."bronze"."int_customers_contact"
+where preferred_channel is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_3222e126a8cb65bd840f33b0a9952c43_16563]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_3222e126a8cb65bd840f33b0a9952c43_16563]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/valid_date_format_int_customer_profile_date_of_birth.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/valid_date_format_int_customer_profile_date_of_birth.sql
new file mode 100644
index 0000000..a11b7b8
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/_int__customers_models.yml/valid_date_format_int_customer_profile_date_of_birth.sql
@@ -0,0 +1,40 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_f05b5d8bfb44869107fde2b7d766dd53_17322]
+ as
+
+
+SELECT
+ *
+FROM "RetailDB"."bronze"."int_customer_profile"
+WHERE date_of_birth > ''1900-01-01''
+ AND date_of_birth < ''2100-01-01''
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_f05b5d8bfb44869107fde2b7d766dd53_17322]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_f05b5d8bfb44869107fde2b7d766dd53_17322]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customer_location.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customer_location.sql
new file mode 100644
index 0000000..3950fa1
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customer_location.sql
@@ -0,0 +1,133 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_customer_location__dbt_tmp__dbt_tmp_vw" AS -- ============================================================================
+-- Model: int_customer_location
+--
+-- Purpose:
+-- Creates a trusted customer location dataset by standardizing geographic
+-- attributes and resolving common data quality issues across customer
+-- addresses. This model corrects city name spelling errors, normalizes
+-- address formatting, validates state and ZIP code information, and
+-- standardizes country values into business-defined categories. The
+-- resulting dataset provides reliable geographic attributes for customer
+-- segmentation, regional reporting, sales analysis, and downstream
+-- dimensional models.
+--
+-- Maintainer: Ritik
+-- ============================================================================
+
+-- dbt.TitleCase is a custom function taht help me to convert string into title case
+SELECT
+ customer_id,
+
+ CASE
+ WHEN address IS NULL OR address = ''''
+ THEN ''Unknown''
+
+ ELSE TRIM(dbo.TitleCase(address))
+ END as address,
+
+ CASE
+ WHEN TRIM(LOWER(city)) = ''an diego'' THEN dbo.TitleCase(''san diego'')
+ WHEN TRIM(LOWER(city)) = ''chiago'' THEN dbo.TitleCase(''chicago'')
+ WHEN TRIM(LOWER(city)) = ''chrlotte'' THEN dbo.TitleCase(''charlotte'')
+ WHEN TRIM(LOWER(city)) = ''dalla'' THEN dbo.TitleCase(''dallas'')
+ WHEN TRIM(LOWER(city)) = ''inneapolis'' THEN dbo.TitleCase(''minneapolis'')
+ WHEN TRIM(LOWER(city)) = ''louiville'' THEN dbo.TitleCase(''louisville'')
+ WHEN TRIM(LOWER(city)) = ''milwakee'' THEN dbo.TitleCase(''milwaukee'')
+ WHEN TRIM(LOWER(city)) = ''mnneapolis'' THEN dbo.TitleCase(''minneapolis'')
+ WHEN TRIM(LOWER(city)) = ''oklahoma cty'' THEN dbo.TitleCase(''oklahoma city'')
+ WHEN TRIM(LOWER(city)) = ''ortland'' THEN dbo.TitleCase(''portland'')
+ WHEN TRIM(LOWER(city)) = ''sa diego'' THEN dbo.TitleCase(''san diego'')
+ WHEN TRIM(LOWER(city)) = ''san ntonio'' THEN dbo.TitleCase(''san antonio'')
+ WHEN TRIM(LOWER(city)) = ''sn antonio'' THEN dbo.TitleCase(''san antonio'')
+ WHEN TRIM(city) = '''' THEN ''Unknown''
+ WHEN city IS NULL THEN ''Unknown''
+ ELSE dbo.TitleCase(TRIM(city))
+ END AS city,
+
+ CASE
+ WHEN TRIM(UPPER(state_abbr)) IS NULL OR TRIM(UPPER(state_abbr)) = ''''
+ THEN ''Unknown''
+
+ WHEN LEN(TRIM(UPPER(state_abbr))) != 2
+ THEN ''Unknown''
+
+ ELSE TRIM(UPPER(state_abbr))
+ END as state_abbr,
+
+ CASE
+ WHEN TRIM(state_full) IS NULL OR TRIM(state_full) = ''''
+ THEN ''Unknown''
+
+ ELSE TRIM(state_full)
+ END AS state,
+
+ CASE
+ WHEN zip_code IS NULL
+ THEN 0
+
+ WHEN LEN(zip_code) != 5
+ THEN 0
+
+ WHEN TRY_CAST(zip_code AS INT) IS NULL
+ THEN 0
+
+ ELSE zip_code
+ END as zip_code,
+
+ CASE
+ WHEN
+ LOWER(TRIM(country))
+ IN (''u.s.a'', ''us'', ''usa'', ''united states'')
+ THEN ''United States''
+
+ ELSE ''Unknown''
+ END as country,
+
+ CASE
+ WHEN region IS NULL OR TRIM(region) = ''''
+ THEN ''Unknown''
+
+ ELSE TRIM(region)
+ END as region
+FROM "RetailDB"."bronze"."stg_customers" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_customer_location__dbt_tmp" FROM "RetailDB"."bronze"."int_customer_location__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_customer_location__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_customer_location__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_customer_location__dbt_tmp')
+ )
+ DROP index "bronze"."int_customer_location__dbt_tmp".bronze_int_customer_location__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_customer_location__dbt_tmp_cci
+ ON "bronze"."int_customer_location__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customer_profile.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customer_profile.sql
new file mode 100644
index 0000000..3615dfe
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customer_profile.sql
@@ -0,0 +1,124 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_customer_profile__dbt_tmp__dbt_tmp_vw" AS -- ============================================================================
+-- Model: int_customer_profile
+--
+-- Purpose:
+-- Creates a standardized customer profile dataset by applying business
+-- rules to personal customer attributes. This model derives first and last
+-- names from the full name, normalizes gender values into consistent
+-- categories, and converts multiple source date formats into a reliable
+-- DATE data type. The resulting dataset serves as a trusted foundation for
+-- customer demographics, segmentation, personalization, and downstream
+-- dimensional models.
+--
+-- Maintainer: Ritik
+-- ============================================================================
+
+SELECT
+ customer_id,
+ TRIM(title) as title,
+
+ CASE
+ WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), '' '', '''')) = 2
+ THEN PARSENAME(REPLACE(TRIM(full_name), '' '', ''.''), 2)
+
+ WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), '' '', '''')) = 1
+ THEN PARSENAME(REPLACE(TRIM(full_name), '' '', ''.''), 2)
+
+ END AS first_name,
+
+ PARSENAME(REPLACE(TRIM(full_name), '' '', ''.''), 1) AS last_name,
+
+ CASE
+ LOWER(TRIM(gender))
+
+ WHEN ''f'' THEN ''Female''
+ WHEN ''female'' THEN ''Female''
+ WHEN ''m'' THEN ''Male''
+ WHEN ''male'' THEN ''Male''
+ WHEN ''nb'' THEN ''Non-Binary''
+ WHEN ''non-binary'' THEN ''Non-Binary''
+ WHEN ''other'' THEN ''Other''
+ WHEN ''prefer not to say'' THEN ''Other''
+ ELSE ''Unknown''
+ END as gender,
+
+
+
+
+ CASE
+ WHEN TRIM(date_of_birth) LIKE ''[A-Z][a-z][a-z][a-z]% __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
+
+ WHEN TRIM(date_of_birth) LIKE ''[A-Z][a-z][a-z] __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
+
+ WHEN TRIM(date_of_birth) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 110)
+
+ WHEN TRIM(date_of_birth) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 105)
+
+ WHEN TRIM(date_of_birth) LIKE ''____-__-__''
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
+
+ WHEN TRIM(date_of_birth) LIKE ''____/__/__''
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
+
+ WHEN TRIM(date_of_birth) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 101)
+
+ WHEN TRIM(date_of_birth) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(date_of_birth), 101)
+
+ END
+
+ AS date_of_birth
+
+FROM "RetailDB"."bronze"."stg_customers" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_customer_profile__dbt_tmp" FROM "RetailDB"."bronze"."int_customer_profile__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_customer_profile__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_customer_profile__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_customer_profile__dbt_tmp')
+ )
+ DROP index "bronze"."int_customer_profile__dbt_tmp".bronze_int_customer_profile__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_customer_profile__dbt_tmp_cci
+ ON "bronze"."int_customer_profile__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customer_segmentation.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customer_segmentation.sql
new file mode 100644
index 0000000..c819fa1
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customer_segmentation.sql
@@ -0,0 +1,137 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_customer_segmentation__dbt_tmp__dbt_tmp_vw" AS -- ============================================================================
+-- Model: int_customer_segmentation
+--
+-- Purpose:
+-- Creates a standardized customer segmentation dataset by applying business
+-- rules to customer profile and account attributes. This model normalizes
+-- customer segments, imputes missing annual income using segment-level
+-- median values, standardizes company names and account status values, and
+-- converts inconsistent account creation dates into a reliable DATE format.
+-- The resulting dataset serves as a trusted foundation for customer
+-- segmentation, loyalty analysis, marketing analytics, and dimensional
+-- modeling.
+--
+-- Maintainer: Ritik
+-- ============================================================================
+SELECT
+ customer_id,
+ CASE
+ WHEN customer_segment IS NULL OR customer_segment = ''''
+ THEN ''Unknown''
+
+ ELSE customer_segment
+ END as customer_segment,
+
+ TRY_CAST(loyalty_points AS INT) as loyalty_points,
+
+ COALESCE(
+ annual_income_usd,
+ PERCENTILE_CONT(0.5)
+ WITHIN GROUP (ORDER BY annual_income_usd)
+ OVER (PARTITION BY customer_segment)
+ ) as annual_income_usd,
+
+ CASE
+ WHEN company IS NULL OR company = ''''
+ THEN ''Unknown''
+
+ WHEN TRIM(REPLACE(REPLACE(company, CHAR(13), ''''), CHAR(10), '''')) = ''''
+ THEN ''Unknown''
+
+ ELSE TRIM(REPLACE(REPLACE(company, CHAR(13), ''''), CHAR(10), ''''))
+ END as company,
+
+ CASE
+ WHEN
+ LOWER(TRIM(is_active))
+ IN (''1'', ''active'', ''true'', ''y'', ''yes'')
+ THEN ''True''
+
+ WHEN
+ LOWER(TRIM(is_active))
+ IN (''0'', ''inactive'', ''false'', ''n'', ''no'')
+ THEN ''False''
+
+ ELSE ''Unknown''
+ END AS is_active,
+
+
+
+
+ CASE
+ WHEN TRIM(account_created_date) LIKE ''[A-Z][a-z][a-z][a-z]% __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date))
+
+ WHEN TRIM(account_created_date) LIKE ''[A-Z][a-z][a-z] __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date))
+
+ WHEN TRIM(account_created_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(account_created_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date), 110)
+
+ WHEN TRIM(account_created_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(account_created_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date), 105)
+
+ WHEN TRIM(account_created_date) LIKE ''____-__-__''
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date))
+
+ WHEN TRIM(account_created_date) LIKE ''____/__/__''
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date))
+
+ WHEN TRIM(account_created_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(account_created_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date), 101)
+
+ WHEN TRIM(account_created_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(account_created_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(account_created_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(account_created_date), 101)
+
+ END
+
+ as account_created_date
+
+FROM "RetailDB"."bronze"."stg_customers" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_customer_segmentation__dbt_tmp" FROM "RetailDB"."bronze"."int_customer_segmentation__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_customer_segmentation__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_customer_segmentation__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_customer_segmentation__dbt_tmp')
+ )
+ DROP index "bronze"."int_customer_segmentation__dbt_tmp".bronze_int_customer_segmentation__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_customer_segmentation__dbt_tmp_cci
+ ON "bronze"."int_customer_segmentation__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customers_contact.sql b/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customers_contact.sql
new file mode 100644
index 0000000..81822ac
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Customers/int_customers_contact.sql
@@ -0,0 +1,175 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_customers_contact__dbt_tmp__dbt_tmp_vw" AS -- ============================================================================
+-- Model: int_customers_contact
+--
+-- Purpose:
+-- Creates a trusted customer contact dataset by validating, correcting, and
+-- standardizing customer communication attributes. This model repairs common
+-- email formatting issues and domain typographical errors, transforms phone
+-- numbers into a consistent business format, and normalizes preferred
+-- communication channels into standardized business categories. The resulting
+-- dataset provides reliable contact information for customer communication,
+-- marketing campaigns, CRM operations, and downstream analytical models.
+--
+-- Maintainer: Ritik
+-- ============================================================================
+SELECT
+ customer_id,
+
+ CASE
+ WHEN email IS NULL OR TRIM(email) = '''' THEN ''Unknown''
+ WHEN
+ LOWER(TRIM(email))
+ NOT LIKE ''%@%''
+ THEN ''Unknown''
+
+ WHEN PATINDEX(''%@%@%'',
+ LOWER(TRIM(email))
+) > 0
+ THEN
+ LEFT(
+ LOWER(TRIM(email))
+,CHARINDEX(''@'',
+ LOWER(TRIM(email))
+) - 1)
+ + ''@'' +
+ REPLACE(
+ SUBSTRING(
+
+ LOWER(TRIM(email))
+,
+ CHARINDEX(''@'',
+ LOWER(TRIM(email))
+) + 1,
+ LEN(email)),''@'','''')
+ ELSE
+ CONCAT(
+ LEFT(
+ LOWER(TRIM(email))
+,CHARINDEX(''@'',
+ LOWER(TRIM(email))
+) - 1), ''@'',
+ CASE
+ WHEN RIGHT(
+
+ LOWER(TRIM(email))
+,
+ LEN(TRIM(email)) - CHARINDEX(''@'', TRIM(email))) = ''yahoocom'' THEN ''yahoo.com''
+
+ WHEN RIGHT(
+
+ LOWER(TRIM(email))
+,
+ LEN(TRIM(email)) - CHARINDEX(''@'', TRIM(email))) = ''iclod.com'' THEN ''icloud.com''
+
+ WHEN RIGHT(
+
+ LOWER(TRIM(email))
+,
+ LEN(TRIM(email)) - CHARINDEX(''@'', TRIM(email))) = ''outook.com'' THEN ''outlook.com''
+
+ WHEN RIGHT(
+
+ LOWER(TRIM(email))
+,
+ LEN(TRIM(email)) - CHARINDEX(''@'', TRIM(email))) = ''ahoo.com'' THEN ''yahoo.com''
+
+ ELSE RIGHT(
+
+ LOWER(TRIM(email))
+,
+ LEN(TRIM(email)) - CHARINDEX(''@'', TRIM(email)))
+ END
+ )
+ END AS email,
+
+
+
+ CASE
+ WHEN TRIM(phone) LIKE ''+1__________''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 3, 3), '') '',
+ SUBSTRING(TRIM(phone), 6, 3),''-'',
+ SUBSTRING(TRIM(phone),9,4))
+
+ WHEN TRIM(phone) LIKE ''__________''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 1 ,3), '') '',
+ SUBSTRING(TRIM(phone), 4 ,3), ''-'',
+ SUBSTRING(TRIM(phone), 7, 4))
+
+ WHEN TRIM(phone) LIKE ''___-___-____''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 1, 3), '') '',
+ SUBSTRING(TRIM(phone), 5, 3), ''-'',
+ SUBSTRING(TRIM(phone), 9 ,4))
+
+ WHEN TRIM(phone) LIKE ''___.___.____''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 1, 3), '') '',
+ SUBSTRING(TRIM(phone), 5, 3), ''-'',
+ SUBSTRING(TRIM(phone),9, 4))
+
+ WHEN TRIM(phone) LIKE ''(___) ___-____''
+ THEN CONCAT(''+1 '', SUBSTRING(TRIM(phone), 1, 14))
+
+ WHEN TRIM(phone) IS NULL OR TRIM(phone) = ''''
+ THEN ''Unknown''
+
+ ELSE ''Unknown''
+ END
+ as phone,
+
+ CASE
+ LOWER(TRIM(preferred_channel))
+
+ WHEN ''app'' THEN ''Mobile App''
+ WHEN ''mobile app'' THEN ''Mobile App''
+ WHEN ''mobile'' THEN ''Mobile App''
+ WHEN ''in store'' THEN ''In Store''
+ WHEN ''in-store'' THEN ''In Store''
+ WHEN ''store'' THEN ''In Store''
+ WHEN ''catalog'' THEN ''Catalog''
+ WHEN ''online'' THEN ''Website''
+ WHEN ''web'' THEN ''Website''
+ WHEN ''phone'' THEN ''Phone Call''
+ ELSE ''Unknown''
+ END as preferred_channel
+
+FROM "RetailDB"."bronze"."stg_customers" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_customers_contact__dbt_tmp" FROM "RetailDB"."bronze"."int_customers_contact__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_customers_contact__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_customers_contact__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_customers_contact__dbt_tmp')
+ )
+ DROP index "bronze"."int_customers_contact__dbt_tmp".bronze_int_customers_contact__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_customers_contact__dbt_tmp_cci
+ ON "bronze"."int_customers_contact__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_email.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_email.sql
new file mode 100644
index 0000000..d3cfcb8
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_email.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_67bacecdd40ba5eefbedf8c0c2cd320a_15671]
+ as
+
+
+
+
+
+
+select email
+from "RetailDB"."bronze"."int_employee_contact"
+where email is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_67bacecdd40ba5eefbedf8c0c2cd320a_15671]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_67bacecdd40ba5eefbedf8c0c2cd320a_15671]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_employee_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_employee_id.sql
new file mode 100644
index 0000000..6163c2e
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_employee_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c280b070440e699ab4b0c2bbc0c1cc26_9056]
+ as
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."int_employee_contact"
+where employee_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c280b070440e699ab4b0c2bbc0c1cc26_9056]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c280b070440e699ab4b0c2bbc0c1cc26_9056]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_phone.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_phone.sql
new file mode 100644
index 0000000..14ce8af
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/not_null_int_employee_contact_phone.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_0ead4f9afe061ce02d990b9d02ff482f_8881]
+ as
+
+
+
+
+
+
+select phone
+from "RetailDB"."bronze"."int_employee_contact"
+where phone is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_0ead4f9afe061ce02d990b9d02ff482f_8881]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_0ead4f9afe061ce02d990b9d02ff482f_8881]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/unique_int_employee_contact_employee_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/unique_int_employee_contact_employee_id.sql
new file mode 100644
index 0000000..7d1106c
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employee_contact.yml/unique_int_employee_contact_employee_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_cee894ee56ee47246d0601369b52d99d_2019]
+ as
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_employee_contact"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_cee894ee56ee47246d0601369b52d99d_2019]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_cee894ee56ee47246d0601369b52d99d_2019]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f.sql
new file mode 100644
index 0000000..0ba337f
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_2b2179f2486fcae05a3f8a8feefbd65f.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_9e081eefdc97e29e440e98074e93a409_17565]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ job_title as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_employee_employment"
+ group by job_title
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Account Executive'',''Customer Advisor'',''Regional Manager'',''Sales Associate'',''Sales Consultant'',''Sales Manager'',''Sales Representative'',''Senior Sales Associate'',''Store Manager''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_9e081eefdc97e29e440e98074e93a409_17565]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_9e081eefdc97e29e440e98074e93a409_17565]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc.sql
new file mode 100644
index 0000000..e56d5c6
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_3c73b09f91ea0c654728af4442c4d6fc.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_2bceb98ba9b54cb9d6506fee840ca95a_17253]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ department as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_employee_employment"
+ group by department
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Customer Service'',''Management'',''Operations'',''Sales'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_2bceb98ba9b54cb9d6506fee840ca95a_17253]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_2bceb98ba9b54cb9d6506fee840ca95a_17253]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2.sql
new file mode 100644
index 0000000..8a59c38
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_e_97e2a5bd9618c758001231d627c193c2.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a1ada8d68c4d0d656759d2f8c27ff7b7_6782]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ performance_rating as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_employee_employment"
+ group by performance_rating
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Excellent'',''Good'',''Average'',''Below Average'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a1ada8d68c4d0d656759d2f8c27ff7b7_6782]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a1ada8d68c4d0d656759d2f8c27ff7b7_6782]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_employment_is_active__True__False.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_employment_is_active__True__False.sql
new file mode 100644
index 0000000..6ed4bdb
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/accepted_values_int_employee_employment_is_active__True__False.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_1c3f1e32c7fd4d15af046e17b31d04b9_3182]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ is_active as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_employee_employment"
+ group by is_active
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''True'',''False''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_1c3f1e32c7fd4d15af046e17b31d04b9_3182]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_1c3f1e32c7fd4d15af046e17b31d04b9_3182]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_email.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_email.sql
new file mode 100644
index 0000000..35f9165
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_email.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_67bacecdd40ba5eefbedf8c0c2cd320a_18815]
+ as
+
+
+
+
+
+
+select email
+from "RetailDB"."bronze"."int_employee_contact"
+where email is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_67bacecdd40ba5eefbedf8c0c2cd320a_18815]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_67bacecdd40ba5eefbedf8c0c2cd320a_18815]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_employee_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_employee_id.sql
new file mode 100644
index 0000000..e46b1dc
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_employee_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c280b070440e699ab4b0c2bbc0c1cc26_5284]
+ as
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."int_employee_contact"
+where employee_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c280b070440e699ab4b0c2bbc0c1cc26_5284]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c280b070440e699ab4b0c2bbc0c1cc26_5284]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_phone.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_phone.sql
new file mode 100644
index 0000000..a83ec31
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_contact_phone.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_0ead4f9afe061ce02d990b9d02ff482f_5572]
+ as
+
+
+
+
+
+
+select phone
+from "RetailDB"."bronze"."int_employee_contact"
+where phone is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_0ead4f9afe061ce02d990b9d02ff482f_5572]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_0ead4f9afe061ce02d990b9d02ff482f_5572]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_annual_salary_usd.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_annual_salary_usd.sql
new file mode 100644
index 0000000..6017cac
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_annual_salary_usd.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_8f8cd2a6a9fcc17d1d71b32dcd21f708_13569]
+ as
+
+
+
+
+
+
+select annual_salary_usd
+from "RetailDB"."bronze"."int_employee_employment"
+where annual_salary_usd is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_8f8cd2a6a9fcc17d1d71b32dcd21f708_13569]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_8f8cd2a6a9fcc17d1d71b32dcd21f708_13569]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_commission_rate_pct.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_commission_rate_pct.sql
new file mode 100644
index 0000000..eff6640
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_commission_rate_pct.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_b6064928ebe535392d7d73b8b3264ccc_14362]
+ as
+
+
+
+
+
+
+select commission_rate_pct
+from "RetailDB"."bronze"."int_employee_employment"
+where commission_rate_pct is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_b6064928ebe535392d7d73b8b3264ccc_14362]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_b6064928ebe535392d7d73b8b3264ccc_14362]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_department.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_department.sql
new file mode 100644
index 0000000..be59158
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_department.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_962699dcbdb4a5b5b123d9b5b6547512_14838]
+ as
+
+
+
+
+
+
+select department
+from "RetailDB"."bronze"."int_employee_employment"
+where department is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_962699dcbdb4a5b5b123d9b5b6547512_14838]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_962699dcbdb4a5b5b123d9b5b6547512_14838]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_employee_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_employee_id.sql
new file mode 100644
index 0000000..017201f
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_employee_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_6b7697cd6027cfe4573bf04c2321c53b_7985]
+ as
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."int_employee_employment"
+where employee_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_6b7697cd6027cfe4573bf04c2321c53b_7985]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_6b7697cd6027cfe4573bf04c2321c53b_7985]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_is_active.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_is_active.sql
new file mode 100644
index 0000000..73eb59e
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_is_active.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_8e3eb709d5879177bedcd7623578c784_17412]
+ as
+
+
+
+
+
+
+select is_active
+from "RetailDB"."bronze"."int_employee_employment"
+where is_active is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_8e3eb709d5879177bedcd7623578c784_17412]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_8e3eb709d5879177bedcd7623578c784_17412]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_job_title.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_job_title.sql
new file mode 100644
index 0000000..c7ebb7a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_job_title.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_372c8d4e326a6a233bba9d9576df3420_4720]
+ as
+
+
+
+
+
+
+select job_title
+from "RetailDB"."bronze"."int_employee_employment"
+where job_title is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_372c8d4e326a6a233bba9d9576df3420_4720]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_372c8d4e326a6a233bba9d9576df3420_4720]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_city.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_city.sql
new file mode 100644
index 0000000..001abd0
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_city.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_d470aeb7368a1565611d218fb11db17d_9522]
+ as
+
+
+
+
+
+
+select store_city
+from "RetailDB"."bronze"."int_employee_employment"
+where store_city is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_d470aeb7368a1565611d218fb11db17d_9522]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_d470aeb7368a1565611d218fb11db17d_9522]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_name.sql
new file mode 100644
index 0000000..28aa840
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_employment_store_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_b908411dcb6b8c8120237be11372adc2_4475]
+ as
+
+
+
+
+
+
+select store_name
+from "RetailDB"."bronze"."int_employee_employment"
+where store_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_b908411dcb6b8c8120237be11372adc2_4475]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_b908411dcb6b8c8120237be11372adc2_4475]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_employee_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_employee_id.sql
new file mode 100644
index 0000000..1d014a0
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_employee_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_9f017e65951ef5a184aa7f5ea7bc2009_9479]
+ as
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."int_employee_profile"
+where employee_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_9f017e65951ef5a184aa7f5ea7bc2009_9479]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_9f017e65951ef5a184aa7f5ea7bc2009_9479]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_first_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_first_name.sql
new file mode 100644
index 0000000..2bf5111
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_first_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a2eb893c688d2973f90e45b2ed0920cd_12937]
+ as
+
+
+
+
+
+
+select first_name
+from "RetailDB"."bronze"."int_employee_profile"
+where first_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a2eb893c688d2973f90e45b2ed0920cd_12937]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a2eb893c688d2973f90e45b2ed0920cd_12937]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_hire_date.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_hire_date.sql
new file mode 100644
index 0000000..1b9b82a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_hire_date.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_91506ac3bf41368247eb9564fd8be441_3073]
+ as
+
+
+
+
+
+
+select hire_date
+from "RetailDB"."bronze"."int_employee_profile"
+where hire_date is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_91506ac3bf41368247eb9564fd8be441_3073]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_91506ac3bf41368247eb9564fd8be441_3073]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_last_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_last_name.sql
new file mode 100644
index 0000000..8337c07
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/not_null_int_employee_profile_last_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_0796cc6a9c586a75e106fb436074c355_10601]
+ as
+
+
+
+
+
+
+select last_name
+from "RetailDB"."bronze"."int_employee_profile"
+where last_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_0796cc6a9c586a75e106fb436074c355_10601]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_0796cc6a9c586a75e106fb436074c355_10601]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1.sql
new file mode 100644
index 0000000..b0c4bde
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/relationships_int_employee_emp_6a54003883314abc0d3a639b96de36b1.sql
@@ -0,0 +1,57 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_7b48248fbaea55f4b45f6b7f255ba955_3054]
+ as
+
+
+
+
+with child as (
+ select store_id as from_field
+ from "RetailDB"."bronze"."int_employee_employment"
+ where store_id is not null
+),
+
+parent as (
+ select store_id as to_field
+ from "RetailDB"."bronze"."int_store_profile"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_7b48248fbaea55f4b45f6b7f255ba955_3054]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_7b48248fbaea55f4b45f6b7f255ba955_3054]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_contact_employee_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_contact_employee_id.sql
new file mode 100644
index 0000000..106aee4
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_contact_employee_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_cee894ee56ee47246d0601369b52d99d_18657]
+ as
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_employee_contact"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_cee894ee56ee47246d0601369b52d99d_18657]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_cee894ee56ee47246d0601369b52d99d_18657]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_employment_employee_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_employment_employee_id.sql
new file mode 100644
index 0000000..80f3665
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_employment_employee_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_d733af1db6c540eef65a9a586f04662d_12004]
+ as
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_employee_employment"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_d733af1db6c540eef65a9a586f04662d_12004]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_d733af1db6c540eef65a9a586f04662d_12004]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_profile_employee_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_profile_employee_id.sql
new file mode 100644
index 0000000..356bab1
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/_int_employees_models.yml/unique_int_employee_profile_employee_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_ff43648b24694d98810e7cd70353c6d8_9480]
+ as
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_employee_profile"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_ff43648b24694d98810e7cd70353c6d8_9480]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_ff43648b24694d98810e7cd70353c6d8_9480]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/int_employee_contact.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/int_employee_contact.sql
new file mode 100644
index 0000000..11f94e9
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/int_employee_contact.sql
@@ -0,0 +1,110 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_employee_contact__dbt_tmp__dbt_tmp_vw" AS SELECT
+ employee_id,
+
+ CASE
+ WHEN email IS NULL OR
+
+ LOWER(TRIM(email))
+ = '''' THEN ''Unknown''
+
+ WHEN email NOT LIKE ''%@%''
+ THEN ''Unknown''
+
+ WHEN PATINDEX(''%@%@%'',
+ LOWER(TRIM(email))
+) > 0
+ THEN
+ LEFT(
+ LOWER(TRIM(email))
+, CHARINDEX(''@'',
+ LOWER(TRIM(email))
+) -1)
+ + ''@'' + REPLACE(SUBSTRING(
+ LOWER(TRIM(email))
+, CHARINDEX(''@'',
+ LOWER(TRIM(email))
+) +1,
+ LEN(
+ LOWER(TRIM(email))
+)), ''@'' ,'''')
+
+ ELSE
+ LOWER(TRIM(email))
+
+
+ END as email,
+
+
+
+ CASE
+ WHEN TRIM(phone) LIKE ''+1__________''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 3, 3), '') '',
+ SUBSTRING(TRIM(phone), 6, 3),''-'',
+ SUBSTRING(TRIM(phone),9,4))
+
+ WHEN TRIM(phone) LIKE ''__________''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 1 ,3), '') '',
+ SUBSTRING(TRIM(phone), 4 ,3), ''-'',
+ SUBSTRING(TRIM(phone), 7, 4))
+
+ WHEN TRIM(phone) LIKE ''___-___-____''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 1, 3), '') '',
+ SUBSTRING(TRIM(phone), 5, 3), ''-'',
+ SUBSTRING(TRIM(phone), 9 ,4))
+
+ WHEN TRIM(phone) LIKE ''___.___.____''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 1, 3), '') '',
+ SUBSTRING(TRIM(phone), 5, 3), ''-'',
+ SUBSTRING(TRIM(phone),9, 4))
+
+ WHEN TRIM(phone) LIKE ''(___) ___-____''
+ THEN CONCAT(''+1 '', SUBSTRING(TRIM(phone), 1, 14))
+
+ WHEN TRIM(phone) IS NULL OR TRIM(phone) = ''''
+ THEN ''Unknown''
+
+ ELSE ''Unknown''
+ END
+ as phone
+FROM "RetailDB"."bronze"."stg_employees" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_employee_contact__dbt_tmp" FROM "RetailDB"."bronze"."int_employee_contact__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_employee_contact__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_employee_contact__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_employee_contact__dbt_tmp')
+ )
+ DROP index "bronze"."int_employee_contact__dbt_tmp".bronze_int_employee_contact__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_employee_contact__dbt_tmp_cci
+ ON "bronze"."int_employee_contact__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/int_employee_employment.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/int_employee_employment.sql
new file mode 100644
index 0000000..46610bb
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/int_employee_employment.sql
@@ -0,0 +1,122 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_employee_employment__dbt_tmp__dbt_tmp_vw" AS SELECT
+ employee_id,
+
+ CASE
+ WHEN job_title IS NULL OR job_title = '''' THEN ''Unknown''
+ ELSE TRIM(job_title)
+ END as job_title,
+
+ CASE
+ WHEN department IS NULL OR department = '''' THEN ''Unknown''
+ ELSE TRIM(department)
+ END as department,
+
+ CASE
+ WHEN store_id < 0 OR TRY_CONVERT(INT, store_id) IS NULL THEN NULL
+ ELSE TRY_CONVERT(INT, store_id)
+ END as store_id,
+
+ CASE
+ WHEN store_name IS NULL OR store_name = '''' THEN ''Unknown''
+ ELSE TRIM(store_name)
+ END as store_name,
+
+ CASE
+ WHEN store_city IS NULL OR LEN(store_city) < 4 OR store_city = '''' THEN ''Unknown''
+ ELSE TRIM(store_city)
+ END store_city,
+
+ CASE
+ WHEN annual_salary_usd IS NULL
+ OR TRY_CONVERT(DECIMAL(18,2), annual_salary_usd) IS NULL
+ OR TRY_CONVERT(DECIMAL(18,2), annual_salary_usd) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(18,2), annual_salary_usd)
+ END AS annual_salary_usd,
+
+ CASE
+ WHEN commission_rate_pct IS NULL
+ OR TRY_CONVERT(DECIMAL(4,2), commission_rate_pct) IS NULL
+ OR TRY_CONVERT(DECIMAL(4,2), commission_rate_pct) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(4,2), commission_rate_pct)
+ END AS commission_rate_pct,
+
+ CASE
+ WHEN
+ LOWER(TRIM(performance_rating))
+ IN (''excellent'', ''a'', ''5'') THEN ''Excellent''
+ WHEN
+ LOWER(TRIM(performance_rating))
+ IN (''good'', ''b'', ''4'') THEN ''Good''
+ WHEN
+ LOWER(TRIM(performance_rating))
+ IN (''average'', ''c'', ''3'') THEN ''Average''
+ WHEN
+ LOWER(TRIM(performance_rating))
+ IN (''below average'', ''d'', ''2'') THEN ''Below Average''
+ WHEN performance_rating IS NULL OR TRIM(performance_rating) = '''' THEN ''Unknown''
+ ELSE ''Unknown''
+ END AS performance_rating,
+
+ CASE
+ WHEN years_employed IS NULL
+ OR TRY_CONVERT(DECIMAL(4,2), years_employed) IS NULL
+ OR TRY_CONVERT(DECIMAL(4,2), years_employed) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(4,2), TRY_CONVERT(DECIMAL(4,2), years_employed))
+ END years_employed,
+
+ CASE
+ WHEN TRY_CONVERT(INT ,manager_id) IS NULL THEN NULL
+ ELSE manager_id
+ END as manager_id,
+
+ CASE
+ WHEN
+ LOWER(TRIM(is_active))
+ IN (''active'', ''y'', ''yes'', ''1'', ''true'') THEN ''True''
+ WHEN
+ LOWER(TRIM(is_active))
+ IN (''terminated'', ''n'', ''no'', ''0'', ''false'') THEN ''False''
+ ELSE NULL
+ END AS is_active
+FROM "RetailDB"."bronze"."stg_employees" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_employee_employment__dbt_tmp" FROM "RetailDB"."bronze"."int_employee_employment__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_employee_employment__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_employee_employment__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_employee_employment__dbt_tmp')
+ )
+ DROP index "bronze"."int_employee_employment__dbt_tmp".bronze_int_employee_employment__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_employee_employment__dbt_tmp_cci
+ ON "bronze"."int_employee_employment__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Employees/int_employee_profile.sql b/target/run/dbt_analytics_engineering/models/intermediate/Employees/int_employee_profile.sql
new file mode 100644
index 0000000..a2b373a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Employees/int_employee_profile.sql
@@ -0,0 +1,88 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_employee_profile__dbt_tmp__dbt_tmp_vw" AS SELECT
+ employee_id,
+
+ CASE
+ WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), '' '','''')) = 1 THEN PARSENAME(REPLACE(TRIM(full_name), '' '', ''.''), 2)
+ END as first_name,
+
+ PARSENAME(REPLACE(TRIM(full_name),'' '',''.''),1) as last_name,
+
+
+
+
+ CASE
+ WHEN TRIM(hire_date) LIKE ''[A-Z][a-z][a-z][a-z]% __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(hire_date))
+
+ WHEN TRIM(hire_date) LIKE ''[A-Z][a-z][a-z] __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(hire_date))
+
+ WHEN TRIM(hire_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(hire_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(hire_date), 110)
+
+ WHEN TRIM(hire_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(hire_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(hire_date), 105)
+
+ WHEN TRIM(hire_date) LIKE ''____-__-__''
+ THEN TRY_CONVERT(DATE, TRIM(hire_date))
+
+ WHEN TRIM(hire_date) LIKE ''____/__/__''
+ THEN TRY_CONVERT(DATE, TRIM(hire_date))
+
+ WHEN TRIM(hire_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(hire_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(hire_date), 101)
+
+ WHEN TRIM(hire_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(hire_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(hire_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(hire_date), 101)
+
+ END
+
+ as hire_date
+FROM "RetailDB"."bronze"."stg_employees" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_employee_profile__dbt_tmp" FROM "RetailDB"."bronze"."int_employee_profile__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_employee_profile__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_employee_profile__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_employee_profile__dbt_tmp')
+ )
+ DROP index "bronze"."int_employee_profile__dbt_tmp".bronze_int_employee_profile__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_employee_profile__dbt_tmp_cci
+ ON "bronze"."int_employee_profile__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438.sql
new file mode 100644
index 0000000..388f887
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/accepted_values_int_inventory__f81ad297686042bcf94bcf0e27dbb438.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a4425523c5e1536fe659a65f16d402a8_12248]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ category as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_inventory_product"
+ group by category
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Electronics'',''Clothing'',''Kitchen'',''Office'',''Sports'',''Health'',''Beauty'',''Footwear'',''Toys'',''Bags'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a4425523c5e1536fe659a65f16d402a8_12248]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a4425523c5e1536fe659a65f16d402a8_12248]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_category.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_category.sql
new file mode 100644
index 0000000..5a0859a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_category.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_39b3fe474196ec4386572cfef8dbead3_3031]
+ as
+
+
+
+
+
+
+select category
+from "RetailDB"."bronze"."int_inventory_product"
+where category is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_39b3fe474196ec4386572cfef8dbead3_3031]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_39b3fe474196ec4386572cfef8dbead3_3031]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_inventory_snapshot_sk.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..fcc3850
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_inventory_snapshot_sk.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_9e717169e893e7a375cfa42d69c31b19_12963]
+ as
+
+
+
+
+
+
+select inventory_snapshot_sk
+from "RetailDB"."bronze"."int_inventory_product"
+where inventory_snapshot_sk is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_9e717169e893e7a375cfa42d69c31b19_12963]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_9e717169e893e7a375cfa42d69c31b19_12963]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_id.sql
new file mode 100644
index 0000000..f72dc6a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_2a59d6beb1f4336b7e8721a84e70bc36_13182]
+ as
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_inventory_product"
+where product_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_2a59d6beb1f4336b7e8721a84e70bc36_13182]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_2a59d6beb1f4336b7e8721a84e70bc36_13182]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_name.sql
new file mode 100644
index 0000000..920d0f4
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_product_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_53d810dc6f571d49521505151e3aae96_12189]
+ as
+
+
+
+
+
+
+select product_name
+from "RetailDB"."bronze"."int_inventory_product"
+where product_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_53d810dc6f571d49521505151e3aae96_12189]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_53d810dc6f571d49521505151e3aae96_12189]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_sku.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_sku.sql
new file mode 100644
index 0000000..0184b25
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_sku.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c890f88e489830c23758ff9b2e518177_11592]
+ as
+
+
+
+
+
+
+select sku
+from "RetailDB"."bronze"."int_inventory_product"
+where sku is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c890f88e489830c23758ff9b2e518177_11592]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c890f88e489830c23758ff9b2e518177_11592]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_snapshot_date.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_snapshot_date.sql
new file mode 100644
index 0000000..88efb98
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_product_snapshot_date.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_14321c710060eec1e0186335589c0575_14548]
+ as
+
+
+
+
+
+
+select snapshot_date
+from "RetailDB"."bronze"."int_inventory_product"
+where snapshot_date is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_14321c710060eec1e0186335589c0575_14548]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_14321c710060eec1e0186335589c0575_14548]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_stock_inventory_snapshot_sk.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_stock_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..556697c
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_stock_inventory_snapshot_sk.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_262c9b4254cb7b6010aa01f86df7e82d_15285]
+ as
+
+
+
+
+
+
+select inventory_snapshot_sk
+from "RetailDB"."bronze"."int_inventory_stock"
+where inventory_snapshot_sk is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_262c9b4254cb7b6010aa01f86df7e82d_15285]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_262c9b4254cb7b6010aa01f86df7e82d_15285]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_inventory_snapshot_sk.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..ddc90a2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_inventory_snapshot_sk.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_3fbb5086d26eb5a70ef5ff337a9aa899_17767]
+ as
+
+
+
+
+
+
+select inventory_snapshot_sk
+from "RetailDB"."bronze"."int_inventory_valuation"
+where inventory_snapshot_sk is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_3fbb5086d26eb5a70ef5ff337a9aa899_17767]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_3fbb5086d26eb5a70ef5ff337a9aa899_17767]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_warehouse_location.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_warehouse_location.sql
new file mode 100644
index 0000000..ecf8618
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/not_null_int_inventory_valuation_warehouse_location.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c5b2d311898e2646396650a2f00ced23_11068]
+ as
+
+
+
+
+
+
+select warehouse_location
+from "RetailDB"."bronze"."int_inventory_valuation"
+where warehouse_location is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c5b2d311898e2646396650a2f00ced23_11068]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c5b2d311898e2646396650a2f00ced23_11068]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d.sql
new file mode 100644
index 0000000..dc77828
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/relationships_int_inventory_pr_867c5822acc5351dbc4e38c73873196d.sql
@@ -0,0 +1,57 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_87bf273caa4112fd9143e7829b70f0ab_16764]
+ as
+
+
+
+
+with child as (
+ select product_id as from_field
+ from "RetailDB"."bronze"."int_inventory_product"
+ where product_id is not null
+),
+
+parent as (
+ select product_id as to_field
+ from "RetailDB"."bronze"."int_product_attributes"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_87bf273caa4112fd9143e7829b70f0ab_16764]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_87bf273caa4112fd9143e7829b70f0ab_16764]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_product_inventory_snapshot_sk.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_product_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..b3f66c0
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_product_inventory_snapshot_sk.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_b90abe8a6741b12ea65e74d235ad05ab_7198]
+ as
+
+
+
+
+select
+ inventory_snapshot_sk as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_inventory_product"
+where inventory_snapshot_sk is not null
+group by inventory_snapshot_sk
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_b90abe8a6741b12ea65e74d235ad05ab_7198]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_b90abe8a6741b12ea65e74d235ad05ab_7198]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_stock_inventory_snapshot_sk.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_stock_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..c277b6d
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_stock_inventory_snapshot_sk.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_ffb0f608ddc5a666ce22b14a776835cb_17559]
+ as
+
+
+
+
+select
+ inventory_snapshot_sk as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_inventory_stock"
+where inventory_snapshot_sk is not null
+group by inventory_snapshot_sk
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_ffb0f608ddc5a666ce22b14a776835cb_17559]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_ffb0f608ddc5a666ce22b14a776835cb_17559]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_valuation_inventory_snapshot_sk.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_valuation_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..1ff39f4
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/_int_inventory_models.yml/unique_int_inventory_valuation_inventory_snapshot_sk.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c2dabd76b6f51fdd334dad8ec3719d01_16108]
+ as
+
+
+
+
+select
+ inventory_snapshot_sk as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_inventory_valuation"
+where inventory_snapshot_sk is not null
+group by inventory_snapshot_sk
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c2dabd76b6f51fdd334dad8ec3719d01_16108]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c2dabd76b6f51fdd334dad8ec3719d01_16108]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_product.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_product.sql
new file mode 100644
index 0000000..d28b211
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_product.sql
@@ -0,0 +1,131 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_inventory_product__dbt_tmp__dbt_tmp_vw" AS SELECT
+ inventory_snapshot_sk,
+
+
+
+
+ CASE
+ WHEN TRIM(snapshot_date) LIKE ''[A-Z][a-z][a-z][a-z]% __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date))
+
+ WHEN TRIM(snapshot_date) LIKE ''[A-Z][a-z][a-z] __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date))
+
+ WHEN TRIM(snapshot_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(snapshot_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 110)
+
+ WHEN TRIM(snapshot_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(snapshot_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 105)
+
+ WHEN TRIM(snapshot_date) LIKE ''____-__-__''
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date))
+
+ WHEN TRIM(snapshot_date) LIKE ''____/__/__''
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date))
+
+ WHEN TRIM(snapshot_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(snapshot_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 101)
+
+ WHEN TRIM(snapshot_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(snapshot_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(snapshot_date), 101)
+
+ END
+
+ as snapshot_date,
+
+ CASE
+ WHEN TRY_CONVERT(INT, product_id) IS NULL THEN NULL
+ ELSE TRY_CONVERT(INT, product_id)
+ END as product_id,
+
+ CASE
+ WHEN product_name IS NULL OR product_name = '''' THEN ''Unknown''
+ ELSE TRIM(product_name)
+ END as product_name,
+
+ CASE
+ WHEN sku IS NULL OR sku = '''' THEN ''Unknown''
+ ELSE TRIM(sku)
+ END as sku,
+
+ CASE
+ WHEN
+ LOWER(TRIM(category))
+ = ''electronics'' THEN ''Electronics''
+ WHEN
+ LOWER(TRIM(category))
+ = ''clothing'' THEN ''Clothing''
+ WHEN
+ LOWER(TRIM(category))
+ = ''kitchen'' THEN ''Kitchen''
+ WHEN
+ LOWER(TRIM(category))
+ = ''office'' THEN ''Office''
+ WHEN
+ LOWER(TRIM(category))
+ = ''sports'' THEN ''Sports''
+ WHEN
+ LOWER(TRIM(category))
+ = ''health'' THEN ''Health''
+ WHEN
+ LOWER(TRIM(category))
+ = ''beauty'' THEN ''Beauty''
+ WHEN
+ LOWER(TRIM(category))
+ = ''footwear'' THEN ''Footwear''
+ WHEN
+ LOWER(TRIM(category))
+ = ''toys'' THEN ''Toys''
+ WHEN
+ LOWER(TRIM(category))
+ = ''bags'' THEN ''Bags''
+ ELSE ''Unknown''
+ END AS category
+FROM "RetailDB"."bronze"."stg_inventory" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_inventory_product__dbt_tmp" FROM "RetailDB"."bronze"."int_inventory_product__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_inventory_product__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_inventory_product__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_inventory_product__dbt_tmp')
+ )
+ DROP index "bronze"."int_inventory_product__dbt_tmp".bronze_int_inventory_product__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_inventory_product__dbt_tmp_cci
+ ON "bronze"."int_inventory_product__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_stock.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_stock.sql
new file mode 100644
index 0000000..a00f5d6
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_stock.sql
@@ -0,0 +1,69 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_inventory_stock__dbt_tmp__dbt_tmp_vw" AS WITH inventory as
+(
+SELECT
+ inventory_snapshot_sk,
+
+ CASE
+ WHEN TRY_CONVERT(INT, stock_on_hand) IS NULL OR TRY_CONVERT(INT, stock_on_hand) < 0 THEN NULL
+ ELSE TRY_CONVERT(INT, stock_on_hand)
+ END AS stock_on_hand,
+
+ CASE
+ WHEN TRY_CONVERT(INT, stock_reserved) < 0 OR TRY_CONVERT(INT, stock_reserved) IS NULL THEN NULL
+ ELSE TRY_CONVERT(INT, stock_reserved)
+ END as stock_reserved,
+
+ CASE
+ WHEN TRY_CONVERT(INT, reorder_level) IS NULL OR TRY_CONVERT(INT, reorder_level) < 0 THEN NULL
+ ELSE TRY_CONVERT(INT, reorder_level)
+ END as reorder_level
+FROM "RetailDB"."bronze"."stg_inventory"
+)
+SELECT
+ inventory_snapshot_sk,
+ stock_on_hand,
+ stock_reserved,
+ stock_on_hand - stock_reserved AS stock_available,
+ reorder_level
+FROM inventory;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_inventory_stock__dbt_tmp" FROM "RetailDB"."bronze"."int_inventory_stock__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_inventory_stock__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_inventory_stock__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_inventory_stock__dbt_tmp')
+ )
+ DROP index "bronze"."int_inventory_stock__dbt_tmp".bronze_int_inventory_stock__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_inventory_stock__dbt_tmp_cci
+ ON "bronze"."int_inventory_stock__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_valuation.sql b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_valuation.sql
new file mode 100644
index 0000000..02528ed
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Inventory/int_inventory_valuation.sql
@@ -0,0 +1,80 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_inventory_valuation__dbt_tmp__dbt_tmp_vw" AS WITH inventory_valuation AS
+(
+ SELECT
+ inventory_snapshot_sk,
+ CASE
+ WHEN unit_cost LIKE ''$%'' THEN TRY_CONVERT(DECIMAL(10, 2), SUBSTRING(unit_cost, 2, LEN(unit_cost)))
+ ELSE TRY_CONVERT(DECIMAL(10, 2), unit_cost)
+ END as unit_cost,
+
+ CASE
+ WHEN TRY_CONVERT(DECIMAL(10,2), unit_price) IS NULL THEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(unit_price, '','', ''''), ''$'', ''''))
+ ELSE TRY_CONVERT(DECIMAL(10, 2), unit_price)
+ END as unit_price,
+
+ CASE
+ WHEN TRY_CONVERT(INT, stock_on_hand) IS NULL OR stock_on_hand < 0 THEN NULL
+ ELSE TRY_CONVERT(INT, stock_on_hand)
+ END AS stock_on_hand,
+
+ CASE
+ WHEN warehouse_location IS NULL OR warehouse_location = '''' THEN ''Unknown''
+ ELSE UPPER(warehouse_location)
+ END as warehouse_location,
+
+ CASE
+ WHEN store_id IS NULL OR store_id = '''' THEN NULL
+ ELSE TRY_CONVERT(INT, store_id)
+ END as store_id
+
+ FROM "RetailDB"."bronze"."stg_inventory"
+)
+SELECT
+ inventory_snapshot_sk,
+ unit_cost,
+ unit_price,
+ unit_price * stock_on_hand as inventory_value,
+ warehouse_location,
+ store_id
+FROM inventory_valuation;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_inventory_valuation__dbt_tmp" FROM "RetailDB"."bronze"."int_inventory_valuation__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_inventory_valuation__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_inventory_valuation__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_inventory_valuation__dbt_tmp')
+ )
+ DROP index "bronze"."int_inventory_valuation__dbt_tmp".bronze_int_inventory_valuation__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_inventory_valuation__dbt_tmp_cci
+ ON "bronze"."int_inventory_valuation__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf.sql
new file mode 100644
index 0000000..1e4d2a2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_897168244695f47ed533f8bea60ff0bf.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_2083b38443f8da3110c72c24c4247815_9309]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ department as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_product_attributes"
+ group by department
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Apparel & Sports'',''Books & Office'',''Fitness & Outdoors'',''Health & Beauty'',''Home & Garden'',''Technology'',''Toys & Games''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_2083b38443f8da3110c72c24c4247815_9309]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_2083b38443f8da3110c72c24c4247815_9309]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8.sql
new file mode 100644
index 0000000..d7ae3ac
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_at_d3a51373266bbe8ff8165be928d855d8.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_34295cf42755f3347be0327c9122b632_9584]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ category as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_product_attributes"
+ group by category
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Bags'',''Beauty'',''Clothing'',''Electronics'',''Footwear'',''Health'',''Kitchen'',''Office'',''Sports'',''Toys''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_34295cf42755f3347be0327c9122b632_9584]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_34295cf42755f3347be0327c9122b632_9584]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564.sql
new file mode 100644
index 0000000..9cd0200
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/accepted_values_int_product_in_4e847b83a902e2587b1856c3b561a564.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_dc3b54dcbbb27f00b8ea0ef8b88a6f42_5969]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ is_available as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_product_inventory"
+ group by is_available
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Available'',''Not Available'',''Discontinued'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_dc3b54dcbbb27f00b8ea0ef8b88a6f42_5969]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_dc3b54dcbbb27f00b8ea0ef8b88a6f42_5969]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_brand.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_brand.sql
new file mode 100644
index 0000000..5d5a1bd
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_brand.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_e8a48b6b7dce1dc9b9ef228ce214eb7e_1633]
+ as
+
+
+
+
+
+
+select brand
+from "RetailDB"."bronze"."int_product_attributes"
+where brand is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_e8a48b6b7dce1dc9b9ef228ce214eb7e_1633]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_e8a48b6b7dce1dc9b9ef228ce214eb7e_1633]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_category.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_category.sql
new file mode 100644
index 0000000..0fc15a1
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_category.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_9d9af22f778be9a9d70ecec03dcb7933_1733]
+ as
+
+
+
+
+
+
+select category
+from "RetailDB"."bronze"."int_product_attributes"
+where category is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_9d9af22f778be9a9d70ecec03dcb7933_1733]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_9d9af22f778be9a9d70ecec03dcb7933_1733]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_department.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_department.sql
new file mode 100644
index 0000000..4ab03d1
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_department.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a8cbc7c5c567b698bb029754bfe386ee_1834]
+ as
+
+
+
+
+
+
+select department
+from "RetailDB"."bronze"."int_product_attributes"
+where department is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a8cbc7c5c567b698bb029754bfe386ee_1834]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a8cbc7c5c567b698bb029754bfe386ee_1834]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_launched_date.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_launched_date.sql
new file mode 100644
index 0000000..29b58d9
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_launched_date.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c638e7831ed50bf9c949d3d6bf589e1f_18122]
+ as
+
+
+
+
+
+
+select launched_date
+from "RetailDB"."bronze"."int_product_attributes"
+where launched_date is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c638e7831ed50bf9c949d3d6bf589e1f_18122]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c638e7831ed50bf9c949d3d6bf589e1f_18122]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_id.sql
new file mode 100644
index 0000000..f60e473
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_cd01b832717ea17d827ce75da6cef9a7_3504]
+ as
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_product_attributes"
+where product_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_cd01b832717ea17d827ce75da6cef9a7_3504]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_cd01b832717ea17d827ce75da6cef9a7_3504]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_name.sql
new file mode 100644
index 0000000..362c946
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_product_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_5d42f92f196b2696ddd8d00a65af10f4_1486]
+ as
+
+
+
+
+
+
+select product_name
+from "RetailDB"."bronze"."int_product_attributes"
+where product_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_5d42f92f196b2696ddd8d00a65af10f4_1486]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_5d42f92f196b2696ddd8d00a65af10f4_1486]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sku.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sku.sql
new file mode 100644
index 0000000..8c86a07
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sku.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_d07a8c3860389653b989d5693c9e7394_12874]
+ as
+
+
+
+
+
+
+select sku
+from "RetailDB"."bronze"."int_product_attributes"
+where sku is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_d07a8c3860389653b989d5693c9e7394_12874]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_d07a8c3860389653b989d5693c9e7394_12874]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sub_category.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sub_category.sql
new file mode 100644
index 0000000..38ef5ac
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_attributes_sub_category.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_2db3a6a7bc322de59daa692b5ce851c1_13540]
+ as
+
+
+
+
+
+
+select sub_category
+from "RetailDB"."bronze"."int_product_attributes"
+where sub_category is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_2db3a6a7bc322de59daa692b5ce851c1_13540]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_2db3a6a7bc322de59daa692b5ce851c1_13540]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_inventory_product_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_inventory_product_id.sql
new file mode 100644
index 0000000..1c76a03
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_inventory_product_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_30dde6930ccad163fa5c5f243d699210_7077]
+ as
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_product_inventory"
+where product_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_30dde6930ccad163fa5c5f243d699210_7077]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_30dde6930ccad163fa5c5f243d699210_7077]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_pricing_product_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_pricing_product_id.sql
new file mode 100644
index 0000000..2db93d4
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_pricing_product_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_1c37c3473bfa761d8809fab2373eff1f_6074]
+ as
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_product_pricing"
+where product_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_1c37c3473bfa761d8809fab2373eff1f_6074]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_1c37c3473bfa761d8809fab2373eff1f_6074]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_supplier_product_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_supplier_product_id.sql
new file mode 100644
index 0000000..25d5a3c
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/not_null_int_product_supplier_product_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_5d630f8e73079b1f27ab815e55878f17_16410]
+ as
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_product_supplier"
+where product_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_5d630f8e73079b1f27ab815e55878f17_16410]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_5d630f8e73079b1f27ab815e55878f17_16410]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_id.sql
new file mode 100644
index 0000000..5bef537
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_33df84c91289b8b85e6c818bdea5c28f_13734]
+ as
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_attributes"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_33df84c91289b8b85e6c818bdea5c28f_13734]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_33df84c91289b8b85e6c818bdea5c28f_13734]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_name.sql
new file mode 100644
index 0000000..a6e9286
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_product_name.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_6a7f613207c7d59e1f90b6fa502e24c6_10129]
+ as
+
+
+
+
+select
+ product_name as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_attributes"
+where product_name is not null
+group by product_name
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_6a7f613207c7d59e1f90b6fa502e24c6_10129]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_6a7f613207c7d59e1f90b6fa502e24c6_10129]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_sku.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_sku.sql
new file mode 100644
index 0000000..24b95ef
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_attributes_sku.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_dea158c8e73949d9483e4427f3cabbdb_2399]
+ as
+
+
+
+
+select
+ sku as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_attributes"
+where sku is not null
+group by sku
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_dea158c8e73949d9483e4427f3cabbdb_2399]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_dea158c8e73949d9483e4427f3cabbdb_2399]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_inventory_product_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_inventory_product_id.sql
new file mode 100644
index 0000000..f773e98
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_inventory_product_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_bfb007ff1f444b48b3f37ac3dc6cba80_18175]
+ as
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_inventory"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_bfb007ff1f444b48b3f37ac3dc6cba80_18175]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_bfb007ff1f444b48b3f37ac3dc6cba80_18175]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_pricing_product_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_pricing_product_id.sql
new file mode 100644
index 0000000..17d1024
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_pricing_product_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_e539b5560bbe3dd1deb1c6abdbaebece_12669]
+ as
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_pricing"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_e539b5560bbe3dd1deb1c6abdbaebece_12669]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_e539b5560bbe3dd1deb1c6abdbaebece_12669]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_supplier_product_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_supplier_product_id.sql
new file mode 100644
index 0000000..5ef86dd
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/_int_products_models.yml/unique_int_product_supplier_product_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_493bd2f2e6a04f7beec3136138675d5d_3928]
+ as
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_product_supplier"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_493bd2f2e6a04f7beec3136138675d5d_3928]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_493bd2f2e6a04f7beec3136138675d5d_3928]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_attributes.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_attributes.sql
new file mode 100644
index 0000000..5ee63d1
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_attributes.sql
@@ -0,0 +1,122 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_product_attributes__dbt_tmp__dbt_tmp_vw" AS SELECT
+ CASE
+ WHEN TRY_CONVERT(INT, product_id) IS NULL THEN NULL
+ ELSE TRY_CONVERT(INT, product_id)
+ END as product_id,
+
+ CASE
+ WHEN TRIM(sku) = '''' OR sku IS NULL OR LEN(TRIM(sku)) != 13 THEN ''Unknown''
+ ELSE TRIM(UPPER(sku))
+ END as sku,
+
+ CASE
+ WHEN TRIM(product_name) = '''' OR product_name IS NULL THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(product_name))
+ END as product_name,
+
+ CASE
+ WHEN TRIM(brand) = '''' OR brand IS NULL THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(brand))
+ END as brand,
+
+ CASE
+ WHEN category IS NULL OR TRIM(category) = '''' THEN ''Unknown''
+ ELSE TRIM(dbo.titleCase(category))
+ END AS category,
+
+ CASE
+ WHEN sub_category IS NULL OR TRIM(sub_category) = '''' THEN ''Unknown''
+ ELSE dbo.TitleCase(TRIM(sub_category))
+ END AS sub_category,
+
+ CASE
+ WHEN department IS NULL OR TRIM(department) = '''' THEN ''Unknown''
+ ELSE dbo.TitleCase(TRIM(department))
+ END AS department,
+
+
+
+
+ CASE
+ WHEN TRIM(launched_date) LIKE ''[A-Z][a-z][a-z][a-z]% __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(launched_date))
+
+ WHEN TRIM(launched_date) LIKE ''[A-Z][a-z][a-z] __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(launched_date))
+
+ WHEN TRIM(launched_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(launched_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(launched_date), 110)
+
+ WHEN TRIM(launched_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(launched_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(launched_date), 105)
+
+ WHEN TRIM(launched_date) LIKE ''____-__-__''
+ THEN TRY_CONVERT(DATE, TRIM(launched_date))
+
+ WHEN TRIM(launched_date) LIKE ''____/__/__''
+ THEN TRY_CONVERT(DATE, TRIM(launched_date))
+
+ WHEN TRIM(launched_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(launched_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(launched_date), 101)
+
+ WHEN TRIM(launched_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(launched_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(launched_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(launched_date), 101)
+
+ END
+
+ as launched_date,
+
+ CASE
+ WHEN product_url IS NULL OR TRIM(product_url) = '''' OR product_url NOT LIKE ''https://%'' THEN ''Unknown''
+ ELSE REPLACE(REPLACE(
+ LOWER(TRIM(product_url))
+, CHAR(13), ''''),CHAR(10), '''')
+ END as product_url
+FROM "RetailDB"."bronze"."stg_products" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_product_attributes__dbt_tmp" FROM "RetailDB"."bronze"."int_product_attributes__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_product_attributes__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_product_attributes__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_product_attributes__dbt_tmp')
+ )
+ DROP index "bronze"."int_product_attributes__dbt_tmp".bronze_int_product_attributes__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_product_attributes__dbt_tmp_cci
+ ON "bronze"."int_product_attributes__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_inventory.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_inventory.sql
new file mode 100644
index 0000000..1fa5b31
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_inventory.sql
@@ -0,0 +1,67 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_product_inventory__dbt_tmp__dbt_tmp_vw" AS SELECT
+ product_id,
+
+ CASE
+ WHEN
+ LOWER(TRIM(is_available))
+ IN (''a'',''y'',''ye'',''1'',''t'',''tr'',''in'',''i'') THEN ''Available''
+ WHEN
+ LOWER(TRIM(is_available))
+ IN (''n'',''no'',''o'',''ou'') THEN ''Not Available''
+ WHEN
+ LOWER(TRIM(is_available))
+ IN (''d'',''di'') THEN ''Discontinued''
+ ELSE ''Unknown''
+ END AS is_available,
+
+ CASE
+ WHEN stock_quantity IS NULL OR TRY_CONVERT(INT , stock_quantity) IS NULL OR TRY_CONVERT(INT , stock_quantity) < 0 THEN NULL
+ ELSE TRY_CONVERT(INT , stock_quantity)
+ END AS stock_quantity,
+
+ CASE
+ WHEN reorder_level IS NULL OR TRY_CONVERT(INT , reorder_level) IS NULL OR TRY_CONVERT(INT , reorder_level) < 0 THEN NULL
+ ELSE TRY_CONVERT(INT , reorder_level)
+ END AS reorder_level
+FROM "RetailDB"."bronze"."stg_products" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_product_inventory__dbt_tmp" FROM "RetailDB"."bronze"."int_product_inventory__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_product_inventory__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_product_inventory__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_product_inventory__dbt_tmp')
+ )
+ DROP index "bronze"."int_product_inventory__dbt_tmp".bronze_int_product_inventory__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_product_inventory__dbt_tmp_cci
+ ON "bronze"."int_product_inventory__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_pricing.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_pricing.sql
new file mode 100644
index 0000000..574a8dc
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_pricing.sql
@@ -0,0 +1,62 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_product_pricing__dbt_tmp__dbt_tmp_vw" AS SELECT
+ product_id,
+
+ CASE
+ WHEN base_price_usd IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, '','', ''''),''$'', '''')) IS NULL THEN NULL
+ WHEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, '','', ''''),''$'', '''')) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, '','', ''''),''$'', ''''))
+ END AS base_price_usd,
+
+ CASE
+ WHEN cost_price_usd IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, '','', ''''),''$'', '''')) IS NULL THEN NULL
+ WHEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, '','', ''''),''$'', '''')) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, '','', ''''),''$'', ''''))
+ END AS cost_price_usd,
+
+ CASE
+ WHEN gross_margin_pct IS NULL OR TRY_CONVERT(DECIMAL(5,1), gross_margin_pct) IS NULL THEN NULL
+ WHEN TRY_CONVERT(DECIMAL(5,1), gross_margin_pct) > 100 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(5,1), gross_margin_pct)
+ END AS gross_margin_pct
+FROM "RetailDB"."bronze"."stg_products" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_product_pricing__dbt_tmp" FROM "RetailDB"."bronze"."int_product_pricing__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_product_pricing__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_product_pricing__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_product_pricing__dbt_tmp')
+ )
+ DROP index "bronze"."int_product_pricing__dbt_tmp".bronze_int_product_pricing__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_product_pricing__dbt_tmp_cci
+ ON "bronze"."int_product_pricing__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_supplier.sql b/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_supplier.sql
new file mode 100644
index 0000000..8bb3752
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Products/int_product_supplier.sql
@@ -0,0 +1,75 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_product_supplier__dbt_tmp__dbt_tmp_vw" AS SELECT
+ product_id,
+
+ CASE
+ WHEN supplier_name IS NULL OR TRIM(supplier_name) = '''' THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(supplier_name))
+ END as supplier_name,
+
+ CASE
+ WHEN supplier_country IS NULL OR TRIM(supplier_country) = '''' THEN ''Unknown''
+ WHEN supplier_country = ''USA'' THEN ''United States''
+ ELSE TRIM(dbo.TitleCase(supplier_country))
+ END as supplier_country,
+
+ CASE
+ WHEN TRY_CONVERT(DECIMAL(5,2), weight_kg) IS NULL OR TRY_CONVERT(DECIMAL(5,2), weight_kg) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(5,2), weight_kg)
+ END as weight_kg,
+
+ CASE
+ WHEN TRY_CONVERT(INT, warranty_years) IS NULL OR TRY_CONVERT(INT, warranty_years) < 0 OR TRY_CONVERT(INT, warranty_years) > 20 THEN NULL
+ ELSE TRY_CONVERT(INT, warranty_years)
+ END as warranty_years,
+
+ CASE
+ WHEN TRY_CONVERT(DECIMAL(3,1), rating_avg) IS NULL OR TRY_CONVERT(DECIMAL(3,1), rating_avg) < 0 OR TRY_CONVERT(DECIMAL(3,1), rating_avg) > 5 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(3,1), rating_avg)
+ END as rating_avg,
+
+ CASE
+ WHEN TRY_CONVERT(INT, review_count) IS NULL OR TRY_CONVERT(INT, review_count) < 0 THEN NULL
+ ELSE TRY_CONVERT(INT, review_count)
+ END as review_count
+FROM "RetailDB"."bronze"."stg_products" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_product_supplier__dbt_tmp" FROM "RetailDB"."bronze"."int_product_supplier__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_product_supplier__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_product_supplier__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_product_supplier__dbt_tmp')
+ )
+ DROP index "bronze"."int_product_supplier__dbt_tmp".bronze_int_product_supplier__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_product_supplier__dbt_tmp_cci
+ ON "bronze"."int_product_supplier__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d.sql
new file mode 100644
index 0000000..d5b7459
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_5959acab9ce3794641f5ac11c9ef143d.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_65bf5bc998bbca4c34bd697649259695_3442]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ return_channel as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_return_processing"
+ group by return_channel
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Mobile App'',''In Store'',''Online'',''Phone Call'',''Catalog'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_65bf5bc998bbca4c34bd697649259695_3442]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_65bf5bc998bbca4c34bd697649259695_3442]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b.sql
new file mode 100644
index 0000000..c3ebcbd
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_pro_6bd7a55fad769af26a1f8125ae67c60b.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_793423fe8f7609c699731c0a1017bf14_3071]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ restocked as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_return_processing"
+ group by restocked
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Yes'',''No'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_793423fe8f7609c699731c0a1017bf14_3071]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_793423fe8f7609c699731c0a1017bf14_3071]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d.sql
new file mode 100644
index 0000000..660e3e3
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/accepted_values_int_return_ref_7b6569a9bd314b2921f6e78a928daa4d.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_281725be2d109519267eb3fc62057a0d_10891]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ refund_method as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_return_refund"
+ group by refund_method
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Cash'',''Original Payment'',''Store Credit''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_281725be2d109519267eb3fc62057a0d_10891]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_281725be2d109519267eb3fc62057a0d_10891]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_restocked.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_restocked.sql
new file mode 100644
index 0000000..7faf654
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_restocked.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_2ba76eb41715c05f04d05492a1ff1cc7_16477]
+ as
+
+
+
+
+
+
+select restocked
+from "RetailDB"."bronze"."int_return_processing"
+where restocked is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_2ba76eb41715c05f04d05492a1ff1cc7_16477]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_2ba76eb41715c05f04d05492a1ff1cc7_16477]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_channel.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_channel.sql
new file mode 100644
index 0000000..5f0447c
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_channel.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_d63d61a4932c3c9aabbd33f28d0bd698_14332]
+ as
+
+
+
+
+
+
+select return_channel
+from "RetailDB"."bronze"."int_return_processing"
+where return_channel is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_d63d61a4932c3c9aabbd33f28d0bd698_14332]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_d63d61a4932c3c9aabbd33f28d0bd698_14332]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_id.sql
new file mode 100644
index 0000000..b36dbf6
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_8ca406645d78f4f36f69f43acd3b397c_4685]
+ as
+
+
+
+
+
+
+select return_id
+from "RetailDB"."bronze"."int_return_processing"
+where return_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_8ca406645d78f4f36f69f43acd3b397c_4685]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_8ca406645d78f4f36f69f43acd3b397c_4685]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_reason.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_reason.sql
new file mode 100644
index 0000000..c6ab3d0
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_reason.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_6e159989ab3b3a3b54339986cf2b31f0_1365]
+ as
+
+
+
+
+
+
+select return_reason
+from "RetailDB"."bronze"."int_return_processing"
+where return_reason is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_6e159989ab3b3a3b54339986cf2b31f0_1365]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_6e159989ab3b3a3b54339986cf2b31f0_1365]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_status.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_status.sql
new file mode 100644
index 0000000..ea84e32
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_processing_return_status.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_4701d8da399d32ccd3a7390107f6d8bd_12891]
+ as
+
+
+
+
+
+
+select return_status
+from "RetailDB"."bronze"."int_return_processing"
+where return_status is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_4701d8da399d32ccd3a7390107f6d8bd_12891]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_4701d8da399d32ccd3a7390107f6d8bd_12891]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_refund_method.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_refund_method.sql
new file mode 100644
index 0000000..4e2fcbb
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_refund_method.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_04fb8b35ff51cef14196fe4a86cc8e3d_7370]
+ as
+
+
+
+
+
+
+select refund_method
+from "RetailDB"."bronze"."int_return_refund"
+where refund_method is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_04fb8b35ff51cef14196fe4a86cc8e3d_7370]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_04fb8b35ff51cef14196fe4a86cc8e3d_7370]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_return_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_return_id.sql
new file mode 100644
index 0000000..9788e93
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_refund_return_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_570a9ab87419596d94f888210feccaa4_16218]
+ as
+
+
+
+
+
+
+select return_id
+from "RetailDB"."bronze"."int_return_refund"
+where return_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_570a9ab87419596d94f888210feccaa4_16218]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_570a9ab87419596d94f888210feccaa4_16218]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_customer_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_customer_name.sql
new file mode 100644
index 0000000..64685e2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_customer_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_e1a53e000c06171b0e75c780be985eaf_2954]
+ as
+
+
+
+
+
+
+select customer_name
+from "RetailDB"."bronze"."int_return_transaction"
+where customer_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_e1a53e000c06171b0e75c780be985eaf_2954]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_e1a53e000c06171b0e75c780be985eaf_2954]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_product_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_product_name.sql
new file mode 100644
index 0000000..e839d8f
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_product_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_b3698707793d4d4b3dafe4fcd875b316_3225]
+ as
+
+
+
+
+
+
+select product_name
+from "RetailDB"."bronze"."int_return_transaction"
+where product_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_b3698707793d4d4b3dafe4fcd875b316_3225]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_b3698707793d4d4b3dafe4fcd875b316_3225]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_date.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_date.sql
new file mode 100644
index 0000000..7296826
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_date.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_9c8f8ef906a0885023f6e9bf5afe613e_18214]
+ as
+
+
+
+
+
+
+select return_date
+from "RetailDB"."bronze"."int_return_transaction"
+where return_date is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_9c8f8ef906a0885023f6e9bf5afe613e_18214]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_9c8f8ef906a0885023f6e9bf5afe613e_18214]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_id.sql
new file mode 100644
index 0000000..07ae5f7
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/not_null_int_return_transaction_return_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_40d1d3c17fa63975116efe78ebc97304_8397]
+ as
+
+
+
+
+
+
+select return_id
+from "RetailDB"."bronze"."int_return_transaction"
+where return_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_40d1d3c17fa63975116efe78ebc97304_8397]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_40d1d3c17fa63975116efe78ebc97304_8397]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_processing_return_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_processing_return_id.sql
new file mode 100644
index 0000000..757dea6
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_processing_return_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_0a420f23f1751fbd8e6a4d27bef95ba3_4332]
+ as
+
+
+
+
+select
+ return_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_return_processing"
+where return_id is not null
+group by return_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_0a420f23f1751fbd8e6a4d27bef95ba3_4332]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_0a420f23f1751fbd8e6a4d27bef95ba3_4332]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_refund_return_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_refund_return_id.sql
new file mode 100644
index 0000000..47fb687
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_refund_return_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_49ea0a9b15a3b5a6c26774b185f971d4_11028]
+ as
+
+
+
+
+select
+ return_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_return_refund"
+where return_id is not null
+group by return_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_49ea0a9b15a3b5a6c26774b185f971d4_11028]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_49ea0a9b15a3b5a6c26774b185f971d4_11028]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_transaction_return_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_transaction_return_id.sql
new file mode 100644
index 0000000..44636e5
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/_int_returns_models.yml/unique_int_return_transaction_return_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_7cf4940d697d0d7d9b2f50c0199812b3_8816]
+ as
+
+
+
+
+select
+ return_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_return_transaction"
+where return_id is not null
+group by return_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_7cf4940d697d0d7d9b2f50c0199812b3_8816]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_7cf4940d697d0d7d9b2f50c0199812b3_8816]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/int_return_processing.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/int_return_processing.sql
new file mode 100644
index 0000000..0fd5165
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/int_return_processing.sql
@@ -0,0 +1,113 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_return_processing__dbt_tmp__dbt_tmp_vw" AS SELECT
+ return_id,
+
+ CASE
+ WHEN return_reason IS NULL OR TRIM(return_reason) = ''''
+ THEN ''Unknown''
+
+ ELSE TRIM(dbo.TitleCase(return_reason))
+ END as return_reason,
+
+ CASE
+ WHEN
+ LOWER(TRIM(return_channel))
+ IN (''app'', ''mobile app'', ''mobile'')
+ THEN ''Mobile App''
+
+ WHEN
+ LOWER(TRIM(return_channel))
+ IN (''in store'', ''in-store'', ''store'')
+ THEN ''In Store''
+
+ WHEN
+ LOWER(TRIM(return_channel))
+ IN (''online'', ''web'')
+ THEN ''Online''
+
+ WHEN
+ LOWER(TRIM(return_channel))
+ = ''phone''
+ THEN ''Phone Call''
+
+ WHEN
+ LOWER(TRIM(return_channel))
+ = ''catalog''
+ THEN ''Catalog''
+
+ ELSE ''Unknown''
+ END AS return_channel,
+
+ CASE
+ WHEN
+ LOWER(TRIM(restocked))
+ IN (''yes'', ''y'', ''1'')
+ THEN ''Yes''
+
+ WHEN
+ LOWER(TRIM(restocked))
+ IN (''no'', ''n'', ''0'')
+ THEN ''No''
+
+ ELSE ''Unknown''
+ END AS restocked,
+
+ CASE
+ WHEN return_status IS NULL
+ THEN ''Unknown''
+
+ ELSE TRIM(dbo.TitleCase(return_status))
+ END as return_status,
+
+ CASE
+ WHEN handled_by_emp_id IS NULL OR TRY_CONVERT(INT, handled_by_emp_id) IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, handled_by_emp_id)
+ END as handled_by_emp_id,
+
+ CASE
+ WHEN notes IS NULL OR LEN(TRIM(notes)) < 3 OR TRIM(notes) = '''' THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(REPLACE(REPLACE(notes, CHAR(10), ''''), CHAR(13), '''')))
+ END as notes
+FROM "RetailDB"."bronze"."stg_returns" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_return_processing__dbt_tmp" FROM "RetailDB"."bronze"."int_return_processing__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_return_processing__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_return_processing__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_return_processing__dbt_tmp')
+ )
+ DROP index "bronze"."int_return_processing__dbt_tmp".bronze_int_return_processing__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_return_processing__dbt_tmp_cci
+ ON "bronze"."int_return_processing__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/int_return_refund.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/int_return_refund.sql
new file mode 100644
index 0000000..76f3fbe
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/int_return_refund.sql
@@ -0,0 +1,55 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_return_refund__dbt_tmp__dbt_tmp_vw" AS SELECT
+ return_id,
+
+ CASE
+ WHEN TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, '','', ''''), ''$'', '''')) IS NULL THEN NULL
+ WHEN refund_amount IS NULL OR TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, '','', ''''), ''$'', '''')) < 0 THEN NULL
+ ELSE TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, '','', ''''), ''$'', ''''))
+ END as refund_amount,
+
+ CASE
+ WHEN refund_method IS NULL OR TRIM(refund_method) = '''' THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(refund_method))
+ END as refund_method
+FROM "RetailDB"."bronze"."stg_returns" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_return_refund__dbt_tmp" FROM "RetailDB"."bronze"."int_return_refund__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_return_refund__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_return_refund__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_return_refund__dbt_tmp')
+ )
+ DROP index "bronze"."int_return_refund__dbt_tmp".bronze_int_return_refund__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_return_refund__dbt_tmp_cci
+ ON "bronze"."int_return_refund__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Returns/int_return_transaction.sql b/target/run/dbt_analytics_engineering/models/intermediate/Returns/int_return_transaction.sql
new file mode 100644
index 0000000..4da9ece
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Returns/int_return_transaction.sql
@@ -0,0 +1,142 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_return_transaction__dbt_tmp__dbt_tmp_vw" AS SELECT
+ CASE
+ WHEN TRY_CONVERT(INT, return_id) < 1 OR TRY_CONVERT(INT, return_id) IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, return_id)
+ END as return_id,
+
+ CASE
+ WHEN original_txn_id IS NULL
+ THEN NULL
+
+ WHEN UPPER(TRIM(original_txn_id)) NOT LIKE ''TXN-%''
+ THEN NULL
+
+ WHEN LEN(UPPER(TRIM(original_txn_id))) < 10
+ THEN NULL
+
+ ELSE UPPER(TRIM(original_txn_id))
+ END as original_txn_id,
+
+ CASE
+ WHEN original_order_id IS NULL OR TRY_CONVERT(INT, original_order_id) < 1 OR TRY_CONVERT(INT, original_order_id) IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, original_order_id)
+ END as original_order_id,
+
+ CASE
+ WHEN customer_id IS NULL OR TRY_CONVERT(INT, customer_id) IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, customer_id)
+ END as customer_id,
+
+ CASE
+ WHEN customer_name IS NULL OR TRIM(customer_name) = ''''
+ THEN ''Unknown''
+
+ ELSE dbo.TitleCase(TRIM(customer_name))
+ END as customer_name,
+
+ CASE
+ WHEN product_id IS NULL OR TRY_CONVERT(INT, product_id) IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, product_id)
+ END as product_id,
+
+ CASE
+ WHEN product_name IS NULL OR TRIM(product_name) = ''''
+ THEN ''Unknown''
+
+ ELSE dbo.TitleCase(TRIM(product_name))
+ END as product_name,
+
+ CASE
+ WHEN quantity_returned IS NULL OR TRY_CONVERT(INT, quantity_returned) IS NULL OR TRY_CONVERT(INT, quantity_returned) < 1
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, quantity_returned)
+ END as quantity_returned,
+
+
+
+
+ CASE
+ WHEN TRIM(return_date) LIKE ''[A-Z][a-z][a-z][a-z]% __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(return_date))
+
+ WHEN TRIM(return_date) LIKE ''[A-Z][a-z][a-z] __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(return_date))
+
+ WHEN TRIM(return_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(return_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(return_date), 110)
+
+ WHEN TRIM(return_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(return_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(return_date), 105)
+
+ WHEN TRIM(return_date) LIKE ''____-__-__''
+ THEN TRY_CONVERT(DATE, TRIM(return_date))
+
+ WHEN TRIM(return_date) LIKE ''____/__/__''
+ THEN TRY_CONVERT(DATE, TRIM(return_date))
+
+ WHEN TRIM(return_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(return_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(return_date), 101)
+
+ WHEN TRIM(return_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(return_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(return_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(return_date), 101)
+
+ END
+
+ as return_date
+FROM "RetailDB"."bronze"."stg_returns" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_return_transaction__dbt_tmp" FROM "RetailDB"."bronze"."int_return_transaction__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_return_transaction__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_return_transaction__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_return_transaction__dbt_tmp')
+ )
+ DROP index "bronze"."int_return_transaction__dbt_tmp".bronze_int_return_transaction__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_return_transaction__dbt_tmp_cci
+ ON "bronze"."int_return_transaction__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be.sql
new file mode 100644
index 0000000..007d828
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_fee_d4f12651892f25b256b7fbc3db6d49be.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_6c81532c9922547e39d4c9c7754298ec_10905]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ review_channel as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_review_feedback"
+ group by review_channel
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Mobile App'',''In Store'',''Online'',''Phone Call'',''Catalog'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_6c81532c9922547e39d4c9c7754298ec_10905]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_6c81532c9922547e39d4c9c7754298ec_10905]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_rating_rating__1__2__3__4__5.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_rating_rating__1__2__3__4__5.sql
new file mode 100644
index 0000000..a972c7b
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/accepted_values_int_review_rating_rating__1__2__3__4__5.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_d546c20411539ef8576454e2a64e01ab_10397]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ rating as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_review_rating"
+ group by rating
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''1'',''2'',''3'',''4'',''5''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_d546c20411539ef8576454e2a64e01ab_10397]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_d546c20411539ef8576454e2a64e01ab_10397]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_helpful_votes.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_helpful_votes.sql
new file mode 100644
index 0000000..bf9f5f5
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_helpful_votes.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_f99cac03ca59bb30b6728c46ed024188_13508]
+ as
+
+
+
+
+
+
+select helpful_votes
+from "RetailDB"."bronze"."int_review_feedback"
+where helpful_votes is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_f99cac03ca59bb30b6728c46ed024188_13508]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_f99cac03ca59bb30b6728c46ed024188_13508]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_channel.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_channel.sql
new file mode 100644
index 0000000..d831e1c
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_channel.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_47bee29180561ea38c17faf8dabf233a_14909]
+ as
+
+
+
+
+
+
+select review_channel
+from "RetailDB"."bronze"."int_review_feedback"
+where review_channel is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_47bee29180561ea38c17faf8dabf233a_14909]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_47bee29180561ea38c17faf8dabf233a_14909]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_id.sql
new file mode 100644
index 0000000..ee502e4
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_87dc0204fdbd3289b8338995fcbc8784_15955]
+ as
+
+
+
+
+
+
+select review_id
+from "RetailDB"."bronze"."int_review_feedback"
+where review_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_87dc0204fdbd3289b8338995fcbc8784_15955]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_87dc0204fdbd3289b8338995fcbc8784_15955]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_title.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_title.sql
new file mode 100644
index 0000000..ffe1a8d
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_feedback_review_title.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_8bf29ba65486a9868172cdd45176de77_8180]
+ as
+
+
+
+
+
+
+select review_title
+from "RetailDB"."bronze"."int_review_feedback"
+where review_title is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_8bf29ba65486a9868172cdd45176de77_8180]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_8bf29ba65486a9868172cdd45176de77_8180]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_rating_review_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_rating_review_id.sql
new file mode 100644
index 0000000..9aff059
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_rating_review_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_1dfb863feb84512558855d6328279c14_10683]
+ as
+
+
+
+
+
+
+select review_id
+from "RetailDB"."bronze"."int_review_rating"
+where review_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_1dfb863feb84512558855d6328279c14_10683]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_1dfb863feb84512558855d6328279c14_10683]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_customer_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_customer_id.sql
new file mode 100644
index 0000000..f5400f2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_customer_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_8ee09d7990a28f27e40d679c4df6c315_4627]
+ as
+
+
+
+
+
+
+select customer_id
+from "RetailDB"."bronze"."int_review_transaction"
+where customer_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_8ee09d7990a28f27e40d679c4df6c315_4627]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_8ee09d7990a28f27e40d679c4df6c315_4627]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_product_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_product_id.sql
new file mode 100644
index 0000000..305d954
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_product_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_fe94942d9802e341daeb1efa64e351eb_4252]
+ as
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_review_transaction"
+where product_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_fe94942d9802e341daeb1efa64e351eb_4252]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_fe94942d9802e341daeb1efa64e351eb_4252]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_date.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_date.sql
new file mode 100644
index 0000000..450e8e2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_date.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_01ae8e7afbb4a3fcc03c7f992f6b1968_6324]
+ as
+
+
+
+
+
+
+select review_date
+from "RetailDB"."bronze"."int_review_transaction"
+where review_date is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_01ae8e7afbb4a3fcc03c7f992f6b1968_6324]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_01ae8e7afbb4a3fcc03c7f992f6b1968_6324]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_id.sql
new file mode 100644
index 0000000..d6af8eb
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_review_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a4b4beccde243c66e904dd9c9c629282_11466]
+ as
+
+
+
+
+
+
+select review_id
+from "RetailDB"."bronze"."int_review_transaction"
+where review_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a4b4beccde243c66e904dd9c9c629282_11466]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a4b4beccde243c66e904dd9c9c629282_11466]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_txn_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_txn_id.sql
new file mode 100644
index 0000000..fe6a444
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/not_null_int_review_transaction_txn_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_aae1e1ca43896b65f1d1251ca799cf90_4619]
+ as
+
+
+
+
+
+
+select txn_id
+from "RetailDB"."bronze"."int_review_transaction"
+where txn_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_aae1e1ca43896b65f1d1251ca799cf90_4619]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_aae1e1ca43896b65f1d1251ca799cf90_4619]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_ratin_43fc6b1ac0b6975ff8a259293f5028c1.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_ratin_43fc6b1ac0b6975ff8a259293f5028c1.sql
new file mode 100644
index 0000000..392482b
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_ratin_43fc6b1ac0b6975ff8a259293f5028c1.sql
@@ -0,0 +1,57 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_9f588f19b35dd4993277b6338a342294_15861]
+ as
+
+
+
+
+with child as (
+ select review_id as from_field
+ from "RetailDB"."bronze"."int_review_rating"
+ where review_id is not null
+),
+
+parent as (
+ select review_id as to_field
+ from "RetailDB"."bronze"."int_review_feedback"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_9f588f19b35dd4993277b6338a342294_15861]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_9f588f19b35dd4993277b6338a342294_15861]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_trans_1e4130829264fa06eeb887102bf24af0.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_trans_1e4130829264fa06eeb887102bf24af0.sql
new file mode 100644
index 0000000..cc40f86
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/relationships_int_review_trans_1e4130829264fa06eeb887102bf24af0.sql
@@ -0,0 +1,57 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_28c9d997e7b1b3002d783ad611bd4d5d_2848]
+ as
+
+
+
+
+with child as (
+ select review_id as from_field
+ from "RetailDB"."bronze"."int_review_transaction"
+ where review_id is not null
+),
+
+parent as (
+ select review_id as to_field
+ from "RetailDB"."bronze"."int_review_feedback"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_28c9d997e7b1b3002d783ad611bd4d5d_2848]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_28c9d997e7b1b3002d783ad611bd4d5d_2848]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_feedback_review_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_feedback_review_id.sql
new file mode 100644
index 0000000..1636804
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_feedback_review_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a05e4bfa0fedc5213723ce01524dfcac_17115]
+ as
+
+
+
+
+select
+ review_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_review_feedback"
+where review_id is not null
+group by review_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a05e4bfa0fedc5213723ce01524dfcac_17115]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a05e4bfa0fedc5213723ce01524dfcac_17115]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_rating_review_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_rating_review_id.sql
new file mode 100644
index 0000000..6fca143
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_rating_review_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_3f907bb6a2ed0a3ef0bb855ea2e81451_3412]
+ as
+
+
+
+
+select
+ review_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_review_rating"
+where review_id is not null
+group by review_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_3f907bb6a2ed0a3ef0bb855ea2e81451_3412]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_3f907bb6a2ed0a3ef0bb855ea2e81451_3412]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_transaction_review_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_transaction_review_id.sql
new file mode 100644
index 0000000..562a32a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/_int_reviews_models.yml/unique_int_review_transaction_review_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_ca5658c8fb57da0c463827d903a3ea1c_7596]
+ as
+
+
+
+
+select
+ review_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_review_transaction"
+where review_id is not null
+group by review_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_ca5658c8fb57da0c463827d903a3ea1c_7596]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_ca5658c8fb57da0c463827d903a3ea1c_7596]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/int_review_feedback.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/int_review_feedback.sql
new file mode 100644
index 0000000..9e3670f
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/int_review_feedback.sql
@@ -0,0 +1,82 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_review_feedback__dbt_tmp__dbt_tmp_vw" AS SELECT
+ review_id,
+
+ helpful_votes,
+
+ CASE
+ WHEN
+ LOWER(TRIM(review_channel))
+ IN (''app'', ''mobile app'', ''mobile'')
+ THEN ''Mobile App''
+
+ WHEN
+ LOWER(TRIM(review_channel))
+ IN (''in store'', ''in-store'', ''store'')
+ THEN ''In Store''
+
+ WHEN
+ LOWER(TRIM(review_channel))
+ IN (''online'', ''web'')
+ THEN ''Online''
+
+ WHEN
+ LOWER(TRIM(review_channel))
+ = ''phone''
+ THEN ''Phone Call''
+
+ WHEN
+ LOWER(TRIM(review_channel))
+ = ''catalog''
+ THEN ''Catalog''
+
+ ELSE ''Unknown''
+ END AS review_channel,
+
+ CASE
+ WHEN REPLACE(REPLACE(TRIM(dbo.TitleCase(review_title)), CHAR(13), ''''), CHAR(10), '''') = ''''
+ THEN ''Unknown''
+
+ ELSE REPLACE(REPLACE(TRIM(dbo.TitleCase(review_title)), CHAR(13), ''''), CHAR(10), '''')
+ END as review_title
+FROM "RetailDB"."bronze"."stg_reviews" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_review_feedback__dbt_tmp" FROM "RetailDB"."bronze"."int_review_feedback__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_review_feedback__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_review_feedback__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_review_feedback__dbt_tmp')
+ )
+ DROP index "bronze"."int_review_feedback__dbt_tmp".bronze_int_review_feedback__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_review_feedback__dbt_tmp_cci
+ ON "bronze"."int_review_feedback__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/int_review_rating.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/int_review_rating.sql
new file mode 100644
index 0000000..5ee210b
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/int_review_rating.sql
@@ -0,0 +1,52 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_review_rating__dbt_tmp__dbt_tmp_vw" AS SELECT
+ review_id,
+
+ CASE
+ WHEN TRY_CONVERT(INT, rating) BETWEEN 1 AND 5
+ THEN TRY_CONVERT(INT, rating)
+ ELSE NULL
+ END AS rating,
+
+ rating_text
+FROM "RetailDB"."bronze"."stg_reviews" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_review_rating__dbt_tmp" FROM "RetailDB"."bronze"."int_review_rating__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_review_rating__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_review_rating__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_review_rating__dbt_tmp')
+ )
+ DROP index "bronze"."int_review_rating__dbt_tmp".bronze_int_review_rating__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_review_rating__dbt_tmp_cci
+ ON "bronze"."int_review_rating__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Reviews/int_review_transaction.sql b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/int_review_transaction.sql
new file mode 100644
index 0000000..7aadee7
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Reviews/int_review_transaction.sql
@@ -0,0 +1,95 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_review_transaction__dbt_tmp__dbt_tmp_vw" AS SELECT
+ review_id,
+ txn_id,
+
+ customer_id,
+ customer_name,
+
+ product_id,
+ product_name,
+
+
+
+
+ CASE
+ WHEN TRIM(review_date) LIKE ''[A-Z][a-z][a-z][a-z]% __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(review_date))
+
+ WHEN TRIM(review_date) LIKE ''[A-Z][a-z][a-z] __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(review_date))
+
+ WHEN TRIM(review_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(review_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(review_date), 110)
+
+ WHEN TRIM(review_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(review_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(review_date), 105)
+
+ WHEN TRIM(review_date) LIKE ''____-__-__''
+ THEN TRY_CONVERT(DATE, TRIM(review_date))
+
+ WHEN TRIM(review_date) LIKE ''____/__/__''
+ THEN TRY_CONVERT(DATE, TRIM(review_date))
+
+ WHEN TRIM(review_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(review_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(review_date), 101)
+
+ WHEN TRIM(review_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(review_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(review_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(review_date), 101)
+
+ END
+
+ as review_date,
+
+ CASE
+ WHEN TRIM(LOWER(verified_purchase)) IN (''1'', ''y'', ''yes'', ''true'', ''verified'') THEN ''Verified''
+ WHEN TRIM(LOWER(verified_purchase)) IN (''0'', ''n'', ''no'', ''false'') THEN ''Not Verified''
+ ELSE ''Unknown''
+ END AS verified_purchase
+FROM "RetailDB"."bronze"."stg_reviews" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_review_transaction__dbt_tmp" FROM "RetailDB"."bronze"."int_review_transaction__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_review_transaction__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_review_transaction__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_review_transaction__dbt_tmp')
+ )
+ DROP index "bronze"."int_review_transaction__dbt_tmp".bronze_int_review_transaction__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_review_transaction__dbt_tmp_cci
+ ON "bronze"."int_review_transaction__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb.sql
new file mode 100644
index 0000000..11a3575
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_0d7efbdc57b277b34acfa74af2f1b8eb.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_807605ca651b54e4f81d461f50dfdf71_7193]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ has_parking as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_store_operations"
+ group by has_parking
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''True'',''False'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_807605ca651b54e4f81d461f50dfdf71_7193]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_807605ca651b54e4f81d461f50dfdf71_7193]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1.sql
new file mode 100644
index 0000000..82b833e
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_b1ee55ee2ccac44fd618d5b72882e6c1.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_1e3e76568a3f52dc07f49af5cd00e4ec_4041]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ has_cafe as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_store_operations"
+ group by has_cafe
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''True'',''False'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_1e3e76568a3f52dc07f49af5cd00e4ec_4041]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_1e3e76568a3f52dc07f49af5cd00e4ec_4041]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf.sql
new file mode 100644
index 0000000..aa9922c
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/accepted_values_int_store_oper_d057b3a5bd04c62dd37a0c825c86b2cf.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_470dec63d046aa4f52e593abf67655e9_17856]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ is_active as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_store_operations"
+ group by is_active
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''True'',''False'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_470dec63d046aa4f52e593abf67655e9_17856]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_470dec63d046aa4f52e593abf67655e9_17856]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_address.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_address.sql
new file mode 100644
index 0000000..8c95395
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_address.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_e0aefa506e90ab8ab0290dafd74a4f2e_3635]
+ as
+
+
+
+
+
+
+select address
+from "RetailDB"."bronze"."int_store_location"
+where address is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_e0aefa506e90ab8ab0290dafd74a4f2e_3635]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_e0aefa506e90ab8ab0290dafd74a4f2e_3635]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_city.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_city.sql
new file mode 100644
index 0000000..6196c23
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_city.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_108b288333cfb1b4848c53b8897e2b6e_3910]
+ as
+
+
+
+
+
+
+select city
+from "RetailDB"."bronze"."int_store_location"
+where city is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_108b288333cfb1b4848c53b8897e2b6e_3910]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_108b288333cfb1b4848c53b8897e2b6e_3910]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_country.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_country.sql
new file mode 100644
index 0000000..90b1288
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_country.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_1eee88db4c3e5e8d69181b5c4933f12e_3474]
+ as
+
+
+
+
+
+
+select country
+from "RetailDB"."bronze"."int_store_location"
+where country is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_1eee88db4c3e5e8d69181b5c4933f12e_3474]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_1eee88db4c3e5e8d69181b5c4933f12e_3474]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_district.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_district.sql
new file mode 100644
index 0000000..00da638
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_district.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_98651dc984524109f98ae8021d89d6ea_7852]
+ as
+
+
+
+
+
+
+select district
+from "RetailDB"."bronze"."int_store_location"
+where district is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_98651dc984524109f98ae8021d89d6ea_7852]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_98651dc984524109f98ae8021d89d6ea_7852]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_phone.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_phone.sql
new file mode 100644
index 0000000..c879028
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_phone.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_fc7a14e7d9a0923c0f1e607d568e92a5_12559]
+ as
+
+
+
+
+
+
+select phone
+from "RetailDB"."bronze"."int_store_location"
+where phone is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_fc7a14e7d9a0923c0f1e607d568e92a5_12559]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_fc7a14e7d9a0923c0f1e607d568e92a5_12559]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_region.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_region.sql
new file mode 100644
index 0000000..9922bf7
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_region.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_2d1cff721b6781557a9e9ac20640317a_15510]
+ as
+
+
+
+
+
+
+select region
+from "RetailDB"."bronze"."int_store_location"
+where region is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_2d1cff721b6781557a9e9ac20640317a_15510]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_2d1cff721b6781557a9e9ac20640317a_15510]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_store_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_store_id.sql
new file mode 100644
index 0000000..add9b1f
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_location_store_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_580959aba68ef130d8cbfa43c555c4b2_14083]
+ as
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."int_store_location"
+where store_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_580959aba68ef130d8cbfa43c555c4b2_14083]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_580959aba68ef130d8cbfa43c555c4b2_14083]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_cafe.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_cafe.sql
new file mode 100644
index 0000000..c428a2d
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_cafe.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_1459a3f3833c39d4b4949aa20d3eb4aa_3669]
+ as
+
+
+
+
+
+
+select has_cafe
+from "RetailDB"."bronze"."int_store_operations"
+where has_cafe is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_1459a3f3833c39d4b4949aa20d3eb4aa_3669]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_1459a3f3833c39d4b4949aa20d3eb4aa_3669]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_parking.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_parking.sql
new file mode 100644
index 0000000..9b97a70
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_has_parking.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_255ad621416db7bc344518b7cfe89f11_12758]
+ as
+
+
+
+
+
+
+select has_parking
+from "RetailDB"."bronze"."int_store_operations"
+where has_parking is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_255ad621416db7bc344518b7cfe89f11_12758]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_255ad621416db7bc344518b7cfe89f11_12758]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_is_active.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_is_active.sql
new file mode 100644
index 0000000..d30a154
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_is_active.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_4d937a141d070d8fae5bef168664a696_7417]
+ as
+
+
+
+
+
+
+select is_active
+from "RetailDB"."bronze"."int_store_operations"
+where is_active is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_4d937a141d070d8fae5bef168664a696_7417]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_4d937a141d070d8fae5bef168664a696_7417]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_store_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_store_id.sql
new file mode 100644
index 0000000..bd6fc0e
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_operations_store_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c01cd6f7b9db9e3b19e03636a59d2815_11391]
+ as
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."int_store_operations"
+where store_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c01cd6f7b9db9e3b19e03636a59d2815_11391]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c01cd6f7b9db9e3b19e03636a59d2815_11391]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_manager_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_manager_name.sql
new file mode 100644
index 0000000..864798a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_manager_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_6dc962fc8419d3b32d3ced4922b8d43d_14657]
+ as
+
+
+
+
+
+
+select manager_name
+from "RetailDB"."bronze"."int_store_profile"
+where manager_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_6dc962fc8419d3b32d3ced4922b8d43d_14657]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_6dc962fc8419d3b32d3ced4922b8d43d_14657]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_id.sql
new file mode 100644
index 0000000..57cb2be
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_6f9778b5b079997e9d9feb537b52faae_7611]
+ as
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."int_store_profile"
+where store_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_6f9778b5b079997e9d9feb537b52faae_7611]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_6f9778b5b079997e9d9feb537b52faae_7611]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_name.sql
new file mode 100644
index 0000000..0af13d4
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_e1ae6f76244f063ef828ad655ef44268_9731]
+ as
+
+
+
+
+
+
+select store_name
+from "RetailDB"."bronze"."int_store_profile"
+where store_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_e1ae6f76244f063ef828ad655ef44268_9731]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_e1ae6f76244f063ef828ad655ef44268_9731]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_type.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_type.sql
new file mode 100644
index 0000000..866b5dc
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/not_null_int_store_profile_store_type.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_b7223b29ea7c3a2e2f99a8ab40cd629d_15261]
+ as
+
+
+
+
+
+
+select store_type
+from "RetailDB"."bronze"."int_store_profile"
+where store_type is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_b7223b29ea7c3a2e2f99a8ab40cd629d_15261]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_b7223b29ea7c3a2e2f99a8ab40cd629d_15261]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_location_store_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_location_store_id.sql
new file mode 100644
index 0000000..d0a7c52
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_location_store_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_4cba4a96d8f0f90dfa054b5d7bdfdfef_18615]
+ as
+
+
+
+
+select
+ store_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_store_location"
+where store_id is not null
+group by store_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_4cba4a96d8f0f90dfa054b5d7bdfdfef_18615]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_4cba4a96d8f0f90dfa054b5d7bdfdfef_18615]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_operations_store_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_operations_store_id.sql
new file mode 100644
index 0000000..d1b6342
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_operations_store_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_56876c1ef0d281ea8a354712d3d0ab00_5287]
+ as
+
+
+
+
+select
+ store_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_store_operations"
+where store_id is not null
+group by store_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_56876c1ef0d281ea8a354712d3d0ab00_5287]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_56876c1ef0d281ea8a354712d3d0ab00_5287]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_profile_store_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_profile_store_id.sql
new file mode 100644
index 0000000..622e88f
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/_int_stores_models.yml/unique_int_store_profile_store_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_917f6794340b18473f452c4aada420cf_14107]
+ as
+
+
+
+
+select
+ store_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_store_profile"
+where store_id is not null
+group by store_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_917f6794340b18473f452c4aada420cf_14107]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_917f6794340b18473f452c4aada420cf_14107]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/int_store_location.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/int_store_location.sql
new file mode 100644
index 0000000..6603ac5
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/int_store_location.sql
@@ -0,0 +1,129 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_store_location__dbt_tmp__dbt_tmp_vw" AS SELECT
+ store_id,
+
+ CASE
+ WHEN address IS NULL OR TRIM(address) = '''' OR LEN(address) < 5 THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(address))
+ END address,
+
+ CASE
+ WHEN city IS NULL OR TRIM(city) = '''' OR LEN(TRIM(city)) < 3 THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(city))
+ END as city,
+
+ CASE
+ WHEN TRIM(state) = ''California'' THEN ''CA''
+ WHEN TRIM(state) = ''Texas'' THEN ''TX''
+ WHEN TRIM(state) = ''Arizona'' THEN ''AZ''
+ WHEN TRIM(state) = ''Colorado'' THEN ''CO''
+ WHEN TRIM(state) = ''Maryland'' THEN ''MD''
+ WHEN TRIM(state) = ''Wisconsin'' THEN ''WI''
+ WHEN TRIM(state) = ''Illinois'' THEN ''IL''
+ WHEN TRIM(state) = ''Georgia'' THEN ''GA''
+ WHEN TRIM(state) = ''Tennessee'' THEN ''TN''
+ WHEN TRIM(state) = ''New Mexico'' THEN ''NM''
+ WHEN TRIM(state) = ''Ohio'' THEN ''OH''
+ WHEN state IS NULL OR TRIM(state) = '''' OR LEN(TRIM(state)) < 2 THEN ''Unknown''
+ ELSE state
+ END as state,
+
+ CASE
+ WHEN state_full IS NULL OR TRIM(state_full) = '''' OR LEN(TRIM(state_full)) < 4 THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(state_full))
+ END as state_full,
+
+ CASE
+ WHEN zip_code IS NULL OR TRY_CONVERT(INT, zip_code) IS NULL OR LEN(zip_code) < 5 THEN NULL
+ ELSE TRY_CONVERT(INT, zip_code)
+ END as zip_code,
+
+ CASE
+ WHEN TRIM(LOWER(country)) IN (''us'', ''usa'', ''united states'', ''u.s.a'', ''u.s'') THEN ''United States''
+ WHEN country IS NULL OR TRIM(country) = '''' OR LEN(TRIM(country)) < 2 THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(country))
+ END as country,
+
+ CASE
+ WHEN region IS NULL OR TRIM(region) = '''' OR LEN(TRIM(region)) < 2 THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(region))
+ END as region,
+
+ CASE
+ WHEN district IS NULL OR TRIM(district) = '''' OR LEN(TRIM(district)) < 2 THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(district))
+ END as district,
+
+
+
+ CASE
+ WHEN TRIM(phone) LIKE ''+1__________''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 3, 3), '') '',
+ SUBSTRING(TRIM(phone), 6, 3),''-'',
+ SUBSTRING(TRIM(phone),9,4))
+
+ WHEN TRIM(phone) LIKE ''__________''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 1 ,3), '') '',
+ SUBSTRING(TRIM(phone), 4 ,3), ''-'',
+ SUBSTRING(TRIM(phone), 7, 4))
+
+ WHEN TRIM(phone) LIKE ''___-___-____''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 1, 3), '') '',
+ SUBSTRING(TRIM(phone), 5, 3), ''-'',
+ SUBSTRING(TRIM(phone), 9 ,4))
+
+ WHEN TRIM(phone) LIKE ''___.___.____''
+ THEN CONCAT(''+1 ('', SUBSTRING(TRIM(phone), 1, 3), '') '',
+ SUBSTRING(TRIM(phone), 5, 3), ''-'',
+ SUBSTRING(TRIM(phone),9, 4))
+
+ WHEN TRIM(phone) LIKE ''(___) ___-____''
+ THEN CONCAT(''+1 '', SUBSTRING(TRIM(phone), 1, 14))
+
+ WHEN TRIM(phone) IS NULL OR TRIM(phone) = ''''
+ THEN ''Unknown''
+
+ ELSE ''Unknown''
+ END
+ as phone
+FROM "RetailDB"."bronze"."stg_stores" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_store_location__dbt_tmp" FROM "RetailDB"."bronze"."int_store_location__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_store_location__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_store_location__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_store_location__dbt_tmp')
+ )
+ DROP index "bronze"."int_store_location__dbt_tmp".bronze_int_store_location__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_store_location__dbt_tmp_cci
+ ON "bronze"."int_store_location__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/int_store_operations.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/int_store_operations.sql
new file mode 100644
index 0000000..db6edd4
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/int_store_operations.sql
@@ -0,0 +1,107 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_store_operations__dbt_tmp__dbt_tmp_vw" AS SELECT
+ store_id,
+
+ CASE
+ WHEN sq_footage IS NULL OR sq_footage < 0
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, sq_footage)
+ END as sq_footage,
+
+ CASE
+ WHEN num_employees IS NULL OR num_employees < 0
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, num_employees)
+ END as num_employees,
+
+ CASE
+ WHEN annual_rent_usd < 1 OR annual_rent_usd IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(INT, annual_rent_usd)
+ END as annual_rent_usd,
+
+ CASE
+ WHEN
+ LOWER(TRIM(is_active))
+ IN (''true'', ''yes'', ''y'', ''1'', ''active'')
+ THEN ''True''
+
+ WHEN
+ LOWER(TRIM(is_active))
+ IN (''false'', ''no'', ''n'', ''0'', ''not active'')
+ THEN ''False''
+
+ ELSE ''Unknown''
+ END as is_active,
+
+ CASE
+ WHEN
+ LOWER(TRIM(has_parking))
+ IN (''true'', ''yes'', ''y'', ''1'')
+ THEN ''True''
+
+ WHEN
+ LOWER(TRIM(has_parking))
+ IN (''false'', ''no'', ''n'', ''0'')
+ THEN ''False''
+
+ ELSE ''Unknown''
+ END as has_parking,
+
+ CASE
+ WHEN REPLACE(REPLACE(
+ LOWER(TRIM(has_cafe))
+, CHAR(13), ''''),CHAR(10), '''') IN (''1'', ''yes'', ''y'',''true'')
+ THEN ''True''
+
+ WHEN REPLACE(REPLACE(
+ LOWER(TRIM(has_cafe))
+, CHAR(13), ''''),CHAR(10), '''') IN (''0'', ''no'', ''n'',''false'')
+ THEN ''False''
+
+ ELSE ''Unknown''
+ END as has_cafe
+FROM "RetailDB"."bronze"."stg_stores" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_store_operations__dbt_tmp" FROM "RetailDB"."bronze"."int_store_operations__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_store_operations__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_store_operations__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_store_operations__dbt_tmp')
+ )
+ DROP index "bronze"."int_store_operations__dbt_tmp".bronze_int_store_operations__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_store_operations__dbt_tmp_cci
+ ON "bronze"."int_store_operations__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Stores/int_store_profile.sql b/target/run/dbt_analytics_engineering/models/intermediate/Stores/int_store_profile.sql
new file mode 100644
index 0000000..1a5bf4a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Stores/int_store_profile.sql
@@ -0,0 +1,97 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_store_profile__dbt_tmp__dbt_tmp_vw" AS SELECT
+ store_id,
+
+ CASE
+ WHEN manager_name IS NULL OR TRIM(manager_name) = '''' OR LEN(TRIM(manager_name)) < 2 THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(manager_name))
+ END as manager_name,
+
+ CASE
+ WHEN store_name IS NULL OR LEN(TRIM(store_name)) < 3 THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(store_name))
+ END as store_name,
+
+ CASE
+ WHEN store_type IS NULL OR LEN(TRIM(store_type)) < 3 THEN ''Unknown''
+ ELSE TRIM(dbo.TitleCase(store_type))
+ END as store_type,
+
+
+
+
+ CASE
+ WHEN TRIM(opened_date) LIKE ''[A-Z][a-z][a-z][a-z]% __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(opened_date))
+
+ WHEN TRIM(opened_date) LIKE ''[A-Z][a-z][a-z] __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(opened_date))
+
+ WHEN TRIM(opened_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(opened_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(opened_date), 110)
+
+ WHEN TRIM(opened_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(opened_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(opened_date), 105)
+
+ WHEN TRIM(opened_date) LIKE ''____-__-__''
+ THEN TRY_CONVERT(DATE, TRIM(opened_date))
+
+ WHEN TRIM(opened_date) LIKE ''____/__/__''
+ THEN TRY_CONVERT(DATE, TRIM(opened_date))
+
+ WHEN TRIM(opened_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(opened_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(opened_date), 101)
+
+ WHEN TRIM(opened_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(opened_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(opened_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(opened_date), 101)
+
+ END
+
+ as opened_date
+FROM "RetailDB"."bronze"."stg_stores" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_store_profile__dbt_tmp" FROM "RetailDB"."bronze"."int_store_profile__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_store_profile__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_store_profile__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_store_profile__dbt_tmp')
+ )
+ DROP index "bronze"."int_store_profile__dbt_tmp".bronze_int_store_profile__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_store_profile__dbt_tmp_cci
+ ON "bronze"."int_store_profile__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af.sql
new file mode 100644
index 0000000..6a33716
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_59cbd812250b414fe928d5f39d1983af.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_6ff02830e58d84557d483b864f94d6b6_2135]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ is_returned as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_transaction_status"
+ group by is_returned
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''True'',''False'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_6ff02830e58d84557d483b864f94d6b6_2135]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_6ff02830e58d84557d483b864f94d6b6_2135]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9.sql
new file mode 100644
index 0000000..e316824
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/accepted_values_int_transactio_71e751e1137d0ca883293477a5c853a9.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_fdc26d029920637b4fe01bfabfe3720a_12259]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ order_status as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."int_transaction_status"
+ group by order_status
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Pending'',''Processing'',''Shipped'',''Delivered'',''Returned'',''Cancelled''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_fdc26d029920637b4fe01bfabfe3720a_12259]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_fdc26d029920637b4fe01bfabfe3720a_12259]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/dbt_utils_expression_is_true_i_84f8dac55d7305f09051cb16e4bca9c2.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/dbt_utils_expression_is_true_i_84f8dac55d7305f09051cb16e4bca9c2.sql
new file mode 100644
index 0000000..e5cec6b
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/dbt_utils_expression_is_true_i_84f8dac55d7305f09051cb16e4bca9c2.sql
@@ -0,0 +1,42 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_d08f0d69fdf6c6ca6455bfb0c8aa234c_16358]
+ as
+
+
+
+
+select
+ 1
+from "RetailDB"."bronze"."int_transaction_financial"
+
+where not(quantity_ordered quantity_ordered >= 1 and quantity_ordered <= 30)
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_d08f0d69fdf6c6ca6455bfb0c8aa234c_16358]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_d08f0d69fdf6c6ca6455bfb0c8aa234c_16358]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_financial_transaction_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_financial_transaction_id.sql
new file mode 100644
index 0000000..410ccf7
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_financial_transaction_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_f3ee3482612ef56fdf129f1a2b699f0b_14422]
+ as
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."int_transaction_financial"
+where transaction_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_f3ee3482612ef56fdf129f1a2b699f0b_14422]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_f3ee3482612ef56fdf129f1a2b699f0b_14422]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_order_date.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_order_date.sql
new file mode 100644
index 0000000..861f4f0
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_order_date.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_d4ae53b7bcdaddbca1300784f1ff339c_6159]
+ as
+
+
+
+
+
+
+select order_date
+from "RetailDB"."bronze"."int_transaction_fulfillment"
+where order_date is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_d4ae53b7bcdaddbca1300784f1ff339c_6159]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_d4ae53b7bcdaddbca1300784f1ff339c_6159]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_transaction_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_transaction_id.sql
new file mode 100644
index 0000000..817dd74
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_fulfillment_transaction_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_b678a9dba9f0b00c52df77e579c2a76c_14796]
+ as
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."int_transaction_fulfillment"
+where transaction_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_b678a9dba9f0b00c52df77e579c2a76c_14796]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_b678a9dba9f0b00c52df77e579c2a76c_14796]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_customer_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_customer_id.sql
new file mode 100644
index 0000000..b09ff75
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_customer_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_3bfbc564f5cf2a867ba2c1028f5f99df_9637]
+ as
+
+
+
+
+
+
+select customer_id
+from "RetailDB"."bronze"."int_transaction_order"
+where customer_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_3bfbc564f5cf2a867ba2c1028f5f99df_9637]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_3bfbc564f5cf2a867ba2c1028f5f99df_9637]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_employee_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_employee_id.sql
new file mode 100644
index 0000000..b5184fd
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_employee_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_31d5a6be96d5ee94ffcc3d09fbbc9c5d_18673]
+ as
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."int_transaction_order"
+where employee_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_31d5a6be96d5ee94ffcc3d09fbbc9c5d_18673]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_31d5a6be96d5ee94ffcc3d09fbbc9c5d_18673]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_order_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_order_id.sql
new file mode 100644
index 0000000..c001de7
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_order_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_8f1e8edc59776bc9eac655fa8f201f84_12516]
+ as
+
+
+
+
+
+
+select order_id
+from "RetailDB"."bronze"."int_transaction_order"
+where order_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_8f1e8edc59776bc9eac655fa8f201f84_12516]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_8f1e8edc59776bc9eac655fa8f201f84_12516]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_product_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_product_id.sql
new file mode 100644
index 0000000..9054359
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_product_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_02dea72aae18fbd8f106d8768bb9b6b8_9782]
+ as
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."int_transaction_order"
+where product_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_02dea72aae18fbd8f106d8768bb9b6b8_9782]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_02dea72aae18fbd8f106d8768bb9b6b8_9782]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_store_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_store_id.sql
new file mode 100644
index 0000000..dd72e26
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_store_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_36ef61819aa721ce44cef5914aaa14ef_16155]
+ as
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."int_transaction_order"
+where store_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_36ef61819aa721ce44cef5914aaa14ef_16155]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_36ef61819aa721ce44cef5914aaa14ef_16155]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_transaction_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_transaction_id.sql
new file mode 100644
index 0000000..43baf93
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_order_transaction_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c8a30121d11d521a398968a8aeb0e651_14178]
+ as
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."int_transaction_order"
+where transaction_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c8a30121d11d521a398968a8aeb0e651_14178]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c8a30121d11d521a398968a8aeb0e651_14178]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_is_returned.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_is_returned.sql
new file mode 100644
index 0000000..f0f073b
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_is_returned.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_de9f824f81e93fbaf0eb6d3d9c1f87b1_14534]
+ as
+
+
+
+
+
+
+select is_returned
+from "RetailDB"."bronze"."int_transaction_status"
+where is_returned is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_de9f824f81e93fbaf0eb6d3d9c1f87b1_14534]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_de9f824f81e93fbaf0eb6d3d9c1f87b1_14534]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_order_status.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_order_status.sql
new file mode 100644
index 0000000..3cf269e
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_order_status.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_61868354251f30846c029e9ff783a18d_16775]
+ as
+
+
+
+
+
+
+select order_status
+from "RetailDB"."bronze"."int_transaction_status"
+where order_status is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_61868354251f30846c029e9ff783a18d_16775]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_61868354251f30846c029e9ff783a18d_16775]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_promo_name.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_promo_name.sql
new file mode 100644
index 0000000..b83199a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_promo_name.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_0e9170293b5f381f4d8ab89f7c35d678_2975]
+ as
+
+
+
+
+
+
+select promo_name
+from "RetailDB"."bronze"."int_transaction_status"
+where promo_name is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_0e9170293b5f381f4d8ab89f7c35d678_2975]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_0e9170293b5f381f4d8ab89f7c35d678_2975]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_transaction_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_transaction_id.sql
new file mode 100644
index 0000000..2ce7086
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/not_null_int_transaction_status_transaction_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_6650b171750c3dff9ee96dd0424336db_13420]
+ as
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."int_transaction_status"
+where transaction_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_6650b171750c3dff9ee96dd0424336db_13420]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_6650b171750c3dff9ee96dd0424336db_13420]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_financial_transaction_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_financial_transaction_id.sql
new file mode 100644
index 0000000..979ea33
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_financial_transaction_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_e4de03b5348882fbf5dbeb6578cce3f8_15855]
+ as
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_transaction_financial"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_e4de03b5348882fbf5dbeb6578cce3f8_15855]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_e4de03b5348882fbf5dbeb6578cce3f8_15855]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_fulfillment_transaction_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_fulfillment_transaction_id.sql
new file mode 100644
index 0000000..74a039b
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_fulfillment_transaction_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_8b54661bde1b232a3b7fcd05fe2b8e9c_1709]
+ as
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_transaction_fulfillment"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_8b54661bde1b232a3b7fcd05fe2b8e9c_1709]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_8b54661bde1b232a3b7fcd05fe2b8e9c_1709]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_order_transaction_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_order_transaction_id.sql
new file mode 100644
index 0000000..486cddc
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_order_transaction_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_be9cac256f8f842cecc68afc60ab202c_17849]
+ as
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_transaction_order"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_be9cac256f8f842cecc68afc60ab202c_17849]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_be9cac256f8f842cecc68afc60ab202c_17849]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_status_transaction_id.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_status_transaction_id.sql
new file mode 100644
index 0000000..e8982d7
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/_int_transactions_models.yml/unique_int_transaction_status_transaction_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_b6f291a9b7a0ab803aab907f781cddb1_11830]
+ as
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."int_transaction_status"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_b6f291a9b7a0ab803aab907f781cddb1_11830]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_b6f291a9b7a0ab803aab907f781cddb1_11830]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_financial.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_financial.sql
new file mode 100644
index 0000000..cfc6bc5
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_financial.sql
@@ -0,0 +1,108 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_transaction_financial__dbt_tmp__dbt_tmp_vw" AS WITH int_transaction_financial AS
+(
+SELECT
+ transaction_id,
+
+ CASE
+ WHEN quantity_ordered < 1
+ THEN NULL
+
+ WHEN quantity_ordered > 30
+ THEN NULL
+
+ ELSE quantity_ordered
+ END as quantity_ordered ,
+
+ CASE
+ WHEN unit_list_price IS NULL
+ THEN NULL
+
+ ELSE TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(unit_list_price, ''$'', ''''), '','', ''''))
+ END as unit_list_price,
+
+ CASE
+ WHEN discount_pct IS NULL OR discount_pct < 0 OR discount_pct > 100
+ THEN NULL
+
+ ELSE ROUND(discount_pct, 0)
+ END as discount_pct,
+
+ CASE
+ WHEN line_total_before_tax IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_before_tax, ''$'', ''''), '','', '''')) < 0
+ THEN NULL
+
+ ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_before_tax, ''$'', ''''), '','', ''''))
+ END as line_total_before_tax,
+
+ CASE
+ WHEN tax_rate_pct IS NULL OR TRY_CONVERT(INT, ROUND(tax_rate_pct, 0)) < 0 OR TRY_CONVERT(INT, ROUND(tax_rate_pct, 0)) > 100 THEN NULL
+ ELSE TRY_CONVERT(INT, ROUND(tax_rate_pct, 0))
+ END as tax_rate_pct,
+
+ CASE
+ WHEN tax_amount IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(tax_amount, ''$'', ''''), '','', '''')) < 0
+ THEN NULL
+
+ ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(tax_amount, ''$'', ''''), '','', ''''))
+ END as tax_amount,
+
+ CASE
+ WHEN line_total_with_tax IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_with_tax, ''$'', ''''), '','', '''')) < 0
+ THEN NULL
+
+ ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_with_tax, ''$'', ''''), '','', ''''))
+ END as line_total_with_tax
+FROM "RetailDB"."bronze"."stg_transactions"
+)
+SELECT
+ transaction_id,
+ quantity_ordered,
+ unit_list_price,
+ discount_pct,
+ ROUND(unit_list_price * (1 - discount_pct/100), 2) as unit_selling_price,
+ ROUND(quantity_ordered * ROUND(unit_list_price * (1 - discount_pct/100.0), 2),2) AS line_total_before_tax,
+ tax_rate_pct,
+ tax_amount,
+ ROUND(quantity_ordered * ROUND(unit_list_price * (1 - discount_pct/100.0), 2),2) + tax_amount AS line_total_with_tax
+FROM int_transaction_financial ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_transaction_financial__dbt_tmp" FROM "RetailDB"."bronze"."int_transaction_financial__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_transaction_financial__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_transaction_financial__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_transaction_financial__dbt_tmp')
+ )
+ DROP index "bronze"."int_transaction_financial__dbt_tmp".bronze_int_transaction_financial__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_transaction_financial__dbt_tmp_cci
+ ON "bronze"."int_transaction_financial__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_fulfillment.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_fulfillment.sql
new file mode 100644
index 0000000..0e471b4
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_fulfillment.sql
@@ -0,0 +1,321 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_transaction_fulfillment__dbt_tmp__dbt_tmp_vw" AS WITH transaction_fulfillment AS
+(
+ SELECT
+ transaction_id,
+
+
+
+
+ CASE
+ WHEN TRIM(order_date) LIKE ''[A-Z][a-z][a-z][a-z]% __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(order_date))
+
+ WHEN TRIM(order_date) LIKE ''[A-Z][a-z][a-z] __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(order_date))
+
+ WHEN TRIM(order_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(order_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(order_date), 110)
+
+ WHEN TRIM(order_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(order_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(order_date), 105)
+
+ WHEN TRIM(order_date) LIKE ''____-__-__''
+ THEN TRY_CONVERT(DATE, TRIM(order_date))
+
+ WHEN TRIM(order_date) LIKE ''____/__/__''
+ THEN TRY_CONVERT(DATE, TRIM(order_date))
+
+ WHEN TRIM(order_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(order_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(order_date), 101)
+
+ WHEN TRIM(order_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(order_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(order_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(order_date), 101)
+
+ END
+
+ as order_date,
+
+
+
+ CASE
+ WHEN TRIM(ship_date) LIKE ''[A-Z][a-z][a-z][a-z]% __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(ship_date))
+
+ WHEN TRIM(ship_date) LIKE ''[A-Z][a-z][a-z] __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(ship_date))
+
+ WHEN TRIM(ship_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(ship_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(ship_date), 110)
+
+ WHEN TRIM(ship_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(ship_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(ship_date), 105)
+
+ WHEN TRIM(ship_date) LIKE ''____-__-__''
+ THEN TRY_CONVERT(DATE, TRIM(ship_date))
+
+ WHEN TRIM(ship_date) LIKE ''____/__/__''
+ THEN TRY_CONVERT(DATE, TRIM(ship_date))
+
+ WHEN TRIM(ship_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(ship_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(ship_date), 101)
+
+ WHEN TRIM(ship_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(ship_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(ship_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(ship_date), 101)
+
+ END
+
+ as ship_date,
+
+
+
+ CASE
+ WHEN TRIM(delivery_date) LIKE ''[A-Z][a-z][a-z][a-z]% __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date))
+
+ WHEN TRIM(delivery_date) LIKE ''[A-Z][a-z][a-z] __, ____''
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date))
+
+ WHEN TRIM(delivery_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(delivery_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date), 110)
+
+ WHEN TRIM(delivery_date) LIKE ''__-__-____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(delivery_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date), 105)
+
+ WHEN TRIM(delivery_date) LIKE ''____-__-__''
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date))
+
+ WHEN TRIM(delivery_date) LIKE ''____/__/__''
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date))
+
+ WHEN TRIM(delivery_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, SUBSTRING(TRIM(delivery_date), 4, 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date), 101)
+
+ WHEN TRIM(delivery_date) LIKE ''__/__/____''
+ AND TRY_CONVERT(INT, LEFT(TRIM(delivery_date), 2)) > 12
+ THEN TRY_CONVERT(DATE, TRIM(delivery_date), 103)
+
+ ELSE TRY_CONVERT(DATE, TRIM(delivery_date), 101)
+
+ END
+
+ as delivery_date,
+ order_month,
+
+ CASE
+ WHEN TRIM(LOWER(shipping_method)) IN (''pickup'', ''in-store pickup'')
+ THEN ''Store Pickup''
+
+ WHEN TRIM(LOWER(shipping_method)) IN (''overnight'', ''overnight shipping'')
+ THEN ''Overnight Shipping''
+
+ WHEN TRIM(LOWER(shipping_method)) IN (''same day'', ''same day delivery'')
+ THEN ''Same Day Delivery''
+
+ WHEN TRIM(LOWER(shipping_method)) IN (''express'', ''express shipping'')
+ THEN ''Express Shipping''
+
+ WHEN TRIM(LOWER(shipping_method)) IN (''standard'', ''standard shipping'')
+ THEN ''Standard Shipping''
+
+ WHEN TRIM(LOWER(shipping_method)) IN (''free ship'', ''free shipping'')
+ THEN ''Free Shipping''
+
+ ELSE TRIM(shipping_method)
+ END AS shipping_method,
+
+ CASE
+ WHEN TRIM(LOWER(sales_channel)) IN (''app'', ''mobile'', ''mobile app'')
+ THEN ''Mobile App''
+
+ WHEN TRIM(LOWER(sales_channel)) IN (''store'', ''in store'', ''in-store'')
+ THEN ''In Store''
+
+ WHEN TRIM(LOWER(sales_channel)) IN (''online'', ''web'')
+ THEN ''Website''
+
+ WHEN TRIM(LOWER(sales_channel)) IN (''phone'')
+ THEN ''Phone Call''
+
+ WHEN TRIM(LOWER(sales_channel)) IN (''catalog'')
+ THEN ''Catalog''
+
+ ELSE ''Unknown''
+ END AS sales_channel,
+
+ CASE TRIM(LOWER(payment_method))
+ WHEN ''debit card'' THEN ''Debit Card''
+ WHEN ''credit card'' THEN ''Credit Card''
+ WHEN ''google pay'' THEN ''Google Pay''
+ WHEN ''apple pay'' THEN ''Apple Pay''
+ WHEN ''bank transfer'' THEN ''Bank Transfer''
+ WHEN ''buy now pay later'' THEN ''Buy Now Pay Later''
+ WHEN ''bnpl'' THEN ''Buy Now Pay Later''
+ WHEN ''gift card'' THEN ''Gift Card''
+ WHEN ''paypal'' THEN ''PayPal''
+ WHEN ''cash'' THEN ''Cash''
+ ELSE TRIM(payment_method)
+ END AS payment_method,
+
+ TRY_CONVERT(DATE, record_created_ts) as record_created,
+ TRY_CONVERT(DATE, last_modified_ts ) as last_modified
+ FROM "RetailDB"."bronze"."stg_transactions"
+),
+order_date_cleaning AS
+(
+ SELECT
+ transaction_id,
+
+ CASE
+ WHEN order_month != MONTH(order_date)
+ THEN DATEFROMPARTS(YEAR(order_date), DAY(order_date), MONTH(order_date))
+
+ ELSE order_date
+ END AS order_date,
+
+ ship_date,
+ delivery_date,
+
+ shipping_method,
+ sales_channel,
+ payment_method,
+
+ CASE
+ WHEN record_created IS NULL
+ OR record_created NOT LIKE ''____-__-__''
+ OR TRY_CONVERT(DATE, record_created) IS NULL
+ OR YEAR(record_created) < 2019
+ THEN NULL
+
+ ELSE record_created
+ END as record_created,
+
+ CASE
+ WHEN last_modified IS NULL
+ OR last_modified NOT LIKE ''____-__-__''
+ OR TRY_CONVERT(DATE, last_modified) IS NULL
+ OR YEAR(last_modified) < 2019
+ THEN NULL
+
+ ELSE last_modified
+ END as last_modified
+
+ FROM transaction_fulfillment
+),
+ship_date_cleaning AS
+(
+ SELECT
+ transaction_id,
+ order_date ,
+
+ CASE
+ WHEN DATEDIFF(DAY ,order_date, ship_date) < 0
+ THEN DATEFROMPARTS(YEAR(ship_date), DAY(ship_date), MONTH(ship_date))
+
+ WHEN DATEDIFF(DAY ,order_date, ship_date) > 15
+ THEN DATEFROMPARTS(YEAR(ship_date), DAY(ship_date), MONTH(ship_date))
+
+ WHEN ship_date IS NULL
+ THEN DATEADD(DAY, 7, order_date)
+
+ ELSE ship_date
+ END as ship_date ,
+
+ delivery_date,
+ shipping_method,
+ sales_channel,
+ payment_method,
+ record_created,
+ last_modified
+ FROM order_date_cleaning
+),
+int_transaction_fulfillment AS
+(
+ SELECT
+ transaction_id,
+ order_date,
+ ship_date,
+
+ CASE
+ WHEN DATEDIFF(DAY, ship_date , delivery_date) > 17
+ THEN DATEFROMPARTS(YEAR(delivery_date), DAY(delivery_date), MONTH(delivery_date))
+
+ WHEN DATEDIFF(DAY, ship_date , delivery_date) < -15
+ THEN DATEFROMPARTS(YEAR(delivery_date), DAY(delivery_date), MONTH(delivery_date))
+
+ ELSE delivery_date
+ END as delivery_date,
+
+ shipping_method,
+ sales_channel,
+ payment_method,
+ record_created,
+ last_modified
+ FROM ship_date_cleaning
+)
+SELECT
+ transaction_id,
+ order_date,
+ ship_date,
+ delivery_date,
+ shipping_method,
+ sales_channel,
+ payment_method,
+ record_created,
+ last_modified
+FROM int_transaction_fulfillment;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_transaction_fulfillment__dbt_tmp" FROM "RetailDB"."bronze"."int_transaction_fulfillment__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_transaction_fulfillment__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_transaction_fulfillment__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_transaction_fulfillment__dbt_tmp')
+ )
+ DROP index "bronze"."int_transaction_fulfillment__dbt_tmp".bronze_int_transaction_fulfillment__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_transaction_fulfillment__dbt_tmp_cci
+ ON "bronze"."int_transaction_fulfillment__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_order.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_order.sql
new file mode 100644
index 0000000..3ed2e65
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_order.sql
@@ -0,0 +1,54 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_transaction_order__dbt_tmp__dbt_tmp_vw" AS SELECT
+ transaction_id,
+ order_id,
+ customer_id,
+ product_id,
+ store_id,
+ employee_id,
+ CASE
+ WHEN order_line_number < 1 THEN NULL
+ WHEN order_line_number > 20 THEN NULL
+ ELSE order_line_number
+ END as order_line_number
+FROM "RetailDB"."bronze"."stg_transactions" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_transaction_order__dbt_tmp" FROM "RetailDB"."bronze"."int_transaction_order__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_transaction_order__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_transaction_order__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_transaction_order__dbt_tmp')
+ )
+ DROP index "bronze"."int_transaction_order__dbt_tmp".bronze_int_transaction_order__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_transaction_order__dbt_tmp_cci
+ ON "bronze"."int_transaction_order__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_status.sql b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_status.sql
new file mode 100644
index 0000000..9a98788
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/intermediate/Transactions/int_transaction_status.sql
@@ -0,0 +1,89 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."int_transaction_status__dbt_tmp__dbt_tmp_vw" AS SELECT
+ transaction_id,
+
+ promo_id,
+
+ CASE TRIM(LOWER(promo_name))
+ WHEN ''winter clearance'' THEN ''Winter Clearance''
+ WHEN ''bundle deal'' THEN ''Bundle Deal''
+ WHEN ''no promo'' THEN ''No Promo''
+ WHEN ''flash sale'' THEN ''Flash Sale''
+ WHEN ''black friday'' THEN ''Black Friday''
+ WHEN ''holiday special'' THEN ''Holiday Special''
+ WHEN ''weekend deal'' THEN ''Weekend Deal''
+ WHEN ''loyalty reward'' THEN ''Loyalty Reward''
+ WHEN ''cyber monday'' THEN ''Cyber Monday''
+ ELSE TRIM(promo_name)
+ END AS promo_name,
+
+ CASE TRIM(LOWER(order_status))
+ WHEN ''pending'' THEN ''Pending''
+ WHEN ''processing'' THEN ''Processing''
+ WHEN ''shipped'' THEN ''Shipped''
+ WHEN ''delivered'' THEN ''Delivered''
+ WHEN ''returned'' THEN ''Returned''
+ WHEN ''cancelled'' THEN ''Cancelled''
+ ELSE TRIM(order_status)
+ END AS order_status,
+
+ CASE
+ WHEN TRIM(LOWER(is_returned)) IN (''yes'', ''y'', ''true'', ''1'')
+ THEN ''True''
+
+ WHEN TRIM(LOWER(is_returned)) IN (''no'', ''n'', ''false'', ''0'')
+ THEN ''False''
+
+ ELSE ''Unknown''
+ END AS is_returned,
+
+ CASE TRIM(LOWER(data_source))
+ WHEN ''crm'' THEN ''CRM''
+ WHEN ''web'' THEN ''Web''
+ WHEN ''pos'' THEN ''POS''
+ WHEN ''manual'' THEN ''Manual''
+ WHEN ''erp'' THEN ''ERP''
+ ELSE ''Unknown''
+ END AS data_source
+
+FROM "RetailDB"."bronze"."stg_transactions" ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."int_transaction_status__dbt_tmp" FROM "RetailDB"."bronze"."int_transaction_status__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."int_transaction_status__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_int_transaction_status__dbt_tmp_cci'
+ AND object_id=object_id('bronze_int_transaction_status__dbt_tmp')
+ )
+ DROP index "bronze"."int_transaction_status__dbt_tmp".bronze_int_transaction_status__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_int_transaction_status__dbt_tmp_cci
+ ON "bronze"."int_transaction_status__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/accepted_values_dim_stores_is_active__True__False__Unknown.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/accepted_values_dim_stores_is_active__True__False__Unknown.sql
new file mode 100644
index 0000000..a0b13c0
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/accepted_values_dim_stores_is_active__True__False__Unknown.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_acd7f29e5d3c18a4872ac7cb6434b658_7024]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ is_active as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."dim_stores"
+ group by is_active
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''True'',''False'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_acd7f29e5d3c18a4872ac7cb6434b658_7024]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_acd7f29e5d3c18a4872ac7cb6434b658_7024]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_customers_customer_id.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_customers_customer_id.sql
new file mode 100644
index 0000000..5bb9dd3
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_customers_customer_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_4f66223b636e21ed98b5dafb116e8318_4878]
+ as
+
+
+
+
+
+
+select customer_id
+from "RetailDB"."bronze"."dim_customers"
+where customer_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_4f66223b636e21ed98b5dafb116e8318_4878]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_4f66223b636e21ed98b5dafb116e8318_4878]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_employees_employee_id.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_employees_employee_id.sql
new file mode 100644
index 0000000..e626183
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_employees_employee_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a5f5c6ec12f361eec8eca8f56b3b17ff_13516]
+ as
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."dim_employees"
+where employee_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a5f5c6ec12f361eec8eca8f56b3b17ff_13516]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a5f5c6ec12f361eec8eca8f56b3b17ff_13516]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_products_product_id.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_products_product_id.sql
new file mode 100644
index 0000000..f0b4317
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_products_product_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_795443c5df9e3c0d6006a098f9724a46_17218]
+ as
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."dim_products"
+where product_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_795443c5df9e3c0d6006a098f9724a46_17218]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_795443c5df9e3c0d6006a098f9724a46_17218]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_stores_store_id.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_stores_store_id.sql
new file mode 100644
index 0000000..56e6088
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/not_null_dim_stores_store_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_8de62e3fce7d0456038265d8126317b2_13794]
+ as
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."dim_stores"
+where store_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_8de62e3fce7d0456038265d8126317b2_13794]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_8de62e3fce7d0456038265d8126317b2_13794]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_customers_customer_id.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_customers_customer_id.sql
new file mode 100644
index 0000000..43b4b49
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_customers_customer_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_0e3814641ee2044f02b324e4ee8a6aa7_8624]
+ as
+
+
+
+
+select
+ customer_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."dim_customers"
+where customer_id is not null
+group by customer_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_0e3814641ee2044f02b324e4ee8a6aa7_8624]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_0e3814641ee2044f02b324e4ee8a6aa7_8624]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_employees_employee_id.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_employees_employee_id.sql
new file mode 100644
index 0000000..8b474c0
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_employees_employee_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_457547c2c5d056f0106582524b0d2206_11051]
+ as
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."dim_employees"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_457547c2c5d056f0106582524b0d2206_11051]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_457547c2c5d056f0106582524b0d2206_11051]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_products_product_id.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_products_product_id.sql
new file mode 100644
index 0000000..bd1ee71
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_products_product_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_48b34a7928e330b2b14fdd470651d188_10855]
+ as
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."dim_products"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_48b34a7928e330b2b14fdd470651d188_10855]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_48b34a7928e330b2b14fdd470651d188_10855]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_stores_store_id.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_stores_store_id.sql
new file mode 100644
index 0000000..83828ec
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/_dim_models.yml/unique_dim_stores_store_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_0d5d74d894beba2da7342edf9a72a77c_18365]
+ as
+
+
+
+
+select
+ store_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."dim_stores"
+where store_id is not null
+group by store_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_0d5d74d894beba2da7342edf9a72a77c_18365]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_0d5d74d894beba2da7342edf9a72a77c_18365]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_customers.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_customers.sql
new file mode 100644
index 0000000..a5f755e
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_customers.sql
@@ -0,0 +1,72 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."dim_customers__dbt_tmp__dbt_tmp_vw" AS SELECT
+ p.customer_id,
+ TRIM(CONCAT(p.title, '' '', p.first_name, '' '', p.last_name)) as customer_name,
+ p.gender,
+ p.date_of_birth,
+ c.email,
+ c.phone,
+ l.address,
+ l.zip_code,
+ l.city,
+ l.region,
+ l.state,
+ l.state_abbr,
+ l.country,
+ s.company,
+ s.customer_segment,
+ c.preferred_channel,
+ s.is_active,
+ s.loyalty_points,
+ s.annual_income_usd,
+ s.account_created_date
+FROM "RetailDB"."bronze"."int_customer_profile" as p
+
+LEFT JOIN "RetailDB"."bronze"."int_customers_contact" as c
+ ON p.customer_id = c.customer_id
+
+LEFT JOIN "RetailDB"."bronze"."int_customer_location" as l
+ ON p.customer_id = l.customer_id
+
+LEFT JOIN "RetailDB"."bronze"."int_customer_segmentation" as s
+ ON s.customer_id = p.customer_id ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."dim_customers__dbt_tmp" FROM "RetailDB"."bronze"."dim_customers__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."dim_customers__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_dim_customers__dbt_tmp_cci'
+ AND object_id=object_id('bronze_dim_customers__dbt_tmp')
+ )
+ DROP index "bronze"."dim_customers__dbt_tmp".bronze_dim_customers__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_dim_customers__dbt_tmp_cci
+ ON "bronze"."dim_customers__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_date.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_date.sql
new file mode 100644
index 0000000..1ddafe5
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_date.sql
@@ -0,0 +1,71 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."dim_date__dbt_tmp__dbt_tmp_vw" AS WITH dates AS (
+ SELECT order_date AS date_day FROM "RetailDB"."bronze"."int_transaction_fulfillment"
+ UNION
+ SELECT ship_date AS date_day FROM "RetailDB"."bronze"."int_transaction_fulfillment"
+ UNION
+ SELECT delivery_date AS date_day FROM "RetailDB"."bronze"."int_transaction_fulfillment"
+ UNION
+ SELECT return_date AS date_day FROM "RetailDB"."bronze"."int_return_transaction"
+ UNION
+ SELECT review_date AS date_day FROM "RetailDB"."bronze"."int_review_transaction"
+ UNION
+ SELECT snapshot_date AS date_day FROM "RetailDB"."bronze"."int_inventory_product"
+)
+
+SELECT
+ date_day,
+ YEAR(date_day) AS year_number,
+ DATEPART(QUARTER, date_day) AS quarter_number,
+ MONTH(date_day) AS month_number,
+ DATENAME(MONTH, date_day) AS month_name,
+ DAY(date_day) AS day_of_month,
+ DATEPART(WEEK, date_day) AS week_number,
+ DATENAME(WEEKDAY, date_day) AS day_name,
+ DATEPART(WEEKDAY, date_day) AS day_of_week_number,
+ CASE
+ WHEN DATEPART(WEEKDAY, date_day) IN (1, 7) THEN ''Weekend''
+ ELSE ''Weekday''
+ END AS day_type
+FROM dates
+WHERE date_day IS NOT NULL;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."dim_date__dbt_tmp" FROM "RetailDB"."bronze"."dim_date__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."dim_date__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_dim_date__dbt_tmp_cci'
+ AND object_id=object_id('bronze_dim_date__dbt_tmp')
+ )
+ DROP index "bronze"."dim_date__dbt_tmp".bronze_dim_date__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_dim_date__dbt_tmp_cci
+ ON "bronze"."dim_date__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_employees.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_employees.sql
new file mode 100644
index 0000000..61b0166
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_employees.sql
@@ -0,0 +1,65 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."dim_employees__dbt_tmp__dbt_tmp_vw" AS SELECT
+ p.employee_id,
+ e.store_id,
+ e.manager_id,
+ CONCAT(p.first_name, '' '', p.last_name) as employee_name,
+ e.job_title,
+ e.department,
+ e.performance_rating,
+ e.store_name,
+ e.store_city,
+ c.email,
+ c.phone,
+ e.annual_salary_usd,
+ e.commission_rate_pct,
+ e.years_employed,
+ e.is_active,
+ p.hire_date
+FROM "RetailDB"."bronze"."int_employee_profile" as p
+
+LEFT JOIN "RetailDB"."bronze"."int_employee_contact" as c
+ ON p.employee_id = c.employee_id
+
+LEFT JOIN "RetailDB"."bronze"."int_employee_employment" as e
+ ON p.employee_id = e.employee_id ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."dim_employees__dbt_tmp" FROM "RetailDB"."bronze"."dim_employees__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."dim_employees__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_dim_employees__dbt_tmp_cci'
+ AND object_id=object_id('bronze_dim_employees__dbt_tmp')
+ )
+ DROP index "bronze"."dim_employees__dbt_tmp".bronze_dim_employees__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_dim_employees__dbt_tmp_cci
+ ON "bronze"."dim_employees__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_inventory.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_inventory.sql
new file mode 100644
index 0000000..70a9e7a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_inventory.sql
@@ -0,0 +1,117 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."dim_inventory__dbt_tmp__dbt_tmp_vw" AS -- models/marts/core/dimensions/dim_inventory.sql
+
+
+/*
+ Description: Product dimension with SCD Type 2 tracking
+ Grain: 1 row per product snapshot change
+ Load: Full refresh daily
+*/
+
+WITH product_base AS (
+ SELECT
+ p.inventory_snapshot_sk,
+ p.snapshot_date,
+ p.product_id,
+ p.product_name,
+ p.sku,
+ p.category,
+ v.unit_cost,
+ v.unit_price,
+ v.warehouse_location,
+ v.store_id
+ FROM "RetailDB"."bronze"."int_inventory_product" p
+ INNER JOIN "RetailDB"."bronze"."int_inventory_valuation" v
+ ON p.inventory_snapshot_sk = v.inventory_snapshot_sk
+),
+
+product_with_lead AS (
+ SELECT
+ *,
+ LEAD(snapshot_date) OVER (
+ PARTITION BY product_id
+ ORDER BY snapshot_date
+ ) as next_effective_date
+ FROM product_base
+)
+
+SELECT
+
+ lower(convert(varchar(50), hashbytes(''md5'', coalesce(convert(varchar(8000), concat(coalesce(cast(product_id as VARCHAR(MAX)), ''_dbt_utils_surrogate_key_null_''), ''-'', coalesce(cast(snapshot_date as VARCHAR(MAX)), ''_dbt_utils_surrogate_key_null_''))), '''')), 2))
+ as product_snapshot_sk,
+
+ product_id,
+ inventory_snapshot_sk,
+ product_name,
+ sku,
+ category,
+
+ unit_cost,
+ unit_price,
+ unit_price - unit_cost as unit_margin,
+ CASE
+ WHEN unit_price = 0 OR unit_price IS NULL THEN 0
+ ELSE ROUND(((unit_price - unit_cost) / unit_price) * 100, 2)
+ END as margin_percentage,
+
+ warehouse_location,
+ store_id,
+
+ snapshot_date as effective_from_date,
+ next_effective_date as effective_to_date,
+
+ CASE
+ WHEN next_effective_date IS NULL THEN 1
+ ELSE 0
+ END as is_current_record,
+
+ CASE
+ WHEN unit_cost > unit_price THEN 1
+ ELSE 0
+ END as is_negative_margin,
+
+ GETDATE() as dbt_created_at,
+ GETDATE() as dbt_updated_at
+
+FROM product_with_lead
+WHERE snapshot_date IS NOT NULL;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."dim_inventory__dbt_tmp" FROM "RetailDB"."bronze"."dim_inventory__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."dim_inventory__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_dim_inventory__dbt_tmp_cci'
+ AND object_id=object_id('bronze_dim_inventory__dbt_tmp')
+ )
+ DROP index "bronze"."dim_inventory__dbt_tmp".bronze_dim_inventory__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_dim_inventory__dbt_tmp_cci
+ ON "bronze"."dim_inventory__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_products.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_products.sql
new file mode 100644
index 0000000..f766f2f
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_products.sql
@@ -0,0 +1,70 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."dim_products__dbt_tmp__dbt_tmp_vw" AS SELECT
+ a.product_id,
+ a.sku,
+ a.product_name,
+ a.brand,
+ a.category,
+ a.sub_category,
+ a.department,
+ a.launched_date,
+ a.product_url,
+ p.base_price_usd,
+ p.cost_price_usd,
+ p.gross_margin_pct,
+ i.is_available,
+ i.stock_quantity,
+ i.reorder_level,
+ s.supplier_name,
+ s.supplier_country,
+ s.weight_kg,
+ s.warranty_years,
+ s.rating_avg,
+ s.review_count
+FROM "RetailDB"."bronze"."int_product_attributes" AS a
+LEFT JOIN "RetailDB"."bronze"."int_product_pricing" AS p
+ ON a.product_id = p.product_id
+LEFT JOIN "RetailDB"."bronze"."int_product_inventory" AS i
+ ON a.product_id = i.product_id
+LEFT JOIN "RetailDB"."bronze"."int_product_supplier" AS s
+ ON a.product_id = s.product_id ;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."dim_products__dbt_tmp" FROM "RetailDB"."bronze"."dim_products__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."dim_products__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_dim_products__dbt_tmp_cci'
+ AND object_id=object_id('bronze_dim_products__dbt_tmp')
+ )
+ DROP index "bronze"."dim_products__dbt_tmp".bronze_dim_products__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_dim_products__dbt_tmp_cci
+ ON "bronze"."dim_products__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_stores.sql b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_stores.sql
new file mode 100644
index 0000000..1372eda
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/dimensions/dim_stores.sql
@@ -0,0 +1,68 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."dim_stores__dbt_tmp__dbt_tmp_vw" AS SELECT
+ p.store_id,
+ p.store_name,
+ p.store_type,
+ p.manager_name,
+ p.opened_date,
+ l.address,
+ l.city,
+ l.state,
+ l.state_full,
+ l.zip_code,
+ l.country,
+ l.region,
+ l.district,
+ l.phone,
+ o.sq_footage,
+ o.num_employees,
+ o.annual_rent_usd,
+ o.is_active,
+ o.has_parking,
+ o.has_cafe
+FROM "RetailDB"."bronze"."int_store_profile" AS p
+LEFT JOIN "RetailDB"."bronze"."int_store_location" AS l
+ ON p.store_id = l.store_id
+LEFT JOIN "RetailDB"."bronze"."int_store_operations" AS o
+ ON p.store_id = o.store_id
+WHERE p.store_id IS NOT NULL;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."dim_stores__dbt_tmp" FROM "RetailDB"."bronze"."dim_stores__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."dim_stores__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_dim_stores__dbt_tmp_cci'
+ AND object_id=object_id('bronze_dim_stores__dbt_tmp')
+ )
+ DROP index "bronze"."dim_stores__dbt_tmp".bronze_dim_stores__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_dim_stores__dbt_tmp_cci
+ ON "bronze"."dim_stores__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_inventory__23893e91b105c3a3eb88f6f15e255939.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_inventory__23893e91b105c3a3eb88f6f15e255939.sql
new file mode 100644
index 0000000..68be185
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_inventory__23893e91b105c3a3eb88f6f15e255939.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_3069796245d336a3dd9ff3d95f3700e9_3503]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ is_reorder_needed as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."fct_inventory_snapshot"
+ group by is_reorder_needed
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Yes'',''No'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_3069796245d336a3dd9ff3d95f3700e9_3503]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_3069796245d336a3dd9ff3d95f3700e9_3503]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_2f1962838dd9c36ea4131242fea3d0bc.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_2f1962838dd9c36ea4131242fea3d0bc.sql
new file mode 100644
index 0000000..b745095
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_2f1962838dd9c36ea4131242fea3d0bc.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_d1a7544a484d6b419bf78ce11d374814_18649]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ order_status as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."fct_sales"
+ group by order_status
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''Pending'',''Processing'',''Shipped'',''Delivered'',''Returned'',''Cancelled''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_d1a7544a484d6b419bf78ce11d374814_18649]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_d1a7544a484d6b419bf78ce11d374814_18649]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_is_returned__True__False__Unknown.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_is_returned__True__False__Unknown.sql
new file mode 100644
index 0000000..59cda66
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/accepted_values_fct_sales_is_returned__True__False__Unknown.sql
@@ -0,0 +1,54 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_7653eacc5a92fa15b00cea7e31376adf_14923]
+ as
+
+
+
+
+with all_values as (
+
+ select
+ is_returned as value_field,
+ count(*) as n_records
+
+ from "RetailDB"."bronze"."fct_sales"
+ group by is_returned
+
+)
+
+select *
+from all_values
+where value_field not in (
+ ''True'',''False'',''Unknown''
+)
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_7653eacc5a92fa15b00cea7e31376adf_14923]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_7653eacc5a92fa15b00cea7e31376adf_14923]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_inventory_snapshot_inventory_snapshot_sk.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_inventory_snapshot_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..bcdc364
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_inventory_snapshot_inventory_snapshot_sk.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_aa4ce383968a1383e1bef2ed1813850a_12188]
+ as
+
+
+
+
+
+
+select inventory_snapshot_sk
+from "RetailDB"."bronze"."fct_inventory_snapshot"
+where inventory_snapshot_sk is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_aa4ce383968a1383e1bef2ed1813850a_12188]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_aa4ce383968a1383e1bef2ed1813850a_12188]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_sales_transaction_id.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_sales_transaction_id.sql
new file mode 100644
index 0000000..08eec88
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/not_null_fct_sales_transaction_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_e8394af93ad0a687784fd5a883c4c25f_3701]
+ as
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."fct_sales"
+where transaction_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_e8394af93ad0a687784fd5a883c4c25f_3701]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_e8394af93ad0a687784fd5a883c4c25f_3701]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_a85547c523583fbdd44be03535a973e7.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_a85547c523583fbdd44be03535a973e7.sql
new file mode 100644
index 0000000..1ee8146
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_a85547c523583fbdd44be03535a973e7.sql
@@ -0,0 +1,57 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_6ee7ca8e97a7aac85d0e74ae9eda876c_9589]
+ as
+
+
+
+
+with child as (
+ select product_id as from_field
+ from "RetailDB"."bronze"."fct_inventory_snapshot"
+ where product_id is not null
+),
+
+parent as (
+ select product_id as to_field
+ from "RetailDB"."bronze"."dim_products"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_6ee7ca8e97a7aac85d0e74ae9eda876c_9589]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_6ee7ca8e97a7aac85d0e74ae9eda876c_9589]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_e092b716d25a1f43bded7d16734205ce.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_e092b716d25a1f43bded7d16734205ce.sql
new file mode 100644
index 0000000..103278b
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_inventory_sn_e092b716d25a1f43bded7d16734205ce.sql
@@ -0,0 +1,57 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_f8e8acddb19b1a273058046fbb793c2d_9721]
+ as
+
+
+
+
+with child as (
+ select store_id as from_field
+ from "RetailDB"."bronze"."fct_inventory_snapshot"
+ where store_id is not null
+),
+
+parent as (
+ select store_id as to_field
+ from "RetailDB"."bronze"."dim_stores"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_f8e8acddb19b1a273058046fbb793c2d_9721]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_f8e8acddb19b1a273058046fbb793c2d_9721]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_63946367e83a1d38b527bcd41e3c9240.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_63946367e83a1d38b527bcd41e3c9240.sql
new file mode 100644
index 0000000..9ded32e
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_63946367e83a1d38b527bcd41e3c9240.sql
@@ -0,0 +1,57 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_56037ca176f1eabf8b128a2c3a1420f7_2269]
+ as
+
+
+
+
+with child as (
+ select product_id as from_field
+ from "RetailDB"."bronze"."fct_sales"
+ where product_id is not null
+),
+
+parent as (
+ select product_id as to_field
+ from "RetailDB"."bronze"."dim_products"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_56037ca176f1eabf8b128a2c3a1420f7_2269]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_56037ca176f1eabf8b128a2c3a1420f7_2269]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_8088231b0d03c7f74d7137fac6fca2b4.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_8088231b0d03c7f74d7137fac6fca2b4.sql
new file mode 100644
index 0000000..f812bab
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_8088231b0d03c7f74d7137fac6fca2b4.sql
@@ -0,0 +1,57 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_9df83ddd7ebbf7a526b1edb0e0928304_12152]
+ as
+
+
+
+
+with child as (
+ select customer_id as from_field
+ from "RetailDB"."bronze"."fct_sales"
+ where customer_id is not null
+),
+
+parent as (
+ select customer_id as to_field
+ from "RetailDB"."bronze"."dim_customers"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_9df83ddd7ebbf7a526b1edb0e0928304_12152]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_9df83ddd7ebbf7a526b1edb0e0928304_12152]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_b79062f83580756dcc556e71bddab94b.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_b79062f83580756dcc556e71bddab94b.sql
new file mode 100644
index 0000000..e608468
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_b79062f83580756dcc556e71bddab94b.sql
@@ -0,0 +1,57 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a9c1419847871f5abc041c1be7fc6091_6958]
+ as
+
+
+
+
+with child as (
+ select employee_id as from_field
+ from "RetailDB"."bronze"."fct_sales"
+ where employee_id is not null
+),
+
+parent as (
+ select employee_id as to_field
+ from "RetailDB"."bronze"."dim_employees"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a9c1419847871f5abc041c1be7fc6091_6958]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a9c1419847871f5abc041c1be7fc6091_6958]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_store_id__store_id__ref_dim_stores_.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_store_id__store_id__ref_dim_stores_.sql
new file mode 100644
index 0000000..5182e70
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/relationships_fct_sales_store_id__store_id__ref_dim_stores_.sql
@@ -0,0 +1,57 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_8abfbf1de663837729293b0b92bd8fb3_2077]
+ as
+
+
+
+
+with child as (
+ select store_id as from_field
+ from "RetailDB"."bronze"."fct_sales"
+ where store_id is not null
+),
+
+parent as (
+ select store_id as to_field
+ from "RetailDB"."bronze"."dim_stores"
+)
+
+select
+ from_field
+
+from child
+left join parent
+ on child.from_field = parent.to_field
+
+where parent.to_field is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_8abfbf1de663837729293b0b92bd8fb3_2077]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_8abfbf1de663837729293b0b92bd8fb3_2077]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_inventory_snapshot_inventory_snapshot_sk.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_inventory_snapshot_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..76df825
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_inventory_snapshot_inventory_snapshot_sk.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_eee567e52678dc8c5c826b219df3eeaf_6100]
+ as
+
+
+
+
+select
+ inventory_snapshot_sk as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."fct_inventory_snapshot"
+where inventory_snapshot_sk is not null
+group by inventory_snapshot_sk
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_eee567e52678dc8c5c826b219df3eeaf_6100]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_eee567e52678dc8c5c826b219df3eeaf_6100]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_sales_transaction_id.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_sales_transaction_id.sql
new file mode 100644
index 0000000..9002254
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/_fct_models.yml/unique_fct_sales_transaction_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_d6105b38cdcc0e8972f7523d9c85e7d2_5308]
+ as
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."fct_sales"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_d6105b38cdcc0e8972f7523d9c85e7d2_5308]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_d6105b38cdcc0e8972f7523d9c85e7d2_5308]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_inventory_snapshot.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_inventory_snapshot.sql
new file mode 100644
index 0000000..1790ce3
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_inventory_snapshot.sql
@@ -0,0 +1,68 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."fct_inventory_snapshot__dbt_tmp__dbt_tmp_vw" AS SELECT
+ p.inventory_snapshot_sk,
+ p.snapshot_date,
+ p.product_id,
+ v.store_id,
+ p.sku,
+ p.product_name,
+ p.category,
+ s.stock_on_hand,
+ s.stock_reserved,
+ s.stock_available,
+ s.reorder_level,
+ v.unit_cost,
+ v.unit_price,
+ v.inventory_value,
+ v.warehouse_location,
+ CASE
+ WHEN s.stock_available IS NULL OR s.reorder_level IS NULL THEN ''Unknown''
+ WHEN s.stock_available <= s.reorder_level THEN ''Yes''
+ ELSE ''No''
+ END AS is_reorder_needed
+FROM "RetailDB"."bronze"."int_inventory_product" AS p
+LEFT JOIN "RetailDB"."bronze"."int_inventory_stock" AS s
+ ON p.inventory_snapshot_sk = s.inventory_snapshot_sk
+LEFT JOIN "RetailDB"."bronze"."int_inventory_valuation" AS v
+ ON p.inventory_snapshot_sk = v.inventory_snapshot_sk
+WHERE p.inventory_snapshot_sk IS NOT NULL;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."fct_inventory_snapshot__dbt_tmp" FROM "RetailDB"."bronze"."fct_inventory_snapshot__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."fct_inventory_snapshot__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_fct_inventory_snapshot__dbt_tmp_cci'
+ AND object_id=object_id('bronze_fct_inventory_snapshot__dbt_tmp')
+ )
+ DROP index "bronze"."fct_inventory_snapshot__dbt_tmp".bronze_fct_inventory_snapshot__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_fct_inventory_snapshot__dbt_tmp_cci
+ ON "bronze"."fct_inventory_snapshot__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_returns.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_returns.sql
new file mode 100644
index 0000000..4cdab1d
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_returns.sql
@@ -0,0 +1,63 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."fct_returns__dbt_tmp__dbt_tmp_vw" AS SELECT
+ t.return_id,
+ t.original_txn_id,
+ t.original_order_id,
+ t.customer_id,
+ t.product_id,
+ t.quantity_returned,
+ t.return_date,
+ p.return_reason,
+ p.return_channel,
+ p.restocked,
+ p.return_status,
+ p.handled_by_emp_id,
+ p.notes,
+ r.refund_amount,
+ r.refund_method
+FROM "RetailDB"."bronze"."int_return_transaction" AS t
+LEFT JOIN "RetailDB"."bronze"."int_return_processing" AS p
+ ON t.return_id = p.return_id
+LEFT JOIN "RetailDB"."bronze"."int_return_refund" AS r
+ ON t.return_id = r.return_id
+WHERE t.return_id IS NOT NULL;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."fct_returns__dbt_tmp" FROM "RetailDB"."bronze"."fct_returns__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."fct_returns__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_fct_returns__dbt_tmp_cci'
+ AND object_id=object_id('bronze_fct_returns__dbt_tmp')
+ )
+ DROP index "bronze"."fct_returns__dbt_tmp".bronze_fct_returns__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_fct_returns__dbt_tmp_cci
+ ON "bronze"."fct_returns__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_reviews.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_reviews.sql
new file mode 100644
index 0000000..753487a
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_reviews.sql
@@ -0,0 +1,59 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."fct_reviews__dbt_tmp__dbt_tmp_vw" AS SELECT
+ t.review_id,
+ t.txn_id,
+ t.customer_id,
+ t.product_id,
+ t.review_date,
+ t.verified_purchase,
+ r.rating,
+ r.rating_text,
+ f.helpful_votes,
+ f.review_channel,
+ f.review_title
+FROM "RetailDB"."bronze"."int_review_transaction" AS t
+LEFT JOIN "RetailDB"."bronze"."int_review_rating" AS r
+ ON t.review_id = r.review_id
+LEFT JOIN "RetailDB"."bronze"."int_review_feedback" AS f
+ ON t.review_id = f.review_id
+WHERE t.review_id IS NOT NULL;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."fct_reviews__dbt_tmp" FROM "RetailDB"."bronze"."fct_reviews__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."fct_reviews__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_fct_reviews__dbt_tmp_cci'
+ AND object_id=object_id('bronze_fct_reviews__dbt_tmp')
+ )
+ DROP index "bronze"."fct_reviews__dbt_tmp".bronze_fct_reviews__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_fct_reviews__dbt_tmp_cci
+ ON "bronze"."fct_reviews__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_sales.sql b/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_sales.sql
new file mode 100644
index 0000000..d4bc2fd
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/marts/core/facts/fct_sales.sql
@@ -0,0 +1,76 @@
+
+
+ USE [RetailDB];
+ USE [RetailDB];
+
+
+
+
+
+
+ USE [RetailDB];
+ EXEC('
+ CREATE OR ALTER VIEW "bronze"."fct_sales__dbt_tmp__dbt_tmp_vw" AS SELECT
+ o.transaction_id,
+ o.order_id,
+ o.order_line_number,
+ o.customer_id,
+ o.product_id,
+ o.store_id,
+ o.employee_id,
+ f.order_date,
+ f.ship_date,
+ f.delivery_date,
+ f.shipping_method,
+ f.sales_channel,
+ f.payment_method,
+ s.promo_id,
+ s.promo_name,
+ s.order_status,
+ s.is_returned,
+ s.data_source,
+ m.quantity_ordered,
+ m.unit_list_price,
+ m.discount_pct,
+ m.unit_selling_price,
+ m.line_total_before_tax,
+ m.tax_rate_pct,
+ m.tax_amount,
+ m.line_total_with_tax
+FROM "RetailDB"."bronze"."int_transaction_order" AS o
+LEFT JOIN "RetailDB"."bronze"."int_transaction_fulfillment" AS f
+ ON o.transaction_id = f.transaction_id
+LEFT JOIN "RetailDB"."bronze"."int_transaction_status" AS s
+ ON o.transaction_id = s.transaction_id
+LEFT JOIN "RetailDB"."bronze"."int_transaction_financial" AS m
+ ON o.transaction_id = m.transaction_id
+WHERE o.transaction_id IS NOT NULL;;
+ ')
+
+EXEC('
+ SELECT * INTO "RetailDB"."bronze"."fct_sales__dbt_tmp" FROM "RetailDB"."bronze"."fct_sales__dbt_tmp__dbt_tmp_vw"
+ OPTION (LABEL = ''dbt-sqlserver'');
+
+ ')
+
+
+ EXEC('DROP VIEW IF EXISTS "bronze"."fct_sales__dbt_tmp__dbt_tmp_vw"')
+
+
+
+
+ use [RetailDB];
+ if EXISTS (
+ SELECT *
+ FROM sys.indexes with (nolock)
+ WHERE name = 'bronze_fct_sales__dbt_tmp_cci'
+ AND object_id=object_id('bronze_fct_sales__dbt_tmp')
+ )
+ DROP index "bronze"."fct_sales__dbt_tmp".bronze_fct_sales__dbt_tmp_cci
+ CREATE CLUSTERED COLUMNSTORE INDEX bronze_fct_sales__dbt_tmp_cci
+ ON "bronze"."fct_sales__dbt_tmp"
+
+
+
+
+
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/Customers/stg_customers.sql b/target/run/dbt_analytics_engineering/models/staging/Customers/stg_customers.sql
new file mode 100644
index 0000000..a1070c2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/Customers/stg_customers.sql
@@ -0,0 +1 @@
+declare @dbt_sqlserver_noop int;
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/Employees/stg_employees.sql b/target/run/dbt_analytics_engineering/models/staging/Employees/stg_employees.sql
new file mode 100644
index 0000000..a1070c2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/Employees/stg_employees.sql
@@ -0,0 +1 @@
+declare @dbt_sqlserver_noop int;
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/Inventory/stg_inventory.sql b/target/run/dbt_analytics_engineering/models/staging/Inventory/stg_inventory.sql
new file mode 100644
index 0000000..a1070c2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/Inventory/stg_inventory.sql
@@ -0,0 +1 @@
+declare @dbt_sqlserver_noop int;
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/Products/stg_products.sql b/target/run/dbt_analytics_engineering/models/staging/Products/stg_products.sql
new file mode 100644
index 0000000..a1070c2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/Products/stg_products.sql
@@ -0,0 +1 @@
+declare @dbt_sqlserver_noop int;
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/Returns/stg_returns.sql b/target/run/dbt_analytics_engineering/models/staging/Returns/stg_returns.sql
new file mode 100644
index 0000000..a1070c2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/Returns/stg_returns.sql
@@ -0,0 +1 @@
+declare @dbt_sqlserver_noop int;
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/Reviews/stg_reviews.sql b/target/run/dbt_analytics_engineering/models/staging/Reviews/stg_reviews.sql
new file mode 100644
index 0000000..a1070c2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/Reviews/stg_reviews.sql
@@ -0,0 +1 @@
+declare @dbt_sqlserver_noop int;
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/Stores/stg_stores.sql b/target/run/dbt_analytics_engineering/models/staging/Stores/stg_stores.sql
new file mode 100644
index 0000000..a1070c2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/Stores/stg_stores.sql
@@ -0,0 +1 @@
+declare @dbt_sqlserver_noop int;
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/Transactions/stg_transactions.sql b/target/run/dbt_analytics_engineering/models/staging/Transactions/stg_transactions.sql
new file mode 100644
index 0000000..a1070c2
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/Transactions/stg_transactions.sql
@@ -0,0 +1 @@
+declare @dbt_sqlserver_noop int;
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_customers_customer_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_customers_customer_id.sql
new file mode 100644
index 0000000..997611d
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_customers_customer_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_e278cde6220d956d646f0ca2799060a9_11485]
+ as
+
+
+
+
+
+
+select customer_id
+from "RetailDB"."bronze"."stg_customers"
+where customer_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_e278cde6220d956d646f0ca2799060a9_11485]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_e278cde6220d956d646f0ca2799060a9_11485]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_employees_employee_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_employees_employee_id.sql
new file mode 100644
index 0000000..bf2343f
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_employees_employee_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_3d63e9137ebb127a56884a6c39f57475_16328]
+ as
+
+
+
+
+
+
+select employee_id
+from "RetailDB"."bronze"."stg_employees"
+where employee_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_3d63e9137ebb127a56884a6c39f57475_16328]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_3d63e9137ebb127a56884a6c39f57475_16328]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_inventory_snapshot_sk.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..b1962bf
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_inventory_snapshot_sk.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c568e3589e9b1f75d91fc8db5809822d_4817]
+ as
+
+
+
+
+
+
+select inventory_snapshot_sk
+from "RetailDB"."bronze"."stg_inventory"
+where inventory_snapshot_sk is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c568e3589e9b1f75d91fc8db5809822d_4817]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c568e3589e9b1f75d91fc8db5809822d_4817]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_product_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_product_id.sql
new file mode 100644
index 0000000..2647006
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_product_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a76db9c12d3302a0249c5881df80af3d_1366]
+ as
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."stg_inventory"
+where product_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a76db9c12d3302a0249c5881df80af3d_1366]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a76db9c12d3302a0249c5881df80af3d_1366]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_snapshot_date.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_snapshot_date.sql
new file mode 100644
index 0000000..f4ceeec
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_inventory_snapshot_date.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_6cdf786e8b52f8471253323cf36ee27d_3311]
+ as
+
+
+
+
+
+
+select snapshot_date
+from "RetailDB"."bronze"."stg_inventory"
+where snapshot_date is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_6cdf786e8b52f8471253323cf36ee27d_3311]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_6cdf786e8b52f8471253323cf36ee27d_3311]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_product_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_product_id.sql
new file mode 100644
index 0000000..7e0f23d
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_product_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_96e66e134e3a4ed20b379cbb1d6f195f_16283]
+ as
+
+
+
+
+
+
+select product_id
+from "RetailDB"."bronze"."stg_products"
+where product_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_96e66e134e3a4ed20b379cbb1d6f195f_16283]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_96e66e134e3a4ed20b379cbb1d6f195f_16283]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_sku.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_sku.sql
new file mode 100644
index 0000000..7514e9d
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_products_sku.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_1df8d67e27bc6c47d357a0f5f1fa6fb0_8486]
+ as
+
+
+
+
+
+
+select sku
+from "RetailDB"."bronze"."stg_products"
+where sku is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_1df8d67e27bc6c47d357a0f5f1fa6fb0_8486]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_1df8d67e27bc6c47d357a0f5f1fa6fb0_8486]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_returns_return_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_returns_return_id.sql
new file mode 100644
index 0000000..46b421e
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_returns_return_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_36117ed44a9de7c4b7586e3d6a26b6a5_11114]
+ as
+
+
+
+
+
+
+select return_id
+from "RetailDB"."bronze"."stg_returns"
+where return_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_36117ed44a9de7c4b7586e3d6a26b6a5_11114]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_36117ed44a9de7c4b7586e3d6a26b6a5_11114]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_reviews_review_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_reviews_review_id.sql
new file mode 100644
index 0000000..a740d21
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_reviews_review_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_01e244abb8640bea664cfba4b4367f97_14637]
+ as
+
+
+
+
+
+
+select review_id
+from "RetailDB"."bronze"."stg_reviews"
+where review_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_01e244abb8640bea664cfba4b4367f97_14637]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_01e244abb8640bea664cfba4b4367f97_14637]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_stores_store_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_stores_store_id.sql
new file mode 100644
index 0000000..be09147
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_stores_store_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_6752aa5b6ffd8184e3b555732c559430_5936]
+ as
+
+
+
+
+
+
+select store_id
+from "RetailDB"."bronze"."stg_stores"
+where store_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_6752aa5b6ffd8184e3b555732c559430_5936]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_6752aa5b6ffd8184e3b555732c559430_5936]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_order_line_number.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_order_line_number.sql
new file mode 100644
index 0000000..03630f1
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_order_line_number.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_463f110eb29e79e54c67323d61cc4a92_6361]
+ as
+
+
+
+
+
+
+select order_line_number
+from "RetailDB"."bronze"."stg_transactions"
+where order_line_number is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_463f110eb29e79e54c67323d61cc4a92_6361]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_463f110eb29e79e54c67323d61cc4a92_6361]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_transaction_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_transaction_id.sql
new file mode 100644
index 0000000..d1488bf
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/not_null_stg_transactions_transaction_id.sql
@@ -0,0 +1,43 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_39862d738bd76a7fd7390ed43c25caee_8777]
+ as
+
+
+
+
+
+
+select transaction_id
+from "RetailDB"."bronze"."stg_transactions"
+where transaction_id is null
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_39862d738bd76a7fd7390ed43c25caee_8777]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_39862d738bd76a7fd7390ed43c25caee_8777]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_customers_customer_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_customers_customer_id.sql
new file mode 100644
index 0000000..c5d3f1d
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_customers_customer_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_a90adb3c8db37f71e840e52ab2d9e3b4_14951]
+ as
+
+
+
+
+select
+ customer_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_customers"
+where customer_id is not null
+group by customer_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_a90adb3c8db37f71e840e52ab2d9e3b4_14951]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_a90adb3c8db37f71e840e52ab2d9e3b4_14951]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_employees_employee_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_employees_employee_id.sql
new file mode 100644
index 0000000..ab5cf13
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_employees_employee_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_bc296d09846753804307c7176eaf898f_1998]
+ as
+
+
+
+
+select
+ employee_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_employees"
+where employee_id is not null
+group by employee_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_bc296d09846753804307c7176eaf898f_1998]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_bc296d09846753804307c7176eaf898f_1998]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_inventory_inventory_snapshot_sk.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_inventory_inventory_snapshot_sk.sql
new file mode 100644
index 0000000..0527b00
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_inventory_inventory_snapshot_sk.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_e76194da427df3a4af71d5dba76352ad_5162]
+ as
+
+
+
+
+select
+ inventory_snapshot_sk as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_inventory"
+where inventory_snapshot_sk is not null
+group by inventory_snapshot_sk
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_e76194da427df3a4af71d5dba76352ad_5162]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_e76194da427df3a4af71d5dba76352ad_5162]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_products_product_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_products_product_id.sql
new file mode 100644
index 0000000..62d8fb6
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_products_product_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_aa89f849f817b61bcfdc6b879f7ebd81_17049]
+ as
+
+
+
+
+select
+ product_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_products"
+where product_id is not null
+group by product_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_aa89f849f817b61bcfdc6b879f7ebd81_17049]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_aa89f849f817b61bcfdc6b879f7ebd81_17049]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_returns_return_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_returns_return_id.sql
new file mode 100644
index 0000000..ed81141
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_returns_return_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_c647b9e1bd59f556ccd20760c8550f7f_15318]
+ as
+
+
+
+
+select
+ return_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_returns"
+where return_id is not null
+group by return_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_c647b9e1bd59f556ccd20760c8550f7f_15318]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_c647b9e1bd59f556ccd20760c8550f7f_15318]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_reviews_review_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_reviews_review_id.sql
new file mode 100644
index 0000000..9d66892
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_reviews_review_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_66ce817445b368efe7cafd11c40922ee_4527]
+ as
+
+
+
+
+select
+ review_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_reviews"
+where review_id is not null
+group by review_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_66ce817445b368efe7cafd11c40922ee_4527]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_66ce817445b368efe7cafd11c40922ee_4527]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_stores_store_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_stores_store_id.sql
new file mode 100644
index 0000000..3fceedc
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_stores_store_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_bd0cd5a583a7e6752386250f5abedc1c_12716]
+ as
+
+
+
+
+select
+ store_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_stores"
+where store_id is not null
+group by store_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_bd0cd5a583a7e6752386250f5abedc1c_12716]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_bd0cd5a583a7e6752386250f5abedc1c_12716]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_transactions_transaction_id.sql b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_transactions_transaction_id.sql
new file mode 100644
index 0000000..34f4677
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/models/staging/_stg__retail__models.yml/unique_stg_transactions_transaction_id.sql
@@ -0,0 +1,46 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_1175759e0bb4ed1581ca5c86d02d2ef0_17232]
+ as
+
+
+
+
+select
+ transaction_id as unique_field,
+ count(*) as n_records
+
+from "RetailDB"."bronze"."stg_transactions"
+where transaction_id is not null
+group by transaction_id
+having count(*) > 1
+
+
+
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_1175759e0bb4ed1581ca5c86d02d2ef0_17232]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_1175759e0bb4ed1581ca5c86d02d2ef0_17232]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/tests/singular/customer_age_validation.sql b/target/run/dbt_analytics_engineering/tests/singular/customer_age_validation.sql
new file mode 100644
index 0000000..b9eb38b
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/tests/singular/customer_age_validation.sql
@@ -0,0 +1,36 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_5cdd70a679da98ec4e21bc0de5f1a5ee_4610]
+ as
+ SELECT
+ *
+FROM "RetailDB"."bronze"."int_customer_profile"
+WHEREdate_of_birth NOT LIKE ''____-__-__''
+ OR date_of_birth IS NULL ;
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_5cdd70a679da98ec4e21bc0de5f1a5ee_4610]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_5cdd70a679da98ec4e21bc0de5f1a5ee_4610]
+ ;')
\ No newline at end of file
diff --git a/target/run/dbt_analytics_engineering/tests/singular/valid_zip_code.sql b/target/run/dbt_analytics_engineering/tests/singular/valid_zip_code.sql
new file mode 100644
index 0000000..db8f725
--- /dev/null
+++ b/target/run/dbt_analytics_engineering/tests/singular/valid_zip_code.sql
@@ -0,0 +1,36 @@
+
+ -- Create target schema if it does not
+ USE [RetailDB];
+ IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'bronze')
+ BEGIN
+ EXEC('CREATE SCHEMA [bronze]')
+ END
+
+
+
+
+ EXEC('create view
+ [bronze].[testview_5c661fe9c08a1ec4639216f8c3c68e2b_5638]
+ as
+ SELECT *
+FROM "RetailDB"."bronze"."int_customer_location"
+WHERE zip_code IS NULL
+ OR LEN(CAST(zip_code AS VARCHAR(10))) <> 5
+ OR TRY_CAST(zip_code AS INT) IS NULL
+ ;')
+ select
+
+ count(*) as failures,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_warn,
+ case when count(*) != 0
+ then 'true' else 'false' end as should_error
+ from (
+ select * from
+ [bronze].[testview_5c661fe9c08a1ec4639216f8c3c68e2b_5638]
+
+ ) dbt_internal_test;
+
+ EXEC('drop view
+ [bronze].[testview_5c661fe9c08a1ec4639216f8c3c68e2b_5638]
+ ;')
\ No newline at end of file
diff --git a/target/run_results.json b/target/run_results.json
new file mode 100644
index 0000000..3b59dbb
--- /dev/null
+++ b/target/run_results.json
@@ -0,0 +1 @@
+{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/run-results/v6.json", "dbt_version": "1.11.11", "generated_at": "2026-09-27T03:59:14.617140Z", "invocation_id": "4b7dfad9-8a8f-4544-b80b-a3a9d85ef979", "invocation_started_at": "2026-09-27T03:59:07.861982Z", "env": {}}, "results": [{"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.756593Z", "completed_at": "2026-09-27T03:59:09.842218Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:09.846866Z", "completed_at": "2026-09-27T03:59:09.846920Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.09918332099914551, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.stg_customers", "compiled": true, "compiled_code": "SELECT\n customer_id\n ,title\n ,first_name\n ,last_name\n ,full_name\n ,gender\n ,date_of_birth\n ,age\n ,email\n ,phone\n ,address\n ,city\n ,state\n ,state_abbr\n ,state_full\n ,zip_code\n ,country\n ,region\n ,customer_segment\n ,loyalty_points\n ,is_active\n ,account_created_date\n ,preferred_channel\n ,annual_income_usd\n ,company\nFROM \"RetailDB\".\"bronze\".\"customers\";", "relation_name": "\"RetailDB\".\"bronze\".\"stg_customers\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.777915Z", "completed_at": "2026-09-27T03:59:09.844027Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:09.849649Z", "completed_at": "2026-09-27T03:59:09.849681Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.10077476501464844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.stg_employees", "compiled": true, "compiled_code": "SELECT\n employee_id\n ,first_name\n ,last_name\n ,full_name\n ,email\n ,phone\n ,job_title\n ,department\n ,store_id\n ,store_name\n ,store_city\n ,hire_date\n ,years_employed\n ,annual_salary_usd\n ,commission_rate_pct\n ,is_active\n ,performance_rating\n ,manager_id\nFROM \"RetailDB\".\"bronze\".\"employees\";", "relation_name": "\"RetailDB\".\"bronze\".\"stg_employees\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.807606Z", "completed_at": "2026-09-27T03:59:09.845488Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:09.851845Z", "completed_at": "2026-09-27T03:59:09.851870Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.10048747062683105, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.stg_products", "compiled": true, "compiled_code": "SELECT \n product_id\n ,sku\n ,product_name\n ,brand\n ,category\n ,sub_category\n ,department\n ,base_price_usd\n ,cost_price_usd\n ,gross_margin_pct\n ,weight_kg\n ,is_available\n ,stock_quantity\n ,reorder_level\n ,supplier_name\n ,supplier_country\n ,warranty_years\n ,rating_avg\n ,review_count\n ,launched_date\n ,product_url\nFROM \"RetailDB\".\"bronze\".\"products\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"stg_products\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.786848Z", "completed_at": "2026-09-27T03:59:09.848675Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:09.855118Z", "completed_at": "2026-09-27T03:59:09.855137Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.10486125946044922, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.stg_inventory", "compiled": true, "compiled_code": "SELECT\n \n lower(convert(varchar(50), hashbytes('md5', coalesce(convert(varchar(8000), concat(coalesce(cast(snapshot_date as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'), '-', coalesce(cast(product_id as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'), '-', coalesce(cast(store_id as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'))), '')), 2))\n AS inventory_snapshot_sk,\n\n snapshot_date,\n product_id,\n product_name,\n sku,\n category,\n stock_on_hand,\n stock_reserved,\n stock_available,\n reorder_level,\n unit_cost,\n unit_price,\n inventory_value,\n warehouse_location,\n store_id\n\nFROM \"RetailDB\".\"bronze\".\"inventory_snapshots\";", "relation_name": "\"RetailDB\".\"bronze\".\"stg_inventory\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.872062Z", "completed_at": "2026-09-27T03:59:09.909545Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:09.914136Z", "completed_at": "2026-09-27T03:59:09.914170Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.0538487434387207, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.stg_returns", "compiled": true, "compiled_code": "SELECT \n return_id\n ,original_txn_id\n ,original_order_id\n ,customer_id\n ,customer_name\n ,product_id\n ,product_name\n ,quantity_returned\n ,return_date\n ,return_reason\n ,refund_amount\n ,refund_method\n ,return_channel\n ,restocked\n ,return_status\n ,handled_by_emp_id\n ,notes\nFROM \"RetailDB\".\"bronze\".\"returns\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"stg_returns\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.882217Z", "completed_at": "2026-09-27T03:59:09.912360Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:09.919826Z", "completed_at": "2026-09-27T03:59:09.919860Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.056545257568359375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.stg_reviews", "compiled": true, "compiled_code": "SELECT\n review_id\n ,txn_id\n ,customer_id\n ,customer_name\n ,product_id\n ,product_name\n ,rating\n ,rating_text\n ,review_date\n ,verified_purchase\n ,helpful_votes\n ,review_channel\n ,review_title\nFROM \"RetailDB\".\"bronze\".\"reviews\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"stg_reviews\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.891621Z", "completed_at": "2026-09-27T03:59:09.916496Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:09.924859Z", "completed_at": "2026-09-27T03:59:09.924892Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.05962395668029785, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.stg_stores", "compiled": true, "compiled_code": "SELECT \n store_id\n ,store_name\n ,store_type\n ,address\n ,city\n ,state\n ,state_full\n ,zip_code\n ,country\n ,region\n ,district\n ,phone\n ,manager_name\n ,opened_date\n ,sq_footage\n ,num_employees\n ,annual_rent_usd\n ,is_active\n ,has_parking\n ,has_cafe\nFROM \"RetailDB\".\"bronze\".\"stores\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"stg_stores\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.901152Z", "completed_at": "2026-09-27T03:59:09.918481Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:09.927110Z", "completed_at": "2026-09-27T03:59:09.927124Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.05891013145446777, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.stg_transactions", "compiled": true, "compiled_code": "SELECT \n transaction_id\n ,rn\n ,order_id\n ,order_line_number\n ,order_date\n ,order_year\n ,order_month\n ,order_month_name\n ,order_quarter\n ,order_day_of_week\n ,ship_date\n ,delivery_date\n ,customer_id\n ,customer_full_name\n ,customer_first_name\n ,customer_last_name\n ,customer_email\n ,customer_phone\n ,customer_city\n ,customer_state\n ,customer_zip\n ,customer_region\n ,customer_segment\n ,customer_gender\n ,customer_age\n ,customer_age_group\n ,product_id\n ,product_name\n ,sku\n ,brand\n ,category\n ,sub_category\n ,department\n ,quantity_ordered\n ,unit_list_price\n ,discount_pct\n ,unit_selling_price\n ,line_total_before_tax\n ,tax_rate_pct\n ,tax_amount\n ,line_total_with_tax\n ,store_id\n ,store_name\n ,store_city\n ,store_state\n ,store_region\n ,store_type\n ,employee_id\n ,employee_name\n ,employee_job_title\n ,promo_id\n ,promo_name\n ,sales_channel\n ,payment_method\n ,shipping_method\n ,order_status\n ,is_returned\n ,cost_price\n ,gross_profit\n ,data_source\n ,record_created_ts\n ,last_modified_ts\nFROM \n(\nSELECT \n ROW_NUMBER() OVER(\n PARTITION BY transaction_id\n ORDER BY transaction_id\n ) AS rn,\n *\nFROM \"RetailDB\".\"bronze\".\"sales_transactions\"\nWHERE transaction_id IS NOT NULL \n)t WHERE rn = 1;", "relation_name": "\"RetailDB\".\"bronze\".\"stg_transactions\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.943646Z", "completed_at": "2026-09-27T03:59:09.996827Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.022371Z", "completed_at": "2026-09-27T03:59:10.022407Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.09245157241821289, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_customer_location", "compiled": true, "compiled_code": "-- ============================================================================\n-- Model: int_customer_location\n--\n-- Purpose:\n-- Creates a trusted customer location dataset by standardizing geographic\n-- attributes and resolving common data quality issues across customer\n-- addresses. This model corrects city name spelling errors, normalizes\n-- address formatting, validates state and ZIP code information, and\n-- standardizes country values into business-defined categories. The\n-- resulting dataset provides reliable geographic attributes for customer\n-- segmentation, regional reporting, sales analysis, and downstream\n-- dimensional models.\n--\n-- Maintainer: Ritik\n-- ============================================================================\n\n-- dbt.TitleCase is a custom function taht help me to convert string into title case \nSELECT \n customer_id,\n\n CASE \n WHEN address IS NULL OR address = '' \n THEN 'Unknown'\n\n ELSE TRIM(dbo.TitleCase(address))\n END as address,\n\n CASE \n WHEN TRIM(LOWER(city)) = 'an diego' THEN dbo.TitleCase('san diego')\n WHEN TRIM(LOWER(city)) = 'chiago' THEN dbo.TitleCase('chicago')\n WHEN TRIM(LOWER(city)) = 'chrlotte' THEN dbo.TitleCase('charlotte')\n WHEN TRIM(LOWER(city)) = 'dalla' THEN dbo.TitleCase('dallas')\n WHEN TRIM(LOWER(city)) = 'inneapolis' THEN dbo.TitleCase('minneapolis')\n WHEN TRIM(LOWER(city)) = 'louiville' THEN dbo.TitleCase('louisville')\n WHEN TRIM(LOWER(city)) = 'milwakee' THEN dbo.TitleCase('milwaukee')\n WHEN TRIM(LOWER(city)) = 'mnneapolis' THEN dbo.TitleCase('minneapolis')\n WHEN TRIM(LOWER(city)) = 'oklahoma cty' THEN dbo.TitleCase('oklahoma city')\n WHEN TRIM(LOWER(city)) = 'ortland' THEN dbo.TitleCase('portland')\n WHEN TRIM(LOWER(city)) = 'sa diego' THEN dbo.TitleCase('san diego')\n WHEN TRIM(LOWER(city)) = 'san ntonio' THEN dbo.TitleCase('san antonio')\n WHEN TRIM(LOWER(city)) = 'sn antonio' THEN dbo.TitleCase('san antonio')\n WHEN TRIM(city) = '' THEN 'Unknown'\n WHEN city IS NULL THEN 'Unknown'\n ELSE dbo.TitleCase(TRIM(city))\n END AS city,\n \n CASE \n WHEN TRIM(UPPER(state_abbr)) IS NULL OR TRIM(UPPER(state_abbr)) = '' \n THEN 'Unknown'\n\n WHEN LEN(TRIM(UPPER(state_abbr))) != 2 \n THEN 'Unknown'\n \n ELSE TRIM(UPPER(state_abbr))\n END as state_abbr,\n\n CASE\n WHEN TRIM(state_full) IS NULL OR TRIM(state_full) = '' \n THEN 'Unknown'\n\n ELSE TRIM(state_full)\n END AS state,\n\n CASE \n WHEN zip_code IS NULL \n THEN 0\n \n WHEN LEN(zip_code) != 5 \n THEN 0\n\n WHEN TRY_CAST(zip_code AS INT) IS NULL \n THEN 0\n\n ELSE zip_code\n END as zip_code,\n\n CASE \n WHEN \n LOWER(TRIM(country))\n IN ('u.s.a', 'us', 'usa', 'united states') \n THEN 'United States'\n\n ELSE 'Unknown'\n END as country,\n\n CASE \n WHEN region IS NULL OR TRIM(region) = '' \n THEN 'Unknown'\n\n ELSE TRIM(region)\n END as region\nFROM \"RetailDB\".\"bronze\".\"stg_customers\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_customer_location\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.957060Z", "completed_at": "2026-09-27T03:59:10.020544Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.027391Z", "completed_at": "2026-09-27T03:59:10.027430Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.09113430976867676, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_customer_profile", "compiled": true, "compiled_code": "-- ============================================================================\n-- Model: int_customer_profile\n--\n-- Purpose:\n-- Creates a standardized customer profile dataset by applying business\n-- rules to personal customer attributes. This model derives first and last\n-- names from the full name, normalizes gender values into consistent\n-- categories, and converts multiple source date formats into a reliable\n-- DATE data type. The resulting dataset serves as a trusted foundation for\n-- customer demographics, segmentation, personalization, and downstream\n-- dimensional models.\n--\n-- Maintainer: Ritik\n-- ============================================================================\n\nSELECT\n customer_id,\n TRIM(title) as title,\n\n CASE\n WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 2 \n THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)\n\n WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 1 \n THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)\n \n END AS first_name,\n\n PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 1) AS last_name,\n\n CASE \n LOWER(TRIM(gender))\n\n WHEN 'f' THEN 'Female'\n WHEN 'female' THEN 'Female'\n WHEN 'm' THEN 'Male'\n WHEN 'male' THEN 'Male'\n WHEN 'nb' THEN 'Non-Binary'\n WHEN 'non-binary' THEN 'Non-Binary'\n WHEN 'other' THEN 'Other'\n WHEN 'prefer not to say' THEN 'Other'\n ELSE 'Unknown'\n END as gender,\n\n \n\n\n CASE\n WHEN TRIM(date_of_birth) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth))\n\n WHEN TRIM(date_of_birth) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth))\n\n WHEN TRIM(date_of_birth) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 110)\n\n WHEN TRIM(date_of_birth) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 105)\n\n WHEN TRIM(date_of_birth) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth))\n\n WHEN TRIM(date_of_birth) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth))\n\n WHEN TRIM(date_of_birth) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 101)\n\n WHEN TRIM(date_of_birth) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(date_of_birth), 101)\n\n END\n\n AS date_of_birth\n \nFROM \"RetailDB\".\"bronze\".\"stg_customers\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_customer_profile\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.979238Z", "completed_at": "2026-09-27T03:59:10.025197Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.034075Z", "completed_at": "2026-09-27T03:59:10.034117Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.09485101699829102, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_customer_segmentation", "compiled": true, "compiled_code": "-- ============================================================================\n-- Model: int_customer_segmentation\n--\n-- Purpose:\n-- Creates a standardized customer segmentation dataset by applying business\n-- rules to customer profile and account attributes. This model normalizes\n-- customer segments, imputes missing annual income using segment-level\n-- median values, standardizes company names and account status values, and\n-- converts inconsistent account creation dates into a reliable DATE format.\n-- The resulting dataset serves as a trusted foundation for customer\n-- segmentation, loyalty analysis, marketing analytics, and dimensional\n-- modeling.\n--\n-- Maintainer: Ritik\n-- ============================================================================\nSELECT\n customer_id,\n CASE \n WHEN customer_segment IS NULL OR customer_segment = '' \n THEN 'Unknown' \n\n ELSE customer_segment\n END as customer_segment, \n\n TRY_CAST(loyalty_points AS INT) as loyalty_points,\n\n COALESCE(\n annual_income_usd,\n PERCENTILE_CONT(0.5)\n WITHIN GROUP (ORDER BY annual_income_usd)\n OVER (PARTITION BY customer_segment)\n ) as annual_income_usd,\n\n CASE \n WHEN company IS NULL OR company = '' \n THEN 'Unknown'\n\n WHEN TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), '')) = '' \n THEN 'Unknown'\n\n ELSE TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), ''))\n END as company,\n\n CASE \n WHEN \n LOWER(TRIM(is_active))\n IN ('1', 'active', 'true', 'y', 'yes') \n THEN 'True'\n\n WHEN \n LOWER(TRIM(is_active))\n IN ('0', 'inactive', 'false', 'n', 'no') \n THEN 'False'\n\n ELSE 'Unknown'\n END AS is_active,\n\n \n\n\n CASE\n WHEN TRIM(account_created_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(account_created_date))\n\n WHEN TRIM(account_created_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(account_created_date))\n\n WHEN TRIM(account_created_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(account_created_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(account_created_date), 110)\n\n WHEN TRIM(account_created_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(account_created_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(account_created_date), 105)\n\n WHEN TRIM(account_created_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(account_created_date))\n\n WHEN TRIM(account_created_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(account_created_date))\n\n WHEN TRIM(account_created_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(account_created_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(account_created_date), 101)\n\n WHEN TRIM(account_created_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(account_created_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(account_created_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(account_created_date), 101)\n\n END\n\n as account_created_date\n\nFROM \"RetailDB\".\"bronze\".\"stg_customers\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_customer_segmentation\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:09.991551Z", "completed_at": "2026-09-27T03:59:10.031873Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.040192Z", "completed_at": "2026-09-27T03:59:10.040217Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.09942030906677246, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_customers_contact", "compiled": true, "compiled_code": "-- ============================================================================\n-- Model: int_customers_contact\n--\n-- Purpose:\n-- Creates a trusted customer contact dataset by validating, correcting, and\n-- standardizing customer communication attributes. This model repairs common\n-- email formatting issues and domain typographical errors, transforms phone\n-- numbers into a consistent business format, and normalizes preferred\n-- communication channels into standardized business categories. The resulting\n-- dataset provides reliable contact information for customer communication,\n-- marketing campaigns, CRM operations, and downstream analytical models.\n--\n-- Maintainer: Ritik\n-- ============================================================================\nSELECT\n customer_id,\n\n CASE\n WHEN email IS NULL OR TRIM(email) = '' THEN 'Unknown'\n WHEN \n LOWER(TRIM(email))\n NOT LIKE '%@%' \n THEN 'Unknown'\n\n WHEN PATINDEX('%@%@%', \n LOWER(TRIM(email))\n) > 0 \n THEN\n LEFT(\n LOWER(TRIM(email))\n,CHARINDEX('@', \n LOWER(TRIM(email))\n) - 1)\n + '@' +\n REPLACE(\n SUBSTRING(\n \n LOWER(TRIM(email))\n,\n CHARINDEX('@', \n LOWER(TRIM(email))\n) + 1,\n LEN(email)),'@','')\n ELSE\n CONCAT(\n LEFT(\n LOWER(TRIM(email))\n,CHARINDEX('@', \n LOWER(TRIM(email))\n) - 1), '@',\n CASE\n WHEN RIGHT(\n \n LOWER(TRIM(email))\n,\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'yahoocom' THEN 'yahoo.com'\n\n WHEN RIGHT(\n \n LOWER(TRIM(email))\n,\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'iclod.com' THEN 'icloud.com'\n\n WHEN RIGHT(\n \n LOWER(TRIM(email))\n,\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'outook.com' THEN 'outlook.com'\n\n WHEN RIGHT(\n \n LOWER(TRIM(email))\n,\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'ahoo.com' THEN 'yahoo.com'\n\n ELSE RIGHT(\n \n LOWER(TRIM(email))\n,\n LEN(TRIM(email)) - CHARINDEX('@', TRIM(email)))\n END\n )\n END AS email,\n \n \n\n CASE \n WHEN TRIM(phone) LIKE '+1__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 3, 3), ') ',\n SUBSTRING(TRIM(phone), 6, 3),'-',\n SUBSTRING(TRIM(phone),9,4))\n\n WHEN TRIM(phone) LIKE '__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1 ,3), ') ',\n SUBSTRING(TRIM(phone), 4 ,3), '-',\n SUBSTRING(TRIM(phone), 7, 4))\n\n WHEN TRIM(phone) LIKE '___-___-____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone), 9 ,4))\n\n WHEN TRIM(phone) LIKE '___.___.____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone),9, 4))\n\n WHEN TRIM(phone) LIKE '(___) ___-____' \n THEN CONCAT('+1 ', SUBSTRING(TRIM(phone), 1, 14))\n\n WHEN TRIM(phone) IS NULL OR TRIM(phone) = '' \n THEN 'Unknown'\n\n ELSE 'Unknown'\n END\n as phone,\n\n CASE \n LOWER(TRIM(preferred_channel))\n\n WHEN 'app' THEN 'Mobile App'\n WHEN 'mobile app' THEN 'Mobile App'\n WHEN 'mobile' THEN 'Mobile App'\n WHEN 'in store' THEN 'In Store'\n WHEN 'in-store' THEN 'In Store'\n WHEN 'store' THEN 'In Store'\n WHEN 'catalog' THEN 'Catalog'\n WHEN 'online' THEN 'Website'\n WHEN 'web' THEN 'Website'\n WHEN 'phone' THEN 'Phone Call'\n ELSE 'Unknown'\n END as preferred_channel\n\nFROM \"RetailDB\".\"bronze\".\"stg_customers\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_customers_contact\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.053569Z", "completed_at": "2026-09-27T03:59:10.131189Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.149097Z", "completed_at": "2026-09-27T03:59:10.149131Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.1106252670288086, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_customers_customer_id.e2cfb1f9aa", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"RetailDB\".\"bronze\".\"stg_customers\"\nwhere customer_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.097528Z", "completed_at": "2026-09-27T03:59:10.138064Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.151323Z", "completed_at": "2026-09-27T03:59:10.151366Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.10647368431091309, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_stg_customers_customer_id.c7614daada", "compiled": true, "compiled_code": "\n \n \n\nselect\n customer_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_customers\"\nwhere customer_id is not null\ngroup by customer_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.114504Z", "completed_at": "2026-09-27T03:59:10.153839Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.158306Z", "completed_at": "2026-09-27T03:59:10.158334Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.10828113555908203, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_employee_contact", "compiled": true, "compiled_code": "SELECT \n employee_id,\n\n CASE \n WHEN email IS NULL OR \n \n LOWER(TRIM(email))\n = '' THEN 'Unknown'\n\n WHEN email NOT LIKE '%@%' \n THEN 'Unknown'\n\n WHEN PATINDEX('%@%@%', \n LOWER(TRIM(email))\n) > 0 \n THEN \n LEFT(\n LOWER(TRIM(email))\n, CHARINDEX('@', \n LOWER(TRIM(email))\n) -1)\n + '@' + REPLACE(SUBSTRING(\n LOWER(TRIM(email))\n, CHARINDEX('@', \n LOWER(TRIM(email))\n) +1,\n LEN(\n LOWER(TRIM(email))\n)), '@' ,'')\n\n ELSE \n LOWER(TRIM(email))\n\n\n END as email,\n\n \n\n CASE \n WHEN TRIM(phone) LIKE '+1__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 3, 3), ') ',\n SUBSTRING(TRIM(phone), 6, 3),'-',\n SUBSTRING(TRIM(phone),9,4))\n\n WHEN TRIM(phone) LIKE '__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1 ,3), ') ',\n SUBSTRING(TRIM(phone), 4 ,3), '-',\n SUBSTRING(TRIM(phone), 7, 4))\n\n WHEN TRIM(phone) LIKE '___-___-____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone), 9 ,4))\n\n WHEN TRIM(phone) LIKE '___.___.____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone),9, 4))\n\n WHEN TRIM(phone) LIKE '(___) ___-____' \n THEN CONCAT('+1 ', SUBSTRING(TRIM(phone), 1, 14))\n\n WHEN TRIM(phone) IS NULL OR TRIM(phone) = '' \n THEN 'Unknown'\n\n ELSE 'Unknown'\n END\n as phone\nFROM \"RetailDB\".\"bronze\".\"stg_employees\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_employee_contact\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.132925Z", "completed_at": "2026-09-27T03:59:10.160581Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.166707Z", "completed_at": "2026-09-27T03:59:10.166748Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.09802770614624023, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_employee_employment", "compiled": true, "compiled_code": "SELECT\n employee_id,\n\n CASE \n WHEN job_title IS NULL OR job_title = '' THEN 'Unknown'\n ELSE TRIM(job_title) \n END as job_title,\n\n CASE \n WHEN department IS NULL OR department = '' THEN 'Unknown'\n ELSE TRIM(department)\n END as department,\n\n CASE \n WHEN store_id < 0 OR TRY_CONVERT(INT, store_id) IS NULL THEN NULL\n ELSE TRY_CONVERT(INT, store_id) \n END as store_id,\n\n CASE \n WHEN store_name IS NULL OR store_name = '' THEN 'Unknown'\n ELSE TRIM(store_name)\n END as store_name,\n\n CASE \n WHEN store_city IS NULL OR LEN(store_city) < 4 OR store_city = '' THEN 'Unknown'\n ELSE TRIM(store_city)\n END store_city,\n\n CASE \n WHEN annual_salary_usd IS NULL \n OR TRY_CONVERT(DECIMAL(18,2), annual_salary_usd) IS NULL \n OR TRY_CONVERT(DECIMAL(18,2), annual_salary_usd) < 0 THEN NULL\n ELSE TRY_CONVERT(DECIMAL(18,2), annual_salary_usd)\n END AS annual_salary_usd,\n\n CASE \n WHEN commission_rate_pct IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), commission_rate_pct) IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), commission_rate_pct) < 0 THEN NULL\n ELSE TRY_CONVERT(DECIMAL(4,2), commission_rate_pct)\n END AS commission_rate_pct,\n\n CASE\n WHEN \n LOWER(TRIM(performance_rating))\n IN ('excellent', 'a', '5') THEN 'Excellent'\n WHEN \n LOWER(TRIM(performance_rating))\n IN ('good', 'b', '4') THEN 'Good'\n WHEN \n LOWER(TRIM(performance_rating))\n IN ('average', 'c', '3') THEN 'Average'\n WHEN \n LOWER(TRIM(performance_rating))\n IN ('below average', 'd', '2') THEN 'Below Average'\n WHEN performance_rating IS NULL OR TRIM(performance_rating) = '' THEN 'Unknown'\n ELSE 'Unknown'\n END AS performance_rating,\n\n CASE \n WHEN years_employed IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), years_employed) IS NULL \n OR TRY_CONVERT(DECIMAL(4,2), years_employed) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(4,2), TRY_CONVERT(DECIMAL(4,2), years_employed))\n END years_employed,\n\n CASE \n WHEN TRY_CONVERT(INT ,manager_id) IS NULL THEN NULL \n ELSE manager_id \n END as manager_id,\n\n CASE\n WHEN \n LOWER(TRIM(is_active))\n IN ('active', 'y', 'yes', '1', 'true') THEN 'True'\n WHEN \n LOWER(TRIM(is_active))\n IN ('terminated', 'n', 'no', '0', 'false') THEN 'False'\n ELSE NULL\n END AS is_active\nFROM \"RetailDB\".\"bronze\".\"stg_employees\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_employee_employment\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.178614Z", "completed_at": "2026-09-27T03:59:10.219703Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.226628Z", "completed_at": "2026-09-27T03:59:10.226662Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06507468223571777, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_employee_profile", "compiled": true, "compiled_code": "SELECT \n employee_id, \n\n CASE \n WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ','')) = 1 THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)\n END as first_name,\n\n PARSENAME(REPLACE(TRIM(full_name),' ','.'),1) as last_name,\n\n \n\n\n CASE\n WHEN TRIM(hire_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(hire_date))\n\n WHEN TRIM(hire_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(hire_date))\n\n WHEN TRIM(hire_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(hire_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(hire_date), 110)\n\n WHEN TRIM(hire_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(hire_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(hire_date), 105)\n\n WHEN TRIM(hire_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(hire_date))\n\n WHEN TRIM(hire_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(hire_date))\n\n WHEN TRIM(hire_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(hire_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(hire_date), 101)\n\n WHEN TRIM(hire_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(hire_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(hire_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(hire_date), 101)\n\n END\n\n as hire_date\nFROM \"RetailDB\".\"bronze\".\"stg_employees\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_employee_profile\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.190036Z", "completed_at": "2026-09-27T03:59:10.225174Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.241721Z", "completed_at": "2026-09-27T03:59:10.241773Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.0789794921875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_employees_employee_id.7f6f73d15b", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"stg_employees\"\nwhere employee_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.208864Z", "completed_at": "2026-09-27T03:59:10.245890Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.251718Z", "completed_at": "2026-09-27T03:59:10.251752Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.07827210426330566, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_stg_employees_employee_id.db72478d64", "compiled": true, "compiled_code": "\n \n \n\nselect\n employee_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_employees\"\nwhere employee_id is not null\ngroup by employee_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.229378Z", "completed_at": "2026-09-27T03:59:10.254053Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.260094Z", "completed_at": "2026-09-27T03:59:10.260131Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.05421566963195801, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_product_attributes", "compiled": true, "compiled_code": "SELECT\n CASE \n WHEN TRY_CONVERT(INT, product_id) IS NULL THEN NULL \n ELSE TRY_CONVERT(INT, product_id)\n END as product_id,\n\n CASE \n WHEN TRIM(sku) = '' OR sku IS NULL OR LEN(TRIM(sku)) != 13 THEN 'Unknown'\n ELSE TRIM(UPPER(sku))\n END as sku,\n\n CASE \n WHEN TRIM(product_name) = '' OR product_name IS NULL THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(product_name))\n END as product_name,\n\n CASE \n WHEN TRIM(brand) = '' OR brand IS NULL THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(brand))\n END as brand,\n\n CASE \n WHEN category IS NULL OR TRIM(category) = '' THEN 'Unknown'\n ELSE TRIM(dbo.titleCase(category))\n END AS category,\n\n CASE \n WHEN sub_category IS NULL OR TRIM(sub_category) = '' THEN 'Unknown'\n ELSE dbo.TitleCase(TRIM(sub_category))\n END AS sub_category,\n\n CASE \n WHEN department IS NULL OR TRIM(department) = '' THEN 'Unknown'\n ELSE dbo.TitleCase(TRIM(department))\n END AS department,\n\n \n\n\n CASE\n WHEN TRIM(launched_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(launched_date))\n\n WHEN TRIM(launched_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(launched_date))\n\n WHEN TRIM(launched_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(launched_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(launched_date), 110)\n\n WHEN TRIM(launched_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(launched_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(launched_date), 105)\n\n WHEN TRIM(launched_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(launched_date))\n\n WHEN TRIM(launched_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(launched_date))\n\n WHEN TRIM(launched_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(launched_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(launched_date), 101)\n\n WHEN TRIM(launched_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(launched_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(launched_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(launched_date), 101)\n\n END\n\n as launched_date,\n\n CASE \n WHEN product_url IS NULL OR TRIM(product_url) = '' OR product_url NOT LIKE 'https://%' THEN 'Unknown'\n ELSE REPLACE(REPLACE(\n LOWER(TRIM(product_url))\n, CHAR(13), ''),CHAR(10), '')\n END as product_url\nFROM \"RetailDB\".\"bronze\".\"stg_products\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_product_attributes\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.263633Z", "completed_at": "2026-09-27T03:59:10.295421Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.309895Z", "completed_at": "2026-09-27T03:59:10.309932Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06057405471801758, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_product_inventory", "compiled": true, "compiled_code": "SELECT \n product_id,\n \n CASE\n WHEN \n LOWER(TRIM(is_available))\n IN ('a','y','ye','1','t','tr','in','i') THEN 'Available'\n WHEN \n LOWER(TRIM(is_available))\n IN ('n','no','o','ou') THEN 'Not Available'\n WHEN \n LOWER(TRIM(is_available))\n IN ('d','di') THEN 'Discontinued'\n ELSE 'Unknown'\n END AS is_available,\n\n CASE \n WHEN stock_quantity IS NULL OR TRY_CONVERT(INT , stock_quantity) IS NULL OR TRY_CONVERT(INT , stock_quantity) < 0 THEN NULL\n ELSE TRY_CONVERT(INT , stock_quantity)\n END AS stock_quantity,\n\n CASE \n WHEN reorder_level IS NULL OR TRY_CONVERT(INT , reorder_level) IS NULL OR TRY_CONVERT(INT , reorder_level) < 0 THEN NULL\n ELSE TRY_CONVERT(INT , reorder_level)\n END AS reorder_level\nFROM \"RetailDB\".\"bronze\".\"stg_products\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_product_inventory\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.281967Z", "completed_at": "2026-09-27T03:59:10.312928Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.329242Z", "completed_at": "2026-09-27T03:59:10.329265Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.07397651672363281, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_product_pricing", "compiled": true, "compiled_code": "SELECT\n product_id,\n \n CASE \n WHEN base_price_usd IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', '')) IS NULL THEN NULL\n WHEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', '')) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(base_price_usd, ',', ''),'$', ''))\n END AS base_price_usd,\n\n CASE \n WHEN cost_price_usd IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', '')) IS NULL THEN NULL\n WHEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', '')) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(cost_price_usd, ',', ''),'$', ''))\n END AS cost_price_usd,\n\n CASE \n WHEN gross_margin_pct IS NULL OR TRY_CONVERT(DECIMAL(5,1), gross_margin_pct) IS NULL THEN NULL\n WHEN TRY_CONVERT(DECIMAL(5,1), gross_margin_pct) > 100 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(5,1), gross_margin_pct)\n END AS gross_margin_pct\nFROM \"RetailDB\".\"bronze\".\"stg_products\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_product_pricing\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.297124Z", "completed_at": "2026-09-27T03:59:10.328103Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.332690Z", "completed_at": "2026-09-27T03:59:10.332729Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.05497574806213379, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_product_supplier", "compiled": true, "compiled_code": "SELECT \n product_id,\n\n CASE \n WHEN supplier_name IS NULL OR TRIM(supplier_name) = '' THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(supplier_name))\n END as supplier_name,\n\n CASE \n WHEN supplier_country IS NULL OR TRIM(supplier_country) = '' THEN 'Unknown'\n WHEN supplier_country = 'USA' THEN 'United States'\n ELSE TRIM(dbo.TitleCase(supplier_country))\n END as supplier_country,\n \n CASE \n WHEN TRY_CONVERT(DECIMAL(5,2), weight_kg) IS NULL OR TRY_CONVERT(DECIMAL(5,2), weight_kg) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(5,2), weight_kg)\n END as weight_kg,\n\n CASE \n WHEN TRY_CONVERT(INT, warranty_years) IS NULL OR TRY_CONVERT(INT, warranty_years) < 0 OR TRY_CONVERT(INT, warranty_years) > 20 THEN NULL \n ELSE TRY_CONVERT(INT, warranty_years)\n END as warranty_years,\n\n CASE \n WHEN TRY_CONVERT(DECIMAL(3,1), rating_avg) IS NULL OR TRY_CONVERT(DECIMAL(3,1), rating_avg) < 0 OR TRY_CONVERT(DECIMAL(3,1), rating_avg) > 5 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(3,1), rating_avg)\n END as rating_avg,\n\n CASE \n WHEN TRY_CONVERT(INT, review_count) IS NULL OR TRY_CONVERT(INT, review_count) < 0 THEN NULL \n ELSE TRY_CONVERT(INT, review_count)\n END as review_count\nFROM \"RetailDB\".\"bronze\".\"stg_products\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_product_supplier\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.315407Z", "completed_at": "2026-09-27T03:59:10.337012Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.345169Z", "completed_at": "2026-09-27T03:59:10.345198Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.052344322204589844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_products_product_id.6373b0acf3", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"stg_products\"\nwhere product_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.347709Z", "completed_at": "2026-09-27T03:59:10.372287Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.388158Z", "completed_at": "2026-09-27T03:59:10.388195Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05744481086730957, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_products_sku.a9d39174ce", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect sku\nfrom \"RetailDB\".\"bronze\".\"stg_products\"\nwhere sku is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.362410Z", "completed_at": "2026-09-27T03:59:10.391899Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.407000Z", "completed_at": "2026-09-27T03:59:10.407028Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06436896324157715, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_stg_products_product_id.7d950a1467", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_products\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.374872Z", "completed_at": "2026-09-27T03:59:10.405141Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.410845Z", "completed_at": "2026-09-27T03:59:10.410883Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.05395674705505371, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_inventory_product", "compiled": true, "compiled_code": "SELECT \n inventory_snapshot_sk,\n\n\n\n\n CASE\n WHEN TRIM(snapshot_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date))\n\n WHEN TRIM(snapshot_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date))\n\n WHEN TRIM(snapshot_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(snapshot_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 110)\n\n WHEN TRIM(snapshot_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(snapshot_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 105)\n\n WHEN TRIM(snapshot_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date))\n\n WHEN TRIM(snapshot_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date))\n\n WHEN TRIM(snapshot_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(snapshot_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 101)\n\n WHEN TRIM(snapshot_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(snapshot_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(snapshot_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(snapshot_date), 101)\n\n END\n\n as snapshot_date,\n\n CASE \n WHEN TRY_CONVERT(INT, product_id) IS NULL THEN NULL \n ELSE TRY_CONVERT(INT, product_id)\n END as product_id,\n\n CASE \n WHEN product_name IS NULL OR product_name = '' THEN 'Unknown'\n ELSE TRIM(product_name)\n END as product_name,\n\n CASE \n WHEN sku IS NULL OR sku = '' THEN 'Unknown'\n ELSE TRIM(sku)\n END as sku,\n\n CASE \n WHEN \n LOWER(TRIM(category))\n = 'electronics' THEN 'Electronics'\n WHEN \n LOWER(TRIM(category))\n = 'clothing' THEN 'Clothing'\n WHEN \n LOWER(TRIM(category))\n = 'kitchen' THEN 'Kitchen'\n WHEN \n LOWER(TRIM(category))\n = 'office' THEN 'Office'\n WHEN \n LOWER(TRIM(category))\n = 'sports' THEN 'Sports'\n WHEN \n LOWER(TRIM(category))\n = 'health' THEN 'Health'\n WHEN \n LOWER(TRIM(category))\n = 'beauty' THEN 'Beauty'\n WHEN \n LOWER(TRIM(category))\n = 'footwear' THEN 'Footwear'\n WHEN \n LOWER(TRIM(category))\n = 'toys' THEN 'Toys'\n WHEN \n LOWER(TRIM(category))\n = 'bags' THEN 'Bags'\n ELSE 'Unknown'\n END AS category\nFROM \"RetailDB\".\"bronze\".\"stg_inventory\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_inventory_product\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.394867Z", "completed_at": "2026-09-27T03:59:10.414912Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.421786Z", "completed_at": "2026-09-27T03:59:10.421816Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04874157905578613, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_inventory_stock", "compiled": true, "compiled_code": "WITH inventory as \n(\nSELECT \n inventory_snapshot_sk,\n\n CASE \n WHEN TRY_CONVERT(INT, stock_on_hand) IS NULL OR TRY_CONVERT(INT, stock_on_hand) < 0 THEN NULL \n ELSE TRY_CONVERT(INT, stock_on_hand)\n END AS stock_on_hand,\n\n CASE \n WHEN TRY_CONVERT(INT, stock_reserved) < 0 OR TRY_CONVERT(INT, stock_reserved) IS NULL THEN NULL \n ELSE TRY_CONVERT(INT, stock_reserved)\n END as stock_reserved,\n\n CASE \n WHEN TRY_CONVERT(INT, reorder_level) IS NULL OR TRY_CONVERT(INT, reorder_level) < 0 THEN NULL \n ELSE TRY_CONVERT(INT, reorder_level)\n END as reorder_level\nFROM \"RetailDB\".\"bronze\".\"stg_inventory\"\n)\nSELECT \n inventory_snapshot_sk,\n stock_on_hand,\n stock_reserved,\n stock_on_hand - stock_reserved AS stock_available,\n reorder_level\nFROM inventory;", "relation_name": "\"RetailDB\".\"bronze\".\"int_inventory_stock\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.423427Z", "completed_at": "2026-09-27T03:59:10.443446Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.468856Z", "completed_at": "2026-09-27T03:59:10.468888Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.0600130558013916, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_inventory_valuation", "compiled": true, "compiled_code": "WITH inventory_valuation AS \n(\n SELECT \n inventory_snapshot_sk,\n CASE \n WHEN unit_cost LIKE '$%' THEN TRY_CONVERT(DECIMAL(10, 2), SUBSTRING(unit_cost, 2, LEN(unit_cost)))\n ELSE TRY_CONVERT(DECIMAL(10, 2), unit_cost)\n END as unit_cost,\n\n CASE \n WHEN TRY_CONVERT(DECIMAL(10,2), unit_price) IS NULL THEN TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(unit_price, ',', ''), '$', ''))\n ELSE TRY_CONVERT(DECIMAL(10, 2), unit_price)\n END as unit_price,\n\n CASE \n WHEN TRY_CONVERT(INT, stock_on_hand) IS NULL OR stock_on_hand < 0 THEN NULL \n ELSE TRY_CONVERT(INT, stock_on_hand)\n END AS stock_on_hand,\n\n CASE \n WHEN warehouse_location IS NULL OR warehouse_location = '' THEN 'Unknown'\n ELSE UPPER(warehouse_location)\n END as warehouse_location,\n\n CASE \n WHEN store_id IS NULL OR store_id = '' THEN NULL\n ELSE TRY_CONVERT(INT, store_id)\n END as store_id \n\n FROM \"RetailDB\".\"bronze\".\"stg_inventory\"\n)\nSELECT \n inventory_snapshot_sk,\n unit_cost,\n unit_price,\n unit_price * stock_on_hand as inventory_value,\n warehouse_location,\n store_id\nFROM inventory_valuation;", "relation_name": "\"RetailDB\".\"bronze\".\"int_inventory_valuation\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.438316Z", "completed_at": "2026-09-27T03:59:10.472880Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.489677Z", "completed_at": "2026-09-27T03:59:10.489703Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06998252868652344, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_inventory_inventory_snapshot_sk.54b4a35ec9", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect inventory_snapshot_sk\nfrom \"RetailDB\".\"bronze\".\"stg_inventory\"\nwhere inventory_snapshot_sk is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.457123Z", "completed_at": "2026-09-27T03:59:10.476388Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.493085Z", "completed_at": "2026-09-27T03:59:10.493118Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.060755252838134766, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_inventory_product_id.065830936a", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"stg_inventory\"\nwhere product_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.477753Z", "completed_at": "2026-09-27T03:59:10.497431Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.503233Z", "completed_at": "2026-09-27T03:59:10.503259Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04795432090759277, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_inventory_snapshot_date.f47349bb98", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect snapshot_date\nfrom \"RetailDB\".\"bronze\".\"stg_inventory\"\nwhere snapshot_date is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.505281Z", "completed_at": "2026-09-27T03:59:10.533238Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.546122Z", "completed_at": "2026-09-27T03:59:10.546158Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05493497848510742, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_stg_inventory_inventory_snapshot_sk.424f04d53c", "compiled": true, "compiled_code": "\n \n \n\nselect\n inventory_snapshot_sk as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_inventory\"\nwhere inventory_snapshot_sk is not null\ngroup by inventory_snapshot_sk\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.537418Z", "completed_at": "2026-09-27T03:59:10.552232Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.567193Z", "completed_at": "2026-09-27T03:59:10.567228Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.05118393898010254, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_return_refund", "compiled": true, "compiled_code": "SELECT \n return_id,\n \n CASE \n WHEN TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', '')) IS NULL THEN NULL\n WHEN refund_amount IS NULL OR TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', '')) < 0 THEN NULL \n ELSE TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(refund_amount, ',', ''), '$', ''))\n END as refund_amount,\n\n CASE \n WHEN refund_method IS NULL OR TRIM(refund_method) = '' THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(refund_method))\n END as refund_method\nFROM \"RetailDB\".\"bronze\".\"stg_returns\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_return_refund\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.522584Z", "completed_at": "2026-09-27T03:59:10.553765Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.570216Z", "completed_at": "2026-09-27T03:59:10.570249Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06889891624450684, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_return_processing", "compiled": true, "compiled_code": "SELECT\n return_id,\n\n CASE \n WHEN return_reason IS NULL OR TRIM(return_reason) = '' \n THEN 'Unknown'\n\n ELSE TRIM(dbo.TitleCase(return_reason))\n END as return_reason,\n\n CASE \n WHEN \n LOWER(TRIM(return_channel))\n IN ('app', 'mobile app', 'mobile') \n THEN 'Mobile App'\n\n WHEN \n LOWER(TRIM(return_channel))\n IN ('in store', 'in-store', 'store') \n THEN 'In Store'\n\n WHEN \n LOWER(TRIM(return_channel))\n IN ('online', 'web') \n THEN 'Online'\n\n WHEN \n LOWER(TRIM(return_channel))\n = 'phone' \n THEN 'Phone Call'\n\n WHEN \n LOWER(TRIM(return_channel))\n = 'catalog' \n THEN 'Catalog'\n\n ELSE 'Unknown'\n END AS return_channel,\n \n CASE \n WHEN \n LOWER(TRIM(restocked))\n IN ('yes', 'y', '1') \n THEN 'Yes'\n\n WHEN \n LOWER(TRIM(restocked))\n IN ('no', 'n', '0') \n THEN 'No'\n\n ELSE 'Unknown'\n END AS restocked,\n\n CASE \n WHEN return_status IS NULL \n THEN 'Unknown'\n\n ELSE TRIM(dbo.TitleCase(return_status))\n END as return_status,\n\n CASE \n WHEN handled_by_emp_id IS NULL OR TRY_CONVERT(INT, handled_by_emp_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, handled_by_emp_id)\n END as handled_by_emp_id,\n\n CASE \n WHEN notes IS NULL OR LEN(TRIM(notes)) < 3 OR TRIM(notes) = '' THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(REPLACE(REPLACE(notes, CHAR(10), ''), CHAR(13), '')))\n END as notes\nFROM \"RetailDB\".\"bronze\".\"stg_returns\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_return_processing\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.554901Z", "completed_at": "2026-09-27T03:59:10.579830Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.597757Z", "completed_at": "2026-09-27T03:59:10.597820Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.06328535079956055, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_return_transaction", "compiled": true, "compiled_code": "SELECT\n CASE \n WHEN TRY_CONVERT(INT, return_id) < 1 OR TRY_CONVERT(INT, return_id) IS NULL \n THEN NULL\n\n ELSE TRY_CONVERT(INT, return_id)\n END as return_id,\n\n CASE \n WHEN original_txn_id IS NULL \n THEN NULL\n\n WHEN UPPER(TRIM(original_txn_id)) NOT LIKE 'TXN-%' \n THEN NULL\n\n WHEN LEN(UPPER(TRIM(original_txn_id))) < 10 \n THEN NULL\n\n ELSE UPPER(TRIM(original_txn_id))\n END as original_txn_id,\n\n CASE \n WHEN original_order_id IS NULL OR TRY_CONVERT(INT, original_order_id) < 1 OR TRY_CONVERT(INT, original_order_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, original_order_id)\n END as original_order_id,\n\n CASE \n WHEN customer_id IS NULL OR TRY_CONVERT(INT, customer_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, customer_id)\n END as customer_id,\n\n CASE \n WHEN customer_name IS NULL OR TRIM(customer_name) = '' \n THEN 'Unknown'\n\n ELSE dbo.TitleCase(TRIM(customer_name))\n END as customer_name,\n\n CASE \n WHEN product_id IS NULL OR TRY_CONVERT(INT, product_id) IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, product_id)\n END as product_id,\n\n CASE \n WHEN product_name IS NULL OR TRIM(product_name) = '' \n THEN 'Unknown'\n\n ELSE dbo.TitleCase(TRIM(product_name))\n END as product_name,\n\n CASE \n WHEN quantity_returned IS NULL OR TRY_CONVERT(INT, quantity_returned) IS NULL OR TRY_CONVERT(INT, quantity_returned) < 1 \n THEN NULL \n\n ELSE TRY_CONVERT(INT, quantity_returned)\n END as quantity_returned,\n\n\n\n\n CASE\n WHEN TRIM(return_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(return_date))\n\n WHEN TRIM(return_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(return_date))\n\n WHEN TRIM(return_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(return_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(return_date), 110)\n\n WHEN TRIM(return_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(return_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(return_date), 105)\n\n WHEN TRIM(return_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(return_date))\n\n WHEN TRIM(return_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(return_date))\n\n WHEN TRIM(return_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(return_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(return_date), 101)\n\n WHEN TRIM(return_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(return_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(return_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(return_date), 101)\n\n END\n\n as return_date\nFROM \"RetailDB\".\"bronze\".\"stg_returns\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_return_transaction\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.582036Z", "completed_at": "2026-09-27T03:59:10.604030Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.634978Z", "completed_at": "2026-09-27T03:59:10.635024Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.07013177871704102, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_returns_return_id.8e8e7cd8be", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_id\nfrom \"RetailDB\".\"bronze\".\"stg_returns\"\nwhere return_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.623920Z", "completed_at": "2026-09-27T03:59:10.643882Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.656840Z", "completed_at": "2026-09-27T03:59:10.656865Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06091594696044922, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_review_feedback", "compiled": true, "compiled_code": "SELECT\n review_id,\n \n helpful_votes,\n\n CASE \n WHEN \n LOWER(TRIM(review_channel))\n IN ('app', 'mobile app', 'mobile') \n THEN 'Mobile App'\n\n WHEN \n LOWER(TRIM(review_channel))\n IN ('in store', 'in-store', 'store') \n THEN 'In Store'\n\n WHEN \n LOWER(TRIM(review_channel))\n IN ('online', 'web') \n THEN 'Online'\n\n WHEN \n LOWER(TRIM(review_channel))\n = 'phone' \n THEN 'Phone Call'\n\n WHEN \n LOWER(TRIM(review_channel))\n = 'catalog' \n THEN 'Catalog'\n\n ELSE 'Unknown'\n END AS review_channel,\n\n CASE\n WHEN REPLACE(REPLACE(TRIM(dbo.TitleCase(review_title)), CHAR(13), ''), CHAR(10), '') = '' \n THEN 'Unknown'\n \n ELSE REPLACE(REPLACE(TRIM(dbo.TitleCase(review_title)), CHAR(13), ''), CHAR(10), '')\n END as review_title\nFROM \"RetailDB\".\"bronze\".\"stg_reviews\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_review_feedback\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.607338Z", "completed_at": "2026-09-27T03:59:10.646876Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.660392Z", "completed_at": "2026-09-27T03:59:10.660423Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06621956825256348, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_stg_returns_return_id.c2232dee8a", "compiled": true, "compiled_code": "\n \n \n\nselect\n return_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_returns\"\nwhere return_id is not null\ngroup by return_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.648357Z", "completed_at": "2026-09-27T03:59:10.677852Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.682168Z", "completed_at": "2026-09-27T03:59:10.682209Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04471635818481445, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_review_rating", "compiled": true, "compiled_code": "SELECT\n review_id,\n\n CASE\n WHEN TRY_CONVERT(INT, rating) BETWEEN 1 AND 5\n THEN TRY_CONVERT(INT, rating)\n ELSE NULL\n END AS rating,\n \n rating_text\nFROM \"RetailDB\".\"bronze\".\"stg_reviews\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_review_rating\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.664625Z", "completed_at": "2026-09-27T03:59:10.685252Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.690075Z", "completed_at": "2026-09-27T03:59:10.690106Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.04505586624145508, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_review_transaction", "compiled": true, "compiled_code": "SELECT\n review_id,\n txn_id,\n\n customer_id,\n customer_name,\n\n product_id,\n product_name,\n\n \n\n\n CASE\n WHEN TRIM(review_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(review_date))\n\n WHEN TRIM(review_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(review_date))\n\n WHEN TRIM(review_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(review_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(review_date), 110)\n\n WHEN TRIM(review_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(review_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(review_date), 105)\n\n WHEN TRIM(review_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(review_date))\n\n WHEN TRIM(review_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(review_date))\n\n WHEN TRIM(review_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(review_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(review_date), 101)\n\n WHEN TRIM(review_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(review_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(review_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(review_date), 101)\n\n END\n\n as review_date,\n\n CASE \n WHEN TRIM(LOWER(verified_purchase)) IN ('1', 'y', 'yes', 'true', 'verified') THEN 'Verified'\n WHEN TRIM(LOWER(verified_purchase)) IN ('0', 'n', 'no', 'false') THEN 'Not Verified' \n ELSE 'Unknown'\n END AS verified_purchase\nFROM \"RetailDB\".\"bronze\".\"stg_reviews\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_review_transaction\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.692674Z", "completed_at": "2026-09-27T03:59:10.721641Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.738267Z", "completed_at": "2026-09-27T03:59:10.738291Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.059548377990722656, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_reviews_review_id.943b8fc3e4", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_id\nfrom \"RetailDB\".\"bronze\".\"stg_reviews\"\nwhere review_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.702883Z", "completed_at": "2026-09-27T03:59:10.728808Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.740352Z", "completed_at": "2026-09-27T03:59:10.740385Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.060279130935668945, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_stg_reviews_review_id.9b6c259f3c", "compiled": true, "compiled_code": "\n \n \n\nselect\n review_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_reviews\"\nwhere review_id is not null\ngroup by review_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.723114Z", "completed_at": "2026-09-27T03:59:10.758895Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.763995Z", "completed_at": "2026-09-27T03:59:10.764022Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.05099058151245117, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_store_location", "compiled": true, "compiled_code": "SELECT\n store_id,\n\n CASE \n WHEN address IS NULL OR TRIM(address) = '' OR LEN(address) < 5 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(address))\n END address,\n\n CASE \n WHEN city IS NULL OR TRIM(city) = '' OR LEN(TRIM(city)) < 3 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(city))\n END as city,\n\n CASE \n WHEN TRIM(state) = 'California' THEN 'CA'\n WHEN TRIM(state) = 'Texas' THEN 'TX'\n WHEN TRIM(state) = 'Arizona' THEN 'AZ'\n WHEN TRIM(state) = 'Colorado' THEN 'CO'\n WHEN TRIM(state) = 'Maryland' THEN 'MD'\n WHEN TRIM(state) = 'Wisconsin' THEN 'WI'\n WHEN TRIM(state) = 'Illinois' THEN 'IL'\n WHEN TRIM(state) = 'Georgia' THEN 'GA'\n WHEN TRIM(state) = 'Tennessee' THEN 'TN'\n WHEN TRIM(state) = 'New Mexico' THEN 'NM'\n WHEN TRIM(state) = 'Ohio' THEN 'OH'\n WHEN state IS NULL OR TRIM(state) = '' OR LEN(TRIM(state)) < 2 THEN 'Unknown'\n ELSE state\n END as state, \n\n CASE \n WHEN state_full IS NULL OR TRIM(state_full) = '' OR LEN(TRIM(state_full)) < 4 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(state_full))\n END as state_full,\n\n CASE \n WHEN zip_code IS NULL OR TRY_CONVERT(INT, zip_code) IS NULL OR LEN(zip_code) < 5 THEN NULL \n ELSE TRY_CONVERT(INT, zip_code)\n END as zip_code,\n\n CASE \n WHEN TRIM(LOWER(country)) IN ('us', 'usa', 'united states', 'u.s.a', 'u.s') THEN 'United States'\n WHEN country IS NULL OR TRIM(country) = '' OR LEN(TRIM(country)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(country))\n END as country, \n\n CASE \n WHEN region IS NULL OR TRIM(region) = '' OR LEN(TRIM(region)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(region))\n END as region,\n\n CASE \n WHEN district IS NULL OR TRIM(district) = '' OR LEN(TRIM(district)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(district))\n END as district,\n\n \n\n CASE \n WHEN TRIM(phone) LIKE '+1__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 3, 3), ') ',\n SUBSTRING(TRIM(phone), 6, 3),'-',\n SUBSTRING(TRIM(phone),9,4))\n\n WHEN TRIM(phone) LIKE '__________' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1 ,3), ') ',\n SUBSTRING(TRIM(phone), 4 ,3), '-',\n SUBSTRING(TRIM(phone), 7, 4))\n\n WHEN TRIM(phone) LIKE '___-___-____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone), 9 ,4))\n\n WHEN TRIM(phone) LIKE '___.___.____' \n THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ',\n SUBSTRING(TRIM(phone), 5, 3), '-',\n SUBSTRING(TRIM(phone),9, 4))\n\n WHEN TRIM(phone) LIKE '(___) ___-____' \n THEN CONCAT('+1 ', SUBSTRING(TRIM(phone), 1, 14))\n\n WHEN TRIM(phone) IS NULL OR TRIM(phone) = '' \n THEN 'Unknown'\n\n ELSE 'Unknown'\n END\n as phone\nFROM \"RetailDB\".\"bronze\".\"stg_stores\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_store_location\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.742626Z", "completed_at": "2026-09-27T03:59:10.765954Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.771800Z", "completed_at": "2026-09-27T03:59:10.771825Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05185961723327637, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_store_operations", "compiled": true, "compiled_code": "SELECT\n store_id,\n\n CASE \n WHEN sq_footage IS NULL OR sq_footage < 0 \n THEN NULL\n \n ELSE TRY_CONVERT(INT, sq_footage)\n END as sq_footage,\n\n CASE \n WHEN num_employees IS NULL OR num_employees < 0 \n THEN NULL\n\n ELSE TRY_CONVERT(INT, num_employees)\n END as num_employees,\n\n CASE \n WHEN annual_rent_usd < 1 OR annual_rent_usd IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(INT, annual_rent_usd)\n END as annual_rent_usd,\n\n CASE \n WHEN \n LOWER(TRIM(is_active))\n IN ('true', 'yes', 'y', '1', 'active') \n THEN 'True'\n\n WHEN \n LOWER(TRIM(is_active))\n IN ('false', 'no', 'n', '0', 'not active') \n THEN 'False'\n\n ELSE 'Unknown'\n END as is_active,\n\n CASE \n WHEN \n LOWER(TRIM(has_parking))\n IN ('true', 'yes', 'y', '1') \n THEN 'True'\n\n WHEN \n LOWER(TRIM(has_parking))\n IN ('false', 'no', 'n', '0') \n THEN 'False'\n\n ELSE 'Unknown'\n END as has_parking,\n\n CASE \n WHEN REPLACE(REPLACE(\n LOWER(TRIM(has_cafe))\n, CHAR(13), ''),CHAR(10), '') IN ('1', 'yes', 'y','true') \n THEN 'True'\n\n WHEN REPLACE(REPLACE(\n LOWER(TRIM(has_cafe))\n, CHAR(13), ''),CHAR(10), '') IN ('0', 'no', 'n','false') \n THEN 'False'\n\n ELSE 'Unknown'\n END as has_cafe\nFROM \"RetailDB\".\"bronze\".\"stg_stores\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_store_operations\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.774021Z", "completed_at": "2026-09-27T03:59:10.801770Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.808408Z", "completed_at": "2026-09-27T03:59:10.808439Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.047869205474853516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_store_profile", "compiled": true, "compiled_code": "SELECT\n store_id,\n \n CASE \n WHEN manager_name IS NULL OR TRIM(manager_name) = '' OR LEN(TRIM(manager_name)) < 2 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(manager_name))\n END as manager_name,\n\n CASE \n WHEN store_name IS NULL OR LEN(TRIM(store_name)) < 3 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(store_name))\n END as store_name,\n\n CASE \n WHEN store_type IS NULL OR LEN(TRIM(store_type)) < 3 THEN 'Unknown'\n ELSE TRIM(dbo.TitleCase(store_type))\n END as store_type,\n\n\n\n\n CASE\n WHEN TRIM(opened_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(opened_date))\n\n WHEN TRIM(opened_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(opened_date))\n\n WHEN TRIM(opened_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(opened_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(opened_date), 110)\n\n WHEN TRIM(opened_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(opened_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(opened_date), 105)\n\n WHEN TRIM(opened_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(opened_date))\n\n WHEN TRIM(opened_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(opened_date))\n\n WHEN TRIM(opened_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(opened_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(opened_date), 101)\n\n WHEN TRIM(opened_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(opened_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(opened_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(opened_date), 101)\n\n END\n\n as opened_date\nFROM \"RetailDB\".\"bronze\".\"stg_stores\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_store_profile\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.781557Z", "completed_at": "2026-09-27T03:59:10.804805Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.821908Z", "completed_at": "2026-09-27T03:59:10.821952Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06008768081665039, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_stores_store_id.ebecf07ec6", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"stg_stores\"\nwhere store_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.810636Z", "completed_at": "2026-09-27T03:59:10.831591Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.842744Z", "completed_at": "2026-09-27T03:59:10.842773Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04675173759460449, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_stg_stores_store_id.2e80d074c2", "compiled": true, "compiled_code": "\n \n \n\nselect\n store_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_stores\"\nwhere store_id is not null\ngroup by store_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.832672Z", "completed_at": "2026-09-27T03:59:10.847332Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.869819Z", "completed_at": "2026-09-27T03:59:10.869847Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06391429901123047, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_transaction_financial", "compiled": true, "compiled_code": "WITH int_transaction_financial AS \n(\nSELECT \n transaction_id,\n\n CASE \n WHEN quantity_ordered < 1 \n THEN NULL \n\n WHEN quantity_ordered > 30 \n THEN NULL\n\n ELSE quantity_ordered\n END as quantity_ordered ,\n\n CASE \n WHEN unit_list_price IS NULL \n THEN NULL \n\n ELSE TRY_CONVERT(DECIMAL(10, 2), REPLACE(REPLACE(unit_list_price, '$', ''), ',', '')) \n END as unit_list_price,\n\n CASE \n WHEN discount_pct IS NULL OR discount_pct < 0 OR discount_pct > 100 \n THEN NULL \n\n ELSE ROUND(discount_pct, 0)\n END as discount_pct,\n\n CASE \n WHEN line_total_before_tax IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_before_tax, '$', ''), ',', '')) < 0 \n THEN NULL\n\n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_before_tax, '$', ''), ',', ''))\n END as line_total_before_tax,\n\n CASE \n WHEN tax_rate_pct IS NULL OR TRY_CONVERT(INT, ROUND(tax_rate_pct, 0)) < 0 OR TRY_CONVERT(INT, ROUND(tax_rate_pct, 0)) > 100 THEN NULL \n ELSE TRY_CONVERT(INT, ROUND(tax_rate_pct, 0))\n END as tax_rate_pct,\n\n CASE \n WHEN tax_amount IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(tax_amount, '$', ''), ',', '')) < 0 \n THEN NULL \n\n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(tax_amount, '$', ''), ',', ''))\n END as tax_amount,\n\n CASE \n WHEN line_total_with_tax IS NULL OR TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_with_tax, '$', ''), ',', '')) < 0 \n THEN NULL \n \n ELSE TRY_CONVERT(DECIMAL(10,2), REPLACE(REPLACE(line_total_with_tax, '$', ''), ',', ''))\n END as line_total_with_tax\nFROM \"RetailDB\".\"bronze\".\"stg_transactions\" \n)\nSELECT\n transaction_id,\n quantity_ordered,\n unit_list_price,\n discount_pct,\n ROUND(unit_list_price * (1 - discount_pct/100), 2) as unit_selling_price,\n ROUND(quantity_ordered * ROUND(unit_list_price * (1 - discount_pct/100.0), 2),2) AS line_total_before_tax,\n tax_rate_pct,\n tax_amount,\n ROUND(quantity_ordered * ROUND(unit_list_price * (1 - discount_pct/100.0), 2),2) + tax_amount AS line_total_with_tax\nFROM int_transaction_financial ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_transaction_financial\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.859245Z", "completed_at": "2026-09-27T03:59:10.875708Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.881924Z", "completed_at": "2026-09-27T03:59:10.881952Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.040879249572753906, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_transaction_order", "compiled": true, "compiled_code": "SELECT\n transaction_id,\n order_id,\n customer_id,\n product_id,\n store_id,\n employee_id,\n CASE \n WHEN order_line_number < 1 THEN NULL \n WHEN order_line_number > 20 THEN NULL\n ELSE order_line_number\n END as order_line_number\nFROM \"RetailDB\".\"bronze\".\"stg_transactions\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_transaction_order\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.849928Z", "completed_at": "2026-09-27T03:59:10.877267Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.884127Z", "completed_at": "2026-09-27T03:59:10.884152Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.044254302978515625, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_transaction_fulfillment", "compiled": true, "compiled_code": "WITH transaction_fulfillment AS \n(\n SELECT \n transaction_id,\n\n \n\n\n CASE\n WHEN TRIM(order_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(order_date))\n\n WHEN TRIM(order_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(order_date))\n\n WHEN TRIM(order_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(order_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(order_date), 110)\n\n WHEN TRIM(order_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(order_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(order_date), 105)\n\n WHEN TRIM(order_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(order_date))\n\n WHEN TRIM(order_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(order_date))\n\n WHEN TRIM(order_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(order_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(order_date), 101)\n\n WHEN TRIM(order_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(order_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(order_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(order_date), 101)\n\n END\n\n as order_date,\n \n\n\n CASE\n WHEN TRIM(ship_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(ship_date))\n\n WHEN TRIM(ship_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(ship_date))\n\n WHEN TRIM(ship_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(ship_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(ship_date), 110)\n\n WHEN TRIM(ship_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(ship_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(ship_date), 105)\n\n WHEN TRIM(ship_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(ship_date))\n\n WHEN TRIM(ship_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(ship_date))\n\n WHEN TRIM(ship_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(ship_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(ship_date), 101)\n\n WHEN TRIM(ship_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(ship_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(ship_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(ship_date), 101)\n\n END\n\n as ship_date,\n \n\n\n CASE\n WHEN TRIM(delivery_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____'\n THEN TRY_CONVERT(DATE, TRIM(delivery_date))\n\n WHEN TRIM(delivery_date) LIKE '[A-Z][a-z][a-z] __, ____'\n THEN TRY_CONVERT(DATE, TRIM(delivery_date))\n\n WHEN TRIM(delivery_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(delivery_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(delivery_date), 110)\n\n WHEN TRIM(delivery_date) LIKE '__-__-____'\n AND TRY_CONVERT(INT, LEFT(TRIM(delivery_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(delivery_date), 105)\n\n WHEN TRIM(delivery_date) LIKE '____-__-__'\n THEN TRY_CONVERT(DATE, TRIM(delivery_date))\n\n WHEN TRIM(delivery_date) LIKE '____/__/__'\n THEN TRY_CONVERT(DATE, TRIM(delivery_date))\n\n WHEN TRIM(delivery_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, SUBSTRING(TRIM(delivery_date), 4, 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(delivery_date), 101)\n\n WHEN TRIM(delivery_date) LIKE '__/__/____'\n AND TRY_CONVERT(INT, LEFT(TRIM(delivery_date), 2)) > 12\n THEN TRY_CONVERT(DATE, TRIM(delivery_date), 103)\n\n ELSE TRY_CONVERT(DATE, TRIM(delivery_date), 101)\n\n END\n\n as delivery_date,\n order_month,\n\n CASE \n WHEN TRIM(LOWER(shipping_method)) IN ('pickup', 'in-store pickup') \n THEN 'Store Pickup'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('overnight', 'overnight shipping') \n THEN 'Overnight Shipping'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('same day', 'same day delivery') \n THEN 'Same Day Delivery'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('express', 'express shipping') \n THEN 'Express Shipping'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('standard', 'standard shipping') \n THEN 'Standard Shipping'\n\n WHEN TRIM(LOWER(shipping_method)) IN ('free ship', 'free shipping') \n THEN 'Free Shipping'\n\n ELSE TRIM(shipping_method)\n END AS shipping_method,\n\n CASE \n WHEN TRIM(LOWER(sales_channel)) IN ('app', 'mobile', 'mobile app') \n THEN 'Mobile App'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('store', 'in store', 'in-store') \n THEN 'In Store'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('online', 'web') \n THEN 'Website'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('phone') \n THEN 'Phone Call'\n\n WHEN TRIM(LOWER(sales_channel)) IN ('catalog') \n THEN 'Catalog'\n\n ELSE 'Unknown'\n END AS sales_channel,\n\n CASE TRIM(LOWER(payment_method))\n WHEN 'debit card' THEN 'Debit Card'\n WHEN 'credit card' THEN 'Credit Card'\n WHEN 'google pay' THEN 'Google Pay'\n WHEN 'apple pay' THEN 'Apple Pay'\n WHEN 'bank transfer' THEN 'Bank Transfer'\n WHEN 'buy now pay later' THEN 'Buy Now Pay Later'\n WHEN 'bnpl' THEN 'Buy Now Pay Later'\n WHEN 'gift card' THEN 'Gift Card'\n WHEN 'paypal' THEN 'PayPal'\n WHEN 'cash' THEN 'Cash'\n ELSE TRIM(payment_method)\n END AS payment_method,\n\n TRY_CONVERT(DATE, record_created_ts) as record_created,\n TRY_CONVERT(DATE, last_modified_ts ) as last_modified\n FROM \"RetailDB\".\"bronze\".\"stg_transactions\" \n),\norder_date_cleaning AS \n(\n SELECT \n transaction_id,\n\n CASE \n WHEN order_month != MONTH(order_date) \n THEN DATEFROMPARTS(YEAR(order_date), DAY(order_date), MONTH(order_date))\n\n ELSE order_date\n END AS order_date,\n\n ship_date,\n delivery_date,\n\n shipping_method,\n sales_channel,\n payment_method,\n\n CASE \n WHEN record_created IS NULL \n OR record_created NOT LIKE '____-__-__' \n OR TRY_CONVERT(DATE, record_created) IS NULL \n OR YEAR(record_created) < 2019 \n THEN NULL \n\n ELSE record_created\n END as record_created,\n\n CASE \n WHEN last_modified IS NULL \n OR last_modified NOT LIKE '____-__-__' \n OR TRY_CONVERT(DATE, last_modified) IS NULL \n OR YEAR(last_modified) < 2019 \n THEN NULL \n\n ELSE last_modified\n END as last_modified\n\n FROM transaction_fulfillment \n),\nship_date_cleaning AS \n(\n SELECT\n transaction_id,\n order_date ,\n\n CASE\n WHEN DATEDIFF(DAY ,order_date, ship_date) < 0 \n THEN DATEFROMPARTS(YEAR(ship_date), DAY(ship_date), MONTH(ship_date))\n\n WHEN DATEDIFF(DAY ,order_date, ship_date) > 15 \n THEN DATEFROMPARTS(YEAR(ship_date), DAY(ship_date), MONTH(ship_date))\n\n WHEN ship_date IS NULL \n THEN DATEADD(DAY, 7, order_date)\n \n ELSE ship_date \n END as ship_date ,\n\n delivery_date,\n shipping_method,\n sales_channel,\n payment_method,\n record_created,\n last_modified\n FROM order_date_cleaning \n),\nint_transaction_fulfillment AS \n(\n SELECT \n transaction_id,\n order_date,\n ship_date,\n\n CASE \n WHEN DATEDIFF(DAY, ship_date , delivery_date) > 17 \n THEN DATEFROMPARTS(YEAR(delivery_date), DAY(delivery_date), MONTH(delivery_date))\n\n WHEN DATEDIFF(DAY, ship_date , delivery_date) < -15 \n THEN DATEFROMPARTS(YEAR(delivery_date), DAY(delivery_date), MONTH(delivery_date))\n\n ELSE delivery_date\n END as delivery_date,\n\n shipping_method,\n sales_channel,\n payment_method,\n record_created,\n last_modified\n FROM ship_date_cleaning \n)\nSELECT \n transaction_id,\n order_date,\n ship_date,\n delivery_date,\n shipping_method,\n sales_channel,\n payment_method,\n record_created,\n last_modified\nFROM int_transaction_fulfillment;", "relation_name": "\"RetailDB\".\"bronze\".\"int_transaction_fulfillment\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.886361Z", "completed_at": "2026-09-27T03:59:10.912588Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.917607Z", "completed_at": "2026-09-27T03:59:10.917640Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04579043388366699, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.int_transaction_status", "compiled": true, "compiled_code": "SELECT\n transaction_id,\n\n promo_id,\n\n CASE TRIM(LOWER(promo_name))\n WHEN 'winter clearance' THEN 'Winter Clearance'\n WHEN 'bundle deal' THEN 'Bundle Deal'\n WHEN 'no promo' THEN 'No Promo'\n WHEN 'flash sale' THEN 'Flash Sale'\n WHEN 'black friday' THEN 'Black Friday'\n WHEN 'holiday special' THEN 'Holiday Special'\n WHEN 'weekend deal' THEN 'Weekend Deal'\n WHEN 'loyalty reward' THEN 'Loyalty Reward'\n WHEN 'cyber monday' THEN 'Cyber Monday'\n ELSE TRIM(promo_name)\n END AS promo_name,\n\n CASE TRIM(LOWER(order_status))\n WHEN 'pending' THEN 'Pending'\n WHEN 'processing' THEN 'Processing'\n WHEN 'shipped' THEN 'Shipped'\n WHEN 'delivered' THEN 'Delivered'\n WHEN 'returned' THEN 'Returned'\n WHEN 'cancelled' THEN 'Cancelled'\n ELSE TRIM(order_status)\n END AS order_status,\n\n CASE \n WHEN TRIM(LOWER(is_returned)) IN ('yes', 'y', 'true', '1') \n THEN 'True'\n\n WHEN TRIM(LOWER(is_returned)) IN ('no', 'n', 'false', '0') \n THEN 'False'\n \n ELSE 'Unknown'\n END AS is_returned,\n\n CASE TRIM(LOWER(data_source))\n WHEN 'crm' THEN 'CRM'\n WHEN 'web' THEN 'Web'\n WHEN 'pos' THEN 'POS'\n WHEN 'manual' THEN 'Manual'\n WHEN 'erp' THEN 'ERP'\n ELSE 'Unknown'\n END AS data_source\n\nFROM \"RetailDB\".\"bronze\".\"stg_transactions\" ;", "relation_name": "\"RetailDB\".\"bronze\".\"int_transaction_status\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.901964Z", "completed_at": "2026-09-27T03:59:10.924355Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.949359Z", "completed_at": "2026-09-27T03:59:10.949384Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06923198699951172, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_transactions_order_line_number.abd883623b", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect order_line_number\nfrom \"RetailDB\".\"bronze\".\"stg_transactions\"\nwhere order_line_number is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.925997Z", "completed_at": "2026-09-27T03:59:10.953173Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.979519Z", "completed_at": "2026-09-27T03:59:10.979564Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06506085395812988, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_stg_transactions_transaction_id.1d00a8e2e4", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect transaction_id\nfrom \"RetailDB\".\"bronze\".\"stg_transactions\"\nwhere transaction_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.938449Z", "completed_at": "2026-09-27T03:59:10.954498Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:10.990396Z", "completed_at": "2026-09-27T03:59:10.990419Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.0741112232208252, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_stg_transactions_transaction_id.ee9a78a396", "compiled": true, "compiled_code": "\n \n \n\nselect\n transaction_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"stg_transactions\"\nwhere transaction_id is not null\ngroup by transaction_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:10.957905Z", "completed_at": "2026-09-27T03:59:10.999553Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.021827Z", "completed_at": "2026-09-27T03:59:11.021868Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.07454633712768555, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customer_location_country__United_States__Unknown.86cb2451d3", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n country as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customer_location\"\n group by country\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'United States','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.003997Z", "completed_at": "2026-09-27T03:59:11.039405Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.059372Z", "completed_at": "2026-09-27T03:59:11.059426Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06793808937072754, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customer_location_region__Midwest__Northeast__South__West.941ae25bfa", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n region as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customer_location\"\n group by region\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Midwest','Northeast','South','West'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.043093Z", "completed_at": "2026-09-27T03:59:11.064949Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.080058Z", "completed_at": "2026-09-27T03:59:11.080088Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.0779273509979248, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_city.8e1a6a4cee", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect city\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere city is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.029087Z", "completed_at": "2026-09-27T03:59:11.067976Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.084191Z", "completed_at": "2026-09-27T03:59:11.084238Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.08360147476196289, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_address.0477470aa5", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect address\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere address is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.069599Z", "completed_at": "2026-09-27T03:59:11.092183Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.106116Z", "completed_at": "2026-09-27T03:59:11.106150Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04907107353210449, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_country.39087bf4f2", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect country\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere country is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.093592Z", "completed_at": "2026-09-27T03:59:11.115155Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.132297Z", "completed_at": "2026-09-27T03:59:11.132336Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05011558532714844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_region.bb382037e2", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect region\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere region is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.109680Z", "completed_at": "2026-09-27T03:59:11.137616Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.142298Z", "completed_at": "2026-09-27T03:59:11.142326Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.0515284538269043, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_state.f7b75af023", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect state\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere state is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.122813Z", "completed_at": "2026-09-27T03:59:11.144649Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.163383Z", "completed_at": "2026-09-27T03:59:11.163426Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.060187339782714844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_state_abbr.15ac178793", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect state_abbr\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere state_abbr is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.147219Z", "completed_at": "2026-09-27T03:59:11.172141Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.184554Z", "completed_at": "2026-09-27T03:59:11.184599Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04936552047729492, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_location_zip_code.a7263a9e3a", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect zip_code\nfrom \"RetailDB\".\"bronze\".\"int_customer_location\"\nwhere zip_code is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.173508Z", "completed_at": "2026-09-27T03:59:11.206116Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.223665Z", "completed_at": "2026-09-27T03:59:11.223703Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.07804679870605469, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.valid_zip_code", "compiled": true, "compiled_code": "SELECT *\nFROM \"RetailDB\".\"bronze\".\"int_customer_location\"\nWHERE zip_code IS NULL\n OR LEN(CAST(zip_code AS VARCHAR(10))) <> 5\n OR TRY_CAST(zip_code AS INT) IS NULL", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.187297Z", "completed_at": "2026-09-27T03:59:11.220494Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.226450Z", "completed_at": "2026-09-27T03:59:11.226473Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.05816507339477539, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customer_profile_gender__Male__Female__Non_Binary__Other__Unknown.68b6d3ed48", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n gender as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customer_profile\"\n group by gender\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Male','Female','Non-Binary','Other','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.207883Z", "completed_at": "2026-09-27T03:59:11.230104Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.245988Z", "completed_at": "2026-09-27T03:59:11.246041Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06354594230651855, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_profile_first_name.601ca24c11", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect first_name\nfrom \"RetailDB\".\"bronze\".\"int_customer_profile\"\nwhere first_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.235430Z", "completed_at": "2026-09-27T03:59:11.261128Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.298132Z", "completed_at": "2026-09-27T03:59:11.298165Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.07679367065429688, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_profile_gender.f510f79209", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect gender\nfrom \"RetailDB\".\"bronze\".\"int_customer_profile\"\nwhere gender is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.264958Z", "completed_at": "2026-09-27T03:59:11.304398Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.325561Z", "completed_at": "2026-09-27T03:59:11.325592Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.07327651977539062, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_profile_last_name.406eccd58c", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect last_name\nfrom \"RetailDB\".\"bronze\".\"int_customer_profile\"\nwhere last_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.280143Z", "completed_at": "2026-09-27T03:59:11.311081Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.327822Z", "completed_at": "2026-09-27T03:59:11.327850Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.0736703872680664, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_customer_segment__Bronze__Silver__Gold__Platinum__Unknown.08c611db09", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n customer_segment as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customer_segmentation\"\n group by customer_segment\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Bronze','Silver','Gold','Platinum','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.305988Z", "completed_at": "2026-09-27T03:59:11.335375Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.351252Z", "completed_at": "2026-09-27T03:59:11.351294Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.08870601654052734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customer_segmentation_is_active__True__False__Unknown.a740e8b8b9", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_active as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customer_segmentation\"\n group by is_active\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.336840Z", "completed_at": "2026-09-27T03:59:11.356720Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.385339Z", "completed_at": "2026-09-27T03:59:11.385373Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.061676740646362305, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_segmentation_company.828a751ca9", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect company\nfrom \"RetailDB\".\"bronze\".\"int_customer_segmentation\"\nwhere company is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.359773Z", "completed_at": "2026-09-27T03:59:11.391743Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.396723Z", "completed_at": "2026-09-27T03:59:11.396759Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.04873847961425781, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_segmentation_customer_segment.491592cc63", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_segment\nfrom \"RetailDB\".\"bronze\".\"int_customer_segmentation\"\nwhere customer_segment is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.374458Z", "completed_at": "2026-09-27T03:59:11.392734Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.399003Z", "completed_at": "2026-09-27T03:59:11.399028Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.04941415786743164, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customer_segmentation_is_active.6eae5bb04d", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect is_active\nfrom \"RetailDB\".\"bronze\".\"int_customer_segmentation\"\nwhere is_active is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.401031Z", "completed_at": "2026-09-27T03:59:11.431819Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.435966Z", "completed_at": "2026-09-27T03:59:11.435994Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.04853677749633789, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.dim_customers", "compiled": true, "compiled_code": "SELECT \n p.customer_id, \n TRIM(CONCAT(p.title, ' ', p.first_name, ' ', p.last_name)) as customer_name,\n p.gender,\n p.date_of_birth,\n c.email,\n c.phone,\n l.address,\n l.zip_code,\n l.city,\n l.region,\n l.state,\n l.state_abbr,\n l.country,\n s.company,\n s.customer_segment,\n c.preferred_channel,\n s.is_active,\n s.loyalty_points,\n s.annual_income_usd,\n s.account_created_date\nFROM \"RetailDB\".\"bronze\".\"int_customer_profile\" as p \n\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_customers_contact\" as c \n ON p.customer_id = c.customer_id \n\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_customer_location\" as l\n ON p.customer_id = l.customer_id\n\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_customer_segmentation\" as s \n ON s.customer_id = p.customer_id ;", "relation_name": "\"RetailDB\".\"bronze\".\"dim_customers\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.415675Z", "completed_at": "2026-09-27T03:59:11.438180Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.451096Z", "completed_at": "2026-09-27T03:59:11.451132Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.05628252029418945, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_customers_contact_preferred_channel__Mobile_App__In_Store__Catalog__Website__Phone_Call__Unknown.1735c0ec9c", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n preferred_channel as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_customers_contact\"\n group by preferred_channel\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Mobile App','In Store','Catalog','Website','Phone Call','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.440691Z", "completed_at": "2026-09-27T03:59:11.468764Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.474244Z", "completed_at": "2026-09-27T03:59:11.474271Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.0439913272857666, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customers_contact_email.7b842fa5e7", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect email\nfrom \"RetailDB\".\"bronze\".\"int_customers_contact\"\nwhere email is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.453574Z", "completed_at": "2026-09-27T03:59:11.472983Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.486337Z", "completed_at": "2026-09-27T03:59:11.486370Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.05351901054382324, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customers_contact_phone.fe6527d505", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect phone\nfrom \"RetailDB\".\"bronze\".\"int_customers_contact\"\nwhere phone is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.475798Z", "completed_at": "2026-09-27T03:59:11.501705Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.506587Z", "completed_at": "2026-09-27T03:59:11.506616Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.04151606559753418, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_customers_contact_preferred_channel.ab818846a7", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect preferred_channel\nfrom \"RetailDB\".\"bronze\".\"int_customers_contact\"\nwhere preferred_channel is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.490544Z", "completed_at": "2026-09-27T03:59:11.510598Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.515941Z", "completed_at": "2026-09-27T03:59:11.515978Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04480862617492676, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_contact_email.e8efeefd4a", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect email\nfrom \"RetailDB\".\"bronze\".\"int_employee_contact\"\nwhere email is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.518118Z", "completed_at": "2026-09-27T03:59:11.551447Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.566898Z", "completed_at": "2026-09-27T03:59:11.566936Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06240272521972656, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_contact_employee_id.6831e85930", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"int_employee_contact\"\nwhere employee_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.535209Z", "completed_at": "2026-09-27T03:59:11.552812Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.569042Z", "completed_at": "2026-09-27T03:59:11.569061Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06024622917175293, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_contact_phone.7457f56eb1", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect phone\nfrom \"RetailDB\".\"bronze\".\"int_employee_contact\"\nwhere phone is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.554308Z", "completed_at": "2026-09-27T03:59:11.589048Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.594013Z", "completed_at": "2026-09-27T03:59:11.594041Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06078672409057617, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_employee_contact_employee_id.062a8592c6", "compiled": true, "compiled_code": "\n \n \n\nselect\n employee_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_employee_contact\"\nwhere employee_id is not null\ngroup by employee_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.571291Z", "completed_at": "2026-09-27T03:59:11.599882Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.605829Z", "completed_at": "2026-09-27T03:59:11.605870Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.05612063407897949, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_department__Customer_Service__Management__Operations__Sales__Unknown.a347d6218f", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n department as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_employee_employment\"\n group by department\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Customer Service','Management','Operations','Sales','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.609577Z", "completed_at": "2026-09-27T03:59:11.661390Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.668401Z", "completed_at": "2026-09-27T03:59:11.668442Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.07255220413208008, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_is_active__True__False.7b923c6da0", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_active as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_employee_employment\"\n group by is_active\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.620713Z", "completed_at": "2026-09-27T03:59:11.670675Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.686124Z", "completed_at": "2026-09-27T03:59:11.686153Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.08853316307067871, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_job_title__Account_Executive__Customer_Advisor__Regional_Manager__Sales_Associate__Sales_Consultant__Sales_Manager__Sales_Representative__Senior_Sales_Associate__Store_Manager.5a26b81538", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n job_title as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_employee_employment\"\n group by job_title\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Account Executive','Customer Advisor','Regional Manager','Sales Associate','Sales Consultant','Sales Manager','Sales Representative','Senior Sales Associate','Store Manager'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.650826Z", "completed_at": "2026-09-27T03:59:11.684709Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.690262Z", "completed_at": "2026-09-27T03:59:11.690298Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.08246684074401855, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_employee_employment_performance_rating__Excellent__Good__Average__Below_Average__Unknown.3755c7561e", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n performance_rating as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_employee_employment\"\n group by performance_rating\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Excellent','Good','Average','Below Average','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.672422Z", "completed_at": "2026-09-27T03:59:11.692031Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.697560Z", "completed_at": "2026-09-27T03:59:11.697585Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04919934272766113, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_annual_salary_usd.5061dbe7e6", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect annual_salary_usd\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere annual_salary_usd is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.701882Z", "completed_at": "2026-09-27T03:59:11.727236Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.761036Z", "completed_at": "2026-09-27T03:59:11.761070Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.07279729843139648, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_commission_rate_pct.35495fa9d9", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect commission_rate_pct\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere commission_rate_pct is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.729103Z", "completed_at": "2026-09-27T03:59:11.769434Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.783293Z", "completed_at": "2026-09-27T03:59:11.783334Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.08368587493896484, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_department.7be8a16615", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect department\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere department is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.746040Z", "completed_at": "2026-09-27T03:59:11.779395Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.786576Z", "completed_at": "2026-09-27T03:59:11.786620Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06854891777038574, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_employee_id.4b317cafdf", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere employee_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.764266Z", "completed_at": "2026-09-27T03:59:11.791552Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.798847Z", "completed_at": "2026-09-27T03:59:11.798881Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.07364439964294434, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_is_active.cc4cfb1aec", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect is_active\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere is_active is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.804570Z", "completed_at": "2026-09-27T03:59:11.832972Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.851169Z", "completed_at": "2026-09-27T03:59:11.851215Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06183934211730957, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_job_title.6b190a9a12", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect job_title\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere job_title is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.822471Z", "completed_at": "2026-09-27T03:59:11.870136Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.878989Z", "completed_at": "2026-09-27T03:59:11.879031Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.07819962501525879, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_store_city.6cc8b5a1a2", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_city\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere store_city is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.836924Z", "completed_at": "2026-09-27T03:59:11.874708Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.883102Z", "completed_at": "2026-09-27T03:59:11.883154Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.08062267303466797, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_employment_store_name.f651f514ac", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_name\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere store_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.854638Z", "completed_at": "2026-09-27T03:59:11.888722Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.895001Z", "completed_at": "2026-09-27T03:59:11.895032Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.07480239868164062, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_employee_employment_employee_id.349cd9d024", "compiled": true, "compiled_code": "\n \n \n\nselect\n employee_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_employee_employment\"\nwhere employee_id is not null\ngroup by employee_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.899620Z", "completed_at": "2026-09-27T03:59:11.927090Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.959651Z", "completed_at": "2026-09-27T03:59:11.959694Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.0738825798034668, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.dim_employees", "compiled": true, "compiled_code": "SELECT \n p.employee_id,\n e.store_id,\n e.manager_id,\n CONCAT(p.first_name, ' ', p.last_name) as employee_name,\n e.job_title,\n e.department,\n e.performance_rating,\n e.store_name, \n e.store_city,\n c.email,\n c.phone,\n e.annual_salary_usd, \n e.commission_rate_pct, \n e.years_employed, \n e.is_active,\n p.hire_date \nFROM \"RetailDB\".\"bronze\".\"int_employee_profile\" as p \n\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_employee_contact\" as c \n ON p.employee_id = c.employee_id\n\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_employee_employment\" as e \n ON p.employee_id = e.employee_id ;", "relation_name": "\"RetailDB\".\"bronze\".\"dim_employees\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.938131Z", "completed_at": "2026-09-27T03:59:11.977050Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.983045Z", "completed_at": "2026-09-27T03:59:11.983084Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.08493351936340332, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_profile_first_name.1ecad5e479", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect first_name\nfrom \"RetailDB\".\"bronze\".\"int_employee_profile\"\nwhere first_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.921915Z", "completed_at": "2026-09-27T03:59:11.979035Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.985587Z", "completed_at": "2026-09-27T03:59:11.985617Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.08875870704650879, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_profile_employee_id.b0a9f39539", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"int_employee_profile\"\nwhere employee_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:11.963088Z", "completed_at": "2026-09-27T03:59:11.987923Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:11.995157Z", "completed_at": "2026-09-27T03:59:11.995190Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.07616734504699707, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_profile_hire_date.7ee99bcf22", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect hire_date\nfrom \"RetailDB\".\"bronze\".\"int_employee_profile\"\nwhere hire_date is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.006124Z", "completed_at": "2026-09-27T03:59:12.054669Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.075867Z", "completed_at": "2026-09-27T03:59:12.075906Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.08690285682678223, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_employee_profile_last_name.580f17b21c", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect last_name\nfrom \"RetailDB\".\"bronze\".\"int_employee_profile\"\nwhere last_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.026636Z", "completed_at": "2026-09-27T03:59:12.083651Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.109340Z", "completed_at": "2026-09-27T03:59:12.109373Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.11005568504333496, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_employee_profile_employee_id.a5993c7dd6", "compiled": true, "compiled_code": "\n \n \n\nselect\n employee_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_employee_profile\"\nwhere employee_id is not null\ngroup by employee_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.039032Z", "completed_at": "2026-09-27T03:59:12.107423Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.113456Z", "completed_at": "2026-09-27T03:59:12.113490Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.11225247383117676, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_product_attributes_category__Bags__Beauty__Clothing__Electronics__Footwear__Health__Kitchen__Office__Sports__Toys.07ebbdc1f6", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n category as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_product_attributes\"\n group by category\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Bags','Beauty','Clothing','Electronics','Footwear','Health','Kitchen','Office','Sports','Toys'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.078469Z", "completed_at": "2026-09-27T03:59:12.115744Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.122072Z", "completed_at": "2026-09-27T03:59:12.122098Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.09843969345092773, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_product_attributes_department__Apparel_Sports__Books_Office__Fitness_Outdoors__Health_Beauty__Home_Garden__Technology__Toys_Games.2b64b418f6", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n department as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_product_attributes\"\n group by department\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Apparel & Sports','Books & Office','Fitness & Outdoors','Health & Beauty','Home & Garden','Technology','Toys & Games'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.125699Z", "completed_at": "2026-09-27T03:59:12.145916Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.174448Z", "completed_at": "2026-09-27T03:59:12.174477Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06279993057250977, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_brand.c1dd65709d", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect brand\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere brand is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.147266Z", "completed_at": "2026-09-27T03:59:12.182308Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.193239Z", "completed_at": "2026-09-27T03:59:12.193276Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06973409652709961, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_category.39f4905b43", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect category\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere category is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.158343Z", "completed_at": "2026-09-27T03:59:12.190239Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.195803Z", "completed_at": "2026-09-27T03:59:12.195833Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.05806088447570801, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_department.fad95d1e4c", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect department\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere department is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.177227Z", "completed_at": "2026-09-27T03:59:12.200913Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.207473Z", "completed_at": "2026-09-27T03:59:12.207500Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.06343483924865723, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_launched_date.7175feb482", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect launched_date\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere launched_date is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.211338Z", "completed_at": "2026-09-27T03:59:12.240896Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.257190Z", "completed_at": "2026-09-27T03:59:12.257233Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05963420867919922, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_product_id.d317fe9f5c", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere product_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.227383Z", "completed_at": "2026-09-27T03:59:12.259685Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.275499Z", "completed_at": "2026-09-27T03:59:12.275538Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.07005524635314941, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_product_name.ab95611d88", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_name\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere product_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.242379Z", "completed_at": "2026-09-27T03:59:12.272444Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.278220Z", "completed_at": "2026-09-27T03:59:12.278247Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06885051727294922, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_sku.4d167f66ec", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect sku\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere sku is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.261326Z", "completed_at": "2026-09-27T03:59:12.281973Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.288225Z", "completed_at": "2026-09-27T03:59:12.288251Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04929041862487793, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_product_attributes_sub_category.ec1e5bef03", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect sub_category\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere sub_category is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.293973Z", "completed_at": "2026-09-27T03:59:12.316305Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.337206Z", "completed_at": "2026-09-27T03:59:12.337236Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.0570828914642334, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_product_attributes_product_id.8584b57f27", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.311136Z", "completed_at": "2026-09-27T03:59:12.340192Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.364515Z", "completed_at": "2026-09-27T03:59:12.364550Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.07452106475830078, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_product_attributes_product_name.ccc7fc48bd", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_name as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere product_name is not null\ngroup by product_name\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.324415Z", "completed_at": "2026-09-27T03:59:12.361630Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.367116Z", "completed_at": "2026-09-27T03:59:12.367144Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.07500553131103516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_product_attributes_sku.46fd7012d5", "compiled": true, "compiled_code": "\n \n \n\nselect\n sku as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_attributes\"\nwhere sku is not null\ngroup by sku\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.341653Z", "completed_at": "2026-09-27T03:59:12.370729Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.376585Z", "completed_at": "2026-09-27T03:59:12.376612Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.06743717193603516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_product_inventory_is_available__Available__Not_Available__Discontinued__Unknown.6fb8d64f81", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_available as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_product_inventory\"\n group by is_available\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Available','Not Available','Discontinued','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.381946Z", "completed_at": "2026-09-27T03:59:12.404920Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.425121Z", "completed_at": "2026-09-27T03:59:12.425151Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05611729621887207, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_product_inventory_product_id.9b12ada6b4", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_product_inventory\"\nwhere product_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.399583Z", "completed_at": "2026-09-27T03:59:12.438453Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.443633Z", "completed_at": "2026-09-27T03:59:12.443664Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06504392623901367, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_product_inventory_product_id.732744fd20", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_inventory\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.412850Z", "completed_at": "2026-09-27T03:59:12.440674Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.446099Z", "completed_at": "2026-09-27T03:59:12.446125Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06581974029541016, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_product_pricing_product_id.fadb03a63d", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_product_pricing\"\nwhere product_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.427883Z", "completed_at": "2026-09-27T03:59:12.449656Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.455517Z", "completed_at": "2026-09-27T03:59:12.455543Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.057813167572021484, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_product_pricing_product_id.1ba68cde3a", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_pricing\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.461040Z", "completed_at": "2026-09-27T03:59:12.494331Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.505901Z", "completed_at": "2026-09-27T03:59:12.505937Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05804920196533203, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.dim_products", "compiled": true, "compiled_code": "SELECT\n a.product_id,\n a.sku,\n a.product_name,\n a.brand,\n a.category,\n a.sub_category,\n a.department,\n a.launched_date,\n a.product_url,\n p.base_price_usd,\n p.cost_price_usd,\n p.gross_margin_pct,\n i.is_available,\n i.stock_quantity,\n i.reorder_level,\n s.supplier_name,\n s.supplier_country,\n s.weight_kg,\n s.warranty_years,\n s.rating_avg,\n s.review_count\nFROM \"RetailDB\".\"bronze\".\"int_product_attributes\" AS a\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_product_pricing\" AS p\n ON a.product_id = p.product_id\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_product_inventory\" AS i\n ON a.product_id = i.product_id\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_product_supplier\" AS s\n ON a.product_id = s.product_id ;", "relation_name": "\"RetailDB\".\"bronze\".\"dim_products\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.478443Z", "completed_at": "2026-09-27T03:59:12.521534Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.530134Z", "completed_at": "2026-09-27T03:59:12.530169Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.07285094261169434, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_product_supplier_product_id.19984a84be", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_product_supplier\"\nwhere product_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.483884Z", "completed_at": "2026-09-27T03:59:12.526758Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.532203Z", "completed_at": "2026-09-27T03:59:12.532219Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.07321786880493164, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_product_supplier_product_id.3e37319263", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_product_supplier\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.508989Z", "completed_at": "2026-09-27T03:59:12.537241Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.543064Z", "completed_at": "2026-09-27T03:59:12.543089Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.0661020278930664, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_inventory_product_category__Electronics__Clothing__Kitchen__Office__Sports__Health__Beauty__Footwear__Toys__Bags__Unknown.fd70912290", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n category as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_inventory_product\"\n group by category\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Electronics','Clothing','Kitchen','Office','Sports','Health','Beauty','Footwear','Toys','Bags','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.546176Z", "completed_at": "2026-09-27T03:59:12.573369Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.587484Z", "completed_at": "2026-09-27T03:59:12.587514Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05374026298522949, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_category.3b4559e898", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect category\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere category is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.561909Z", "completed_at": "2026-09-27T03:59:12.591487Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.607014Z", "completed_at": "2026-09-27T03:59:12.607052Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06567859649658203, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_inventory_snapshot_sk.9c74fa15eb", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect inventory_snapshot_sk\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere inventory_snapshot_sk is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.576284Z", "completed_at": "2026-09-27T03:59:12.600129Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.611730Z", "completed_at": "2026-09-27T03:59:12.611755Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06690120697021484, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_product_id.b039ccc8f4", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere product_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.594988Z", "completed_at": "2026-09-27T03:59:12.619721Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.634861Z", "completed_at": "2026-09-27T03:59:12.634909Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.06043553352355957, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_product_name.b1cc316d19", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_name\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere product_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.622480Z", "completed_at": "2026-09-27T03:59:12.640293Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.675329Z", "completed_at": "2026-09-27T03:59:12.675373Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06556320190429688, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_sku.38fee3ca77", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect sku\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere sku is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.643189Z", "completed_at": "2026-09-27T03:59:12.683093Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.688918Z", "completed_at": "2026-09-27T03:59:12.688952Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06818842887878418, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_product_snapshot_date.f7776ecf58", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect snapshot_date\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere snapshot_date is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.654116Z", "completed_at": "2026-09-27T03:59:12.687561Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.703141Z", "completed_at": "2026-09-27T03:59:12.703172Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.07015442848205566, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.relationships_int_inventory_product_product_id__product_id__ref_int_product_attributes_.96b32ae525", "compiled": true, "compiled_code": "\n \n \n\nwith child as (\n select product_id as from_field\n from \"RetailDB\".\"bronze\".\"int_inventory_product\"\n where product_id is not null\n),\n\nparent as (\n select product_id as to_field\n from \"RetailDB\".\"bronze\".\"int_product_attributes\"\n)\n\nselect\n from_field\n\nfrom child\nleft join parent\n on child.from_field = parent.to_field\n\nwhere parent.to_field is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.690961Z", "completed_at": "2026-09-27T03:59:12.722971Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.727592Z", "completed_at": "2026-09-27T03:59:12.727625Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04856562614440918, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_inventory_product_inventory_snapshot_sk.08e50afdaf", "compiled": true, "compiled_code": "\n \n \n\nselect\n inventory_snapshot_sk as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_inventory_product\"\nwhere inventory_snapshot_sk is not null\ngroup by inventory_snapshot_sk\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.707605Z", "completed_at": "2026-09-27T03:59:12.731335Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.737093Z", "completed_at": "2026-09-27T03:59:12.737119Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.051293134689331055, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_stock_inventory_snapshot_sk.ff913462e4", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect inventory_snapshot_sk\nfrom \"RetailDB\".\"bronze\".\"int_inventory_stock\"\nwhere inventory_snapshot_sk is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.739245Z", "completed_at": "2026-09-27T03:59:12.769727Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.784977Z", "completed_at": "2026-09-27T03:59:12.785005Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.059331655502319336, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_inventory_stock_inventory_snapshot_sk.9d7117fc4c", "compiled": true, "compiled_code": "\n \n \n\nselect\n inventory_snapshot_sk as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_inventory_stock\"\nwhere inventory_snapshot_sk is not null\ngroup by inventory_snapshot_sk\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.751993Z", "completed_at": "2026-09-27T03:59:12.777917Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.789361Z", "completed_at": "2026-09-27T03:59:12.789387Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.05972886085510254, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.dim_inventory", "compiled": true, "compiled_code": "-- models/marts/core/dimensions/dim_inventory.sql\n\n\n/*\n Description: Product dimension with SCD Type 2 tracking\n Grain: 1 row per product snapshot change\n Load: Full refresh daily\n*/\n\nWITH product_base AS (\n SELECT\n p.inventory_snapshot_sk,\n p.snapshot_date,\n p.product_id,\n p.product_name,\n p.sku,\n p.category,\n v.unit_cost,\n v.unit_price,\n v.warehouse_location,\n v.store_id\n FROM \"RetailDB\".\"bronze\".\"int_inventory_product\" p\n INNER JOIN \"RetailDB\".\"bronze\".\"int_inventory_valuation\" v\n ON p.inventory_snapshot_sk = v.inventory_snapshot_sk\n),\n\nproduct_with_lead AS (\n SELECT\n *,\n LEAD(snapshot_date) OVER (\n PARTITION BY product_id \n ORDER BY snapshot_date\n ) as next_effective_date\n FROM product_base\n)\n\nSELECT\n \n lower(convert(varchar(50), hashbytes('md5', coalesce(convert(varchar(8000), concat(coalesce(cast(product_id as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'), '-', coalesce(cast(snapshot_date as VARCHAR(MAX)), '_dbt_utils_surrogate_key_null_'))), '')), 2))\n as product_snapshot_sk,\n \n product_id,\n inventory_snapshot_sk,\n product_name,\n sku,\n category,\n \n unit_cost,\n unit_price,\n unit_price - unit_cost as unit_margin,\n CASE \n WHEN unit_price = 0 OR unit_price IS NULL THEN 0\n ELSE ROUND(((unit_price - unit_cost) / unit_price) * 100, 2)\n END as margin_percentage,\n \n warehouse_location,\n store_id,\n \n snapshot_date as effective_from_date,\n next_effective_date as effective_to_date,\n \n CASE \n WHEN next_effective_date IS NULL THEN 1 \n ELSE 0 \n END as is_current_record,\n \n CASE \n WHEN unit_cost > unit_price THEN 1 \n ELSE 0 \n END as is_negative_margin,\n \n GETDATE() as dbt_created_at,\n GETDATE() as dbt_updated_at\n \nFROM product_with_lead\nWHERE snapshot_date IS NOT NULL", "relation_name": "\"RetailDB\".\"bronze\".\"dim_inventory\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.772759Z", "completed_at": "2026-09-27T03:59:12.806559Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.811359Z", "completed_at": "2026-09-27T03:59:12.811399Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.06113100051879883, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_valuation_inventory_snapshot_sk.036a80c28a", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect inventory_snapshot_sk\nfrom \"RetailDB\".\"bronze\".\"int_inventory_valuation\"\nwhere inventory_snapshot_sk is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.793496Z", "completed_at": "2026-09-27T03:59:12.813439Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.819106Z", "completed_at": "2026-09-27T03:59:12.819132Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.04819536209106445, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_inventory_valuation_warehouse_location.835673fed9", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect warehouse_location\nfrom \"RetailDB\".\"bronze\".\"int_inventory_valuation\"\nwhere warehouse_location is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.821252Z", "completed_at": "2026-09-27T03:59:12.853654Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.868917Z", "completed_at": "2026-09-27T03:59:12.868946Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06125164031982422, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_inventory_valuation_inventory_snapshot_sk.2d586ef9af", "compiled": true, "compiled_code": "\n \n \n\nselect\n inventory_snapshot_sk as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_inventory_valuation\"\nwhere inventory_snapshot_sk is not null\ngroup by inventory_snapshot_sk\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.832576Z", "completed_at": "2026-09-27T03:59:12.856307Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.872990Z", "completed_at": "2026-09-27T03:59:12.873024Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06354260444641113, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_return_refund_refund_method__Cash__Original_Payment__Store_Credit.c4762af53a", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n refund_method as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_return_refund\"\n group by refund_method\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Cash','Original Payment','Store Credit'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.857768Z", "completed_at": "2026-09-27T03:59:12.885996Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.897380Z", "completed_at": "2026-09-27T03:59:12.897405Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04949760437011719, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_return_refund_refund_method.83f1b9cc4e", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect refund_method\nfrom \"RetailDB\".\"bronze\".\"int_return_refund\"\nwhere refund_method is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.877479Z", "completed_at": "2026-09-27T03:59:12.902655Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.917639Z", "completed_at": "2026-09-27T03:59:12.917674Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06301617622375488, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_return_refund_return_id.0a7f23f19b", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_id\nfrom \"RetailDB\".\"bronze\".\"int_return_refund\"\nwhere return_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.907157Z", "completed_at": "2026-09-27T03:59:12.939708Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.957974Z", "completed_at": "2026-09-27T03:59:12.958000Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.062265872955322266, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_return_refund_return_id.1904e0149a", "compiled": true, "compiled_code": "\n \n \n\nselect\n return_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_return_refund\"\nwhere return_id is not null\ngroup by return_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.921738Z", "completed_at": "2026-09-27T03:59:12.952990Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.961402Z", "completed_at": "2026-09-27T03:59:12.961434Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.062244415283203125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_return_processing_restocked__Yes__No__Unknown.bcf59a1e1f", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n restocked as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_return_processing\"\n group by restocked\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Yes','No','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.942703Z", "completed_at": "2026-09-27T03:59:12.970804Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:12.981658Z", "completed_at": "2026-09-27T03:59:12.981682Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.06166529655456543, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_return_processing_return_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.5fccc869d9", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n return_channel as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_return_processing\"\n group by return_channel\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Mobile App','In Store','Online','Phone Call','Catalog','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.965612Z", "completed_at": "2026-09-27T03:59:12.987082Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.001857Z", "completed_at": "2026-09-27T03:59:13.001903Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06099414825439453, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_return_processing_restocked.a169aa3d70", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect restocked\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere restocked is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:12.991361Z", "completed_at": "2026-09-27T03:59:13.020978Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.036121Z", "completed_at": "2026-09-27T03:59:13.036146Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.05618786811828613, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_return_processing_return_channel.4e70d8cedb", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_channel\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere return_channel is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.006582Z", "completed_at": "2026-09-27T03:59:13.034202Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.039589Z", "completed_at": "2026-09-27T03:59:13.039613Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.05590534210205078, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_return_processing_return_id.70a41fc821", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_id\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere return_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.023937Z", "completed_at": "2026-09-27T03:59:13.054182Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.060054Z", "completed_at": "2026-09-27T03:59:13.060079Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.055176734924316406, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_return_processing_return_reason.def074cf28", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_reason\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere return_reason is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.043868Z", "completed_at": "2026-09-27T03:59:13.065395Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.085284Z", "completed_at": "2026-09-27T03:59:13.085315Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06320047378540039, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_return_processing_return_status.6d8d37f1d3", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_status\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere return_status is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.069867Z", "completed_at": "2026-09-27T03:59:13.101000Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.105915Z", "completed_at": "2026-09-27T03:59:13.105953Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.047696828842163086, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_return_processing_return_id.7f07242ef7", "compiled": true, "compiled_code": "\n \n \n\nselect\n return_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_return_processing\"\nwhere return_id is not null\ngroup by return_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.088941Z", "completed_at": "2026-09-27T03:59:13.108534Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.124410Z", "completed_at": "2026-09-27T03:59:13.124443Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06235480308532715, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_return_transaction_customer_name.da820b6e0e", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_name\nfrom \"RetailDB\".\"bronze\".\"int_return_transaction\"\nwhere customer_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.109885Z", "completed_at": "2026-09-27T03:59:13.143201Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.148891Z", "completed_at": "2026-09-27T03:59:13.148936Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.061858177185058594, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_return_transaction_product_name.973039b798", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_name\nfrom \"RetailDB\".\"bronze\".\"int_return_transaction\"\nwhere product_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.127123Z", "completed_at": "2026-09-27T03:59:13.161899Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.175811Z", "completed_at": "2026-09-27T03:59:13.175853Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.0720374584197998, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_return_transaction_return_date.0ceaab3215", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_date\nfrom \"RetailDB\".\"bronze\".\"int_return_transaction\"\nwhere return_date is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.151455Z", "completed_at": "2026-09-27T03:59:13.194408Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.201517Z", "completed_at": "2026-09-27T03:59:13.201557Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06415605545043945, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_return_transaction_return_id.163631358b", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect return_id\nfrom \"RetailDB\".\"bronze\".\"int_return_transaction\"\nwhere return_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.178670Z", "completed_at": "2026-09-27T03:59:13.200268Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.220115Z", "completed_at": "2026-09-27T03:59:13.220150Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.07320117950439453, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_return_transaction_return_id.28ded58b95", "compiled": true, "compiled_code": "\n \n \n\nselect\n return_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_return_transaction\"\nwhere return_id is not null\ngroup by return_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.205170Z", "completed_at": "2026-09-27T03:59:13.239527Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.244927Z", "completed_at": "2026-09-27T03:59:13.244967Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.054938316345214844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_review_feedback_review_channel__Mobile_App__In_Store__Online__Phone_Call__Catalog__Unknown.e21453d669", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n review_channel as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_review_feedback\"\n group by review_channel\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Mobile App','In Store','Online','Phone Call','Catalog','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.224585Z", "completed_at": "2026-09-27T03:59:13.243482Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.260041Z", "completed_at": "2026-09-27T03:59:13.260115Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.061989784240722656, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_review_feedback_review_channel.e637eee1d6", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_channel\nfrom \"RetailDB\".\"bronze\".\"int_review_feedback\"\nwhere review_channel is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.248440Z", "completed_at": "2026-09-27T03:59:13.288758Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.294283Z", "completed_at": "2026-09-27T03:59:13.294316Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.0562291145324707, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_review_feedback_review_id.7319c6feb3", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_id\nfrom \"RetailDB\".\"bronze\".\"int_review_feedback\"\nwhere review_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.264448Z", "completed_at": "2026-09-27T03:59:13.292823Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.308731Z", "completed_at": "2026-09-27T03:59:13.308770Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.0682377815246582, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_review_feedback_review_title.4b5134c5ca", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_title\nfrom \"RetailDB\".\"bronze\".\"int_review_feedback\"\nwhere review_title is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.297731Z", "completed_at": "2026-09-27T03:59:13.326826Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.332317Z", "completed_at": "2026-09-27T03:59:13.332349Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04529976844787598, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_review_feedback_review_id.abd37c25ad", "compiled": true, "compiled_code": "\n \n \n\nselect\n review_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_review_feedback\"\nwhere review_id is not null\ngroup by review_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.312522Z", "completed_at": "2026-09-27T03:59:13.331376Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.348103Z", "completed_at": "2026-09-27T03:59:13.348138Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05811595916748047, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_review_rating_rating__1__2__3__4__5.fa6071f8df", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n rating as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_review_rating\"\n group by rating\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n '1','2','3','4','5'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.335814Z", "completed_at": "2026-09-27T03:59:13.364963Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.371115Z", "completed_at": "2026-09-27T03:59:13.371141Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.046822547912597656, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_review_rating_review_id.c8fa2eb4d0", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_id\nfrom \"RetailDB\".\"bronze\".\"int_review_rating\"\nwhere review_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.352103Z", "completed_at": "2026-09-27T03:59:13.369808Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.386109Z", "completed_at": "2026-09-27T03:59:13.386143Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.05800008773803711, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_review_rating_review_id.fb244f2642", "compiled": true, "compiled_code": "\n \n \n\nselect\n review_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_review_rating\"\nwhere review_id is not null\ngroup by review_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.374682Z", "completed_at": "2026-09-27T03:59:13.405811Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.410988Z", "completed_at": "2026-09-27T03:59:13.411024Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04795122146606445, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_review_transaction_customer_id.296d834f24", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere customer_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.390201Z", "completed_at": "2026-09-27T03:59:13.413335Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.430096Z", "completed_at": "2026-09-27T03:59:13.430130Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06397151947021484, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_review_transaction_product_id.980062fb89", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere product_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.417057Z", "completed_at": "2026-09-27T03:59:13.451725Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.456275Z", "completed_at": "2026-09-27T03:59:13.456305Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.05254340171813965, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_review_transaction_review_date.2e4911b1c8", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_date\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere review_date is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.432453Z", "completed_at": "2026-09-27T03:59:13.458454Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.474291Z", "completed_at": "2026-09-27T03:59:13.474324Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06702256202697754, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_review_transaction_review_id.36ac118ba9", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect review_id\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere review_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.459723Z", "completed_at": "2026-09-27T03:59:13.490000Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.494612Z", "completed_at": "2026-09-27T03:59:13.494641Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04691433906555176, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_review_transaction_txn_id.b153953529", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect txn_id\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere txn_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.476828Z", "completed_at": "2026-09-27T03:59:13.497120Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.513478Z", "completed_at": "2026-09-27T03:59:13.513507Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.0590672492980957, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_review_transaction_review_id.ace040f037", "compiled": true, "compiled_code": "\n \n \n\nselect\n review_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_review_transaction\"\nwhere review_id is not null\ngroup by review_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.500038Z", "completed_at": "2026-09-27T03:59:13.520320Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.535738Z", "completed_at": "2026-09-27T03:59:13.535800Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.04761838912963867, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_address.0ce7c5738d", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect address\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere address is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.521742Z", "completed_at": "2026-09-27T03:59:13.551716Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.567657Z", "completed_at": "2026-09-27T03:59:13.567689Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.0694887638092041, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_city.52cb5206b2", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect city\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere city is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.538111Z", "completed_at": "2026-09-27T03:59:13.571711Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.577614Z", "completed_at": "2026-09-27T03:59:13.577648Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.060784339904785156, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_country.bf81137315", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect country\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere country is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.554852Z", "completed_at": "2026-09-27T03:59:13.576330Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.592760Z", "completed_at": "2026-09-27T03:59:13.592825Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05888056755065918, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_district.29150f3093", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect district\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere district is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.581195Z", "completed_at": "2026-09-27T03:59:13.602343Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.618960Z", "completed_at": "2026-09-27T03:59:13.618990Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.049234628677368164, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_phone.2b5ee0a89d", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect phone\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere phone is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.603689Z", "completed_at": "2026-09-27T03:59:13.634502Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.652591Z", "completed_at": "2026-09-27T03:59:13.652619Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.07311272621154785, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_region.10b1faa762", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect region\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere region is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.622867Z", "completed_at": "2026-09-27T03:59:13.658531Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.664133Z", "completed_at": "2026-09-27T03:59:13.664157Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.06351137161254883, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_location_store_id.1a1692bb1e", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere store_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.641602Z", "completed_at": "2026-09-27T03:59:13.660055Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.666118Z", "completed_at": "2026-09-27T03:59:13.666149Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05029630661010742, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_store_location_store_id.708c011d5e", "compiled": true, "compiled_code": "\n \n \n\nselect\n store_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_store_location\"\nwhere store_id is not null\ngroup by store_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.668161Z", "completed_at": "2026-09-27T03:59:13.697099Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.701640Z", "completed_at": "2026-09-27T03:59:13.701668Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.047240495681762695, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_cafe__True__False__Unknown.b02c35a29d", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n has_cafe as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_store_operations\"\n group by has_cafe\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.684837Z", "completed_at": "2026-09-27T03:59:13.705328Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.721233Z", "completed_at": "2026-09-27T03:59:13.721259Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.05891895294189453, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_store_operations_has_parking__True__False__Unknown.3728409db2", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n has_parking as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_store_operations\"\n group by has_parking\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.709540Z", "completed_at": "2026-09-27T03:59:13.739593Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.745369Z", "completed_at": "2026-09-27T03:59:13.745397Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.047150373458862305, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_store_operations_is_active__True__False__Unknown.298394908a", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_active as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_store_operations\"\n group by is_active\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.723431Z", "completed_at": "2026-09-27T03:59:13.744098Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.759843Z", "completed_at": "2026-09-27T03:59:13.759874Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06012916564941406, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_operations_has_cafe.6ebade018d", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect has_cafe\nfrom \"RetailDB\".\"bronze\".\"int_store_operations\"\nwhere has_cafe is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.747482Z", "completed_at": "2026-09-27T03:59:13.778998Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.785851Z", "completed_at": "2026-09-27T03:59:13.785879Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.05049777030944824, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_operations_has_parking.94fffde25b", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect has_parking\nfrom \"RetailDB\".\"bronze\".\"int_store_operations\"\nwhere has_parking is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.763805Z", "completed_at": "2026-09-27T03:59:13.784393Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.791239Z", "completed_at": "2026-09-27T03:59:13.791276Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.0491642951965332, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_operations_is_active.b4ed4559d5", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect is_active\nfrom \"RetailDB\".\"bronze\".\"int_store_operations\"\nwhere is_active is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.795794Z", "completed_at": "2026-09-27T03:59:13.836572Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.854005Z", "completed_at": "2026-09-27T03:59:13.854044Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.07375431060791016, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_operations_store_id.4e3985d8f2", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"int_store_operations\"\nwhere store_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.808441Z", "completed_at": "2026-09-27T03:59:13.838290Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.856824Z", "completed_at": "2026-09-27T03:59:13.856858Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.07512283325195312, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_store_operations_store_id.2018d3ff75", "compiled": true, "compiled_code": "\n \n \n\nselect\n store_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_store_operations\"\nwhere store_id is not null\ngroup by store_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.842039Z", "completed_at": "2026-09-27T03:59:13.877795Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.884966Z", "completed_at": "2026-09-27T03:59:13.885022Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.05532336235046387, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.dbt_analytics_engineering.dim_stores", "compiled": true, "compiled_code": "SELECT\n p.store_id,\n p.store_name,\n p.store_type,\n p.manager_name,\n p.opened_date,\n l.address,\n l.city,\n l.state,\n l.state_full,\n l.zip_code,\n l.country,\n l.region,\n l.district,\n l.phone,\n o.sq_footage,\n o.num_employees,\n o.annual_rent_usd,\n o.is_active,\n o.has_parking,\n o.has_cafe\nFROM \"RetailDB\".\"bronze\".\"int_store_profile\" AS p\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_store_location\" AS l\n ON p.store_id = l.store_id\nLEFT JOIN \"RetailDB\".\"bronze\".\"int_store_operations\" AS o\n ON p.store_id = o.store_id\nWHERE p.store_id IS NOT NULL;", "relation_name": "\"RetailDB\".\"bronze\".\"dim_stores\"", "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.860013Z", "completed_at": "2026-09-27T03:59:13.888008Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.895166Z", "completed_at": "2026-09-27T03:59:13.895203Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06311345100402832, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_profile_manager_name.7e1eb48b5b", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect manager_name\nfrom \"RetailDB\".\"bronze\".\"int_store_profile\"\nwhere manager_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.898027Z", "completed_at": "2026-09-27T03:59:13.935257Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.952890Z", "completed_at": "2026-09-27T03:59:13.952916Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.07265019416809082, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_profile_store_id.bb3e17dcc3", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"int_store_profile\"\nwhere store_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.914523Z", "completed_at": "2026-09-27T03:59:13.937754Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.956755Z", "completed_at": "2026-09-27T03:59:13.956817Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.07433438301086426, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_profile_store_name.440ba3db70", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_name\nfrom \"RetailDB\".\"bronze\".\"int_store_profile\"\nwhere store_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.939663Z", "completed_at": "2026-09-27T03:59:13.980881Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:13.985667Z", "completed_at": "2026-09-27T03:59:13.985694Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.05725741386413574, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_store_profile_store_type.1533baa047", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_type\nfrom \"RetailDB\".\"bronze\".\"int_store_profile\"\nwhere store_type is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.961473Z", "completed_at": "2026-09-27T03:59:13.990509Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.005403Z", "completed_at": "2026-09-27T03:59:14.005463Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06963849067687988, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.relationships_int_employee_employment_store_id__store_id__ref_int_store_profile_.1941f5b907", "compiled": true, "compiled_code": "\n \n \n\nwith child as (\n select store_id as from_field\n from \"RetailDB\".\"bronze\".\"int_employee_employment\"\n where store_id is not null\n),\n\nparent as (\n select store_id as to_field\n from \"RetailDB\".\"bronze\".\"int_store_profile\"\n)\n\nselect\n from_field\n\nfrom child\nleft join parent\n on child.from_field = parent.to_field\n\nwhere parent.to_field is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:13.994175Z", "completed_at": "2026-09-27T03:59:14.027453Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.049965Z", "completed_at": "2026-09-27T03:59:14.049993Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.0660560131072998, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_store_profile_store_id.d293596622", "compiled": true, "compiled_code": "\n \n \n\nselect\n store_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_store_profile\"\nwhere store_id is not null\ngroup by store_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.010146Z", "completed_at": "2026-09-27T03:59:14.041473Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.053497Z", "completed_at": "2026-09-27T03:59:14.053522Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06637024879455566, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_financial_transaction_id.b0c6238393", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect transaction_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_financial\"\nwhere transaction_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.031168Z", "completed_at": "2026-09-27T03:59:14.062915Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.074381Z", "completed_at": "2026-09-27T03:59:14.074407Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06621122360229492, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_transaction_financial_transaction_id.9f42b7645d", "compiled": true, "compiled_code": "\n \n \n\nselect\n transaction_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_transaction_financial\"\nwhere transaction_id is not null\ngroup by transaction_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.057759Z", "completed_at": "2026-09-27T03:59:14.079979Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.096198Z", "completed_at": "2026-09-27T03:59:14.096227Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.06704139709472656, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_customer_id.ad17338ea9", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere customer_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.084606Z", "completed_at": "2026-09-27T03:59:14.113607Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.118248Z", "completed_at": "2026-09-27T03:59:14.118278Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04573631286621094, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_employee_id.12d68f00f2", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere employee_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.100542Z", "completed_at": "2026-09-27T03:59:14.120252Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.136555Z", "completed_at": "2026-09-27T03:59:14.136585Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.05994534492492676, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_order_id.402e3d5af3", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect order_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere order_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.121718Z", "completed_at": "2026-09-27T03:59:14.152980Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.157800Z", "completed_at": "2026-09-27T03:59:14.157828Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.05930447578430176, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_product_id.e1c83e6b81", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere product_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.138882Z", "completed_at": "2026-09-27T03:59:14.160028Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.175955Z", "completed_at": "2026-09-27T03:59:14.175989Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.05965065956115723, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_store_id.a5a31f4088", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere store_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.162926Z", "completed_at": "2026-09-27T03:59:14.183417Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.201193Z", "completed_at": "2026-09-27T03:59:14.201234Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.050176143646240234, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_order_transaction_id.ce8ae051e2", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect transaction_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere transaction_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.184736Z", "completed_at": "2026-09-27T03:59:14.222354Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.239197Z", "completed_at": "2026-09-27T03:59:14.239233Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.07818365097045898, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_transaction_order_transaction_id.7ef27eea80", "compiled": true, "compiled_code": "\n \n \n\nselect\n transaction_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_transaction_order\"\nwhere transaction_id is not null\ngroup by transaction_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.203850Z", "completed_at": "2026-09-27T03:59:14.243269Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.250454Z", "completed_at": "2026-09-27T03:59:14.250490Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.07076168060302734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_order_date.2248138cc0", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect order_date\nfrom \"RetailDB\".\"bronze\".\"int_transaction_fulfillment\"\nwhere order_date is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.225803Z", "completed_at": "2026-09-27T03:59:14.248504Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.264079Z", "completed_at": "2026-09-27T03:59:14.264119Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.0652616024017334, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_fulfillment_transaction_id.6074867dc7", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect transaction_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_fulfillment\"\nwhere transaction_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.254697Z", "completed_at": "2026-09-27T03:59:14.280030Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.294529Z", "completed_at": "2026-09-27T03:59:14.294563Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.0530400276184082, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_transaction_fulfillment_transaction_id.19535076ac", "compiled": true, "compiled_code": "\n \n \n\nselect\n transaction_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_transaction_fulfillment\"\nwhere transaction_id is not null\ngroup by transaction_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.274950Z", "completed_at": "2026-09-27T03:59:14.303495Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.333909Z", "completed_at": "2026-09-27T03:59:14.333942Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.08122992515563965, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_transaction_status_is_returned__True__False__Unknown.fcbf6be4ad", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_returned as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_transaction_status\"\n group by is_returned\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.298330Z", "completed_at": "2026-09-27T03:59:14.338268Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.344179Z", "completed_at": "2026-09-27T03:59:14.344205Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.07220768928527832, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_int_transaction_status_order_status__Pending__Processing__Shipped__Delivered__Returned__Cancelled.d3263719c7", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n order_status as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"int_transaction_status\"\n group by order_status\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'Pending','Processing','Shipped','Delivered','Returned','Cancelled'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.322331Z", "completed_at": "2026-09-27T03:59:14.341339Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.348089Z", "completed_at": "2026-09-27T03:59:14.348122Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.05639219284057617, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_status_is_returned.68242f5dfd", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect is_returned\nfrom \"RetailDB\".\"bronze\".\"int_transaction_status\"\nwhere is_returned is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.350157Z", "completed_at": "2026-09-27T03:59:14.378887Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.383469Z", "completed_at": "2026-09-27T03:59:14.383507Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.047753334045410156, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_status_order_status.e2edc43658", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect order_status\nfrom \"RetailDB\".\"bronze\".\"int_transaction_status\"\nwhere order_status is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.367471Z", "completed_at": "2026-09-27T03:59:14.387733Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.418121Z", "completed_at": "2026-09-27T03:59:14.418151Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.07201790809631348, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_status_promo_name.73af556bae", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect promo_name\nfrom \"RetailDB\".\"bronze\".\"int_transaction_status\"\nwhere promo_name is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.389177Z", "completed_at": "2026-09-27T03:59:14.422332Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.428364Z", "completed_at": "2026-09-27T03:59:14.428401Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.06282663345336914, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_int_transaction_status_transaction_id.307f36c18d", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect transaction_id\nfrom \"RetailDB\".\"bronze\".\"int_transaction_status\"\nwhere transaction_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.402569Z", "completed_at": "2026-09-27T03:59:14.425732Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.432013Z", "completed_at": "2026-09-27T03:59:14.432038Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.05193662643432617, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_int_transaction_status_transaction_id.5a928112d7", "compiled": true, "compiled_code": "\n \n \n\nselect\n transaction_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"int_transaction_status\"\nwhere transaction_id is not null\ngroup by transaction_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.434140Z", "completed_at": "2026-09-27T03:59:14.462534Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.467734Z", "completed_at": "2026-09-27T03:59:14.467764Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04751896858215332, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_dim_customers_customer_id.dd91cd1c8d", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"RetailDB\".\"bronze\".\"dim_customers\"\nwhere customer_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.452184Z", "completed_at": "2026-09-27T03:59:14.482212Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.496847Z", "completed_at": "2026-09-27T03:59:14.496878Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06661128997802734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_dim_customers_customer_id.15c9f1e2fd", "compiled": true, "compiled_code": "\n \n \n\nselect\n customer_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"dim_customers\"\nwhere customer_id is not null\ngroup by customer_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.471611Z", "completed_at": "2026-09-27T03:59:14.501294Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.507203Z", "completed_at": "2026-09-27T03:59:14.507230Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.05699944496154785, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_dim_employees_employee_id.ef83a0c291", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect employee_id\nfrom \"RetailDB\".\"bronze\".\"dim_employees\"\nwhere employee_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.485966Z", "completed_at": "2026-09-27T03:59:14.506032Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.522339Z", "completed_at": "2026-09-27T03:59:14.522367Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.05797719955444336, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_dim_employees_employee_id.79828c8f30", "compiled": true, "compiled_code": "\n \n \n\nselect\n employee_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"dim_employees\"\nwhere employee_id is not null\ngroup by employee_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.511143Z", "completed_at": "2026-09-27T03:59:14.531209Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.546965Z", "completed_at": "2026-09-27T03:59:14.546994Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.04831099510192871, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_dim_products_product_id.c8aba288d1", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect product_id\nfrom \"RetailDB\".\"bronze\".\"dim_products\"\nwhere product_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.532518Z", "completed_at": "2026-09-27T03:59:14.561661Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.576042Z", "completed_at": "2026-09-27T03:59:14.576074Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.06668257713317871, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_dim_products_product_id.ef7b2a9985", "compiled": true, "compiled_code": "\n \n \n\nselect\n product_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"dim_products\"\nwhere product_id is not null\ngroup by product_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.551273Z", "completed_at": "2026-09-27T03:59:14.580233Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.585386Z", "completed_at": "2026-09-27T03:59:14.585415Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.056174278259277344, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.accepted_values_dim_stores_is_active__True__False__Unknown.35f5206575", "compiled": true, "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n is_active as value_field,\n count(*) as n_records\n\n from \"RetailDB\".\"bronze\".\"dim_stores\"\n group by is_active\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'True','False','Unknown'\n)\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.565035Z", "completed_at": "2026-09-27T03:59:14.584043Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.602471Z", "completed_at": "2026-09-27T03:59:14.602498Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.058820486068725586, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.not_null_dim_stores_store_id.e93781bc63", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect store_id\nfrom \"RetailDB\".\"bronze\".\"dim_stores\"\nwhere store_id is null\n\n\n", "relation_name": null, "batch_results": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2026-09-27T03:59:14.587050Z", "completed_at": "2026-09-27T03:59:14.605618Z"}, {"name": "execute", "started_at": "2026-09-27T03:59:14.607021Z", "completed_at": "2026-09-27T03:59:14.607042Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.028784990310668945, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.dbt_analytics_engineering.unique_dim_stores_store_id.0479724a85", "compiled": true, "compiled_code": "\n \n \n\nselect\n store_id as unique_field,\n count(*) as n_records\n\nfrom \"RetailDB\".\"bronze\".\"dim_stores\"\nwhere store_id is not null\ngroup by store_id\nhaving count(*) > 1\n\n\n", "relation_name": null, "batch_results": null}], "elapsed_time": 5.045648097991943, "args": {"invocation_command": "dbt docs generate", "require_explicit_package_overrides_for_builtin_materializations": true, "require_batched_execution_for_custom_microbatch_strategy": false, "static": false, "use_fast_test_edges": false, "log_format_file": "debug", "profiles_dir": "/home/ritik/.dbt", "require_all_warnings_handled_by_warn_error": false, "show_resource_report": false, "favor_state": false, "defer": false, "state_modified_compare_more_unrendered_values": false, "cache_selected_only": false, "require_ref_searches_node_package_before_root": false, "log_path": "/home/ritik/dbt-analytics-engineering/logs", "printer_width": 80, "log_format": "default", "log_file_max_bytes": 10485760, "skip_nodes_if_on_run_start_fails": false, "introspect": true, "write_json": true, "source_freshness_run_project_hooks": true, "state_modified_compare_vars": false, "print": true, "require_resource_names_without_spaces": true, "validate_macro_args": false, "upload_to_artifacts_ingest_api": false, "exclude": [], "require_unique_project_resource_names": false, "require_yaml_configuration_for_mf_time_spines": false, "select": [], "partial_parse": true, "warn_error_options": {"error": [], "warn": [], "silence": []}, "static_parser": true, "empty_catalog": false, "vars": {}, "show_all_deprecations": false, "quiet": false, "require_nested_cumulative_type_params": false, "use_colors": true, "partial_parse_file_diff": true, "indirect_selection": "eager", "use_colors_file": true, "version_check": true, "sqlparse": {"MAX_GROUPING_DEPTH": null, "MAX_GROUPING_TOKENS": null}, "which": "generate", "compile": true, "macro_debugging": false, "strict_mode": false, "send_anonymous_usage_stats": true, "project_dir": "/home/ritik/dbt-analytics-engineering", "require_generic_test_arguments_property": true, "log_level_file": "debug", "populate_cache": true, "log_level": "info"}}
\ No newline at end of file
diff --git a/target/semantic_manifest.json b/target/semantic_manifest.json
new file mode 100644
index 0000000..8893f9e
--- /dev/null
+++ b/target/semantic_manifest.json
@@ -0,0 +1 @@
+{"semantic_models": [], "metrics": [], "project_configuration": {"time_spine_table_configurations": [], "metadata": null, "dsi_package_version": {"major_version": "0", "minor_version": "9", "patch_version": "0"}, "time_spines": []}, "saved_queries": []}
\ No newline at end of file
diff --git a/target/sources.json b/target/sources.json
new file mode 100644
index 0000000..e50f204
--- /dev/null
+++ b/target/sources.json
@@ -0,0 +1 @@
+{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/sources/v3.json", "dbt_version": "1.11.11", "generated_at": "2026-07-19T14:53:15.899231Z", "invocation_id": "1dbdbea6-ec83-4a04-a63b-60b748fa1a48", "invocation_started_at": "2026-07-19T14:53:13.710023Z", "env": {}}, "results": [], "elapsed_time": 0.0}
\ No newline at end of file