From 50e513df10e2d134151276d349f644cc0a7e74b2 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Thu, 6 Jul 2023 17:13:47 -0500 Subject: [PATCH 01/21] remove fields --- models/pinterest.yml | 4 ---- models/pinterest_ads__advertiser_report.sql | 4 +--- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/models/pinterest.yml b/models/pinterest.yml index 34d58ac..e6a3bf7 100644 --- a/models/pinterest.yml +++ b/models/pinterest.yml @@ -173,14 +173,10 @@ models: description: "{{ doc('advertiser_id') }}" tests: - not_null - - name: advertiser_status - description: Status of the advertiser account. - name: currency_code description: The currency code which the advertiser is set up using. - name: country description: The country code where the advertiser is located. - - name: billing_type - description: The billing type of the advertiser. Will typically be CREDIT_CARD or INVOICE. - name: spend description: "{{ doc('spend') }}" - name: clicks diff --git a/models/pinterest_ads__advertiser_report.sql b/models/pinterest_ads__advertiser_report.sql index 50b1d19..04eff7c 100644 --- a/models/pinterest_ads__advertiser_report.sql +++ b/models/pinterest_ads__advertiser_report.sql @@ -19,10 +19,8 @@ fields as ( report.date_day, advertisers.advertiser_name, report.advertiser_id, - advertisers.advertiser_status, advertisers.currency_code, advertisers.country, - advertisers.billing_type, sum(report.spend) as spend, sum(report.clicks) as clicks, sum(report.impressions) as impressions @@ -32,7 +30,7 @@ fields as ( from report left join advertisers on report.advertiser_id = advertisers.advertiser_id - {{ dbt_utils.group_by(7) }} + {{ dbt_utils.group_by(5) }} ) select * From e8d06274f27fcc801ecfc3b0d620d049a0c32943 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Thu, 6 Jul 2023 17:31:28 -0500 Subject: [PATCH 02/21] version and changelog --- CHANGELOG.md | 13 +++++++++++++ dbt_project.yml | 2 +- integration_tests/dbt_project.yml | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a1d4bd..ed8847f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ + +# dbt_pinterest v0.7.1 +[PR #26](https://github.com/fivetran/dbt_pinterest/pull/26) introduces the following changes: +## Pinterest API v5 Updates +- Following Pinterest Ads deprecating the v4 API on June 30, 2023 in place of v5, the Pinterest Ads Fivetran connector now leverages the Pinterest v5 API. The following fields have been deprecated/ introduced: + +| **Model** | **Removed** | **New** | +|---|---|---| +| [pinterest_ads__advertiser_report](https://fivetran.github.io/dbt_pinterest/#!/model/model.pinterest.pinterest_ads__advertiser_report) | `billing_type`, `status` | | + +- In the v5 upgrade, `advertiser_id` has been replaced by `ad_account_id`. However, to keep our Pinterest Ads package standard with our other ad packages, we have kept it as `advertiser_id`. + + # dbt_pinterest v0.7.1 ## Features - Addition of the `pinterest__using_keywords` (default=`true`) variable that allows users to disable the relevant keyword reports in the downstream Pinterest models if they are not used. ([#25](https://github.com/fivetran/dbt_pinterest/pull/25)) diff --git a/dbt_project.yml b/dbt_project.yml index b57d53a..7f81a3b 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -1,5 +1,5 @@ name: 'pinterest' -version: '0.7.1' +version: '0.8.0' config-version: 2 require-dbt-version: [">=1.3.0", "<2.0.0"] models: diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index 73f47d8..fd0d7b6 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -1,5 +1,5 @@ name: 'pinterest_integration_tests' -version: '0.7.1' +version: '0.8.0' profile: 'integration_tests' config-version: 2 From dc1456c5efe4bf63178b5816633a1e09a0388d64 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Thu, 6 Jul 2023 17:37:09 -0500 Subject: [PATCH 03/21] temp packages --- packages.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages.yml b/packages.yml index 2622483..679adf2 100644 --- a/packages.yml +++ b/packages.yml @@ -1,3 +1,4 @@ packages: - - package: fivetran/pinterest_source - version: [">=0.7.0", "<0.8.0"] \ No newline at end of file + - git: https://github.com/fivetran/dbt_pinterest_source.git + revision: feature/pinterest_v5_API_support + warn-unpinned: false \ No newline at end of file From dbdd6320517af60f5e0b36de8f105d9016ed4642 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Tue, 11 Jul 2023 13:52:54 -0400 Subject: [PATCH 04/21] update seeds --- integration_tests/seeds/ad_group_history_data.csv | 10 +++++----- integration_tests/seeds/ad_group_report_data.csv | 2 +- integration_tests/seeds/advertiser_history_data.csv | 4 ++-- integration_tests/seeds/advertiser_report_data.csv | 2 +- integration_tests/seeds/campaign_history_data.csv | 4 ++-- integration_tests/seeds/campaign_report_data.csv | 2 +- integration_tests/seeds/keyword_history_data.csv | 2 +- integration_tests/seeds/keyword_report_data.csv | 2 +- integration_tests/seeds/pin_promotion_report_data.csv | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/integration_tests/seeds/ad_group_history_data.csv b/integration_tests/seeds/ad_group_history_data.csv index 8ed8eb6..2a468c0 100644 --- a/integration_tests/seeds/ad_group_history_data.csv +++ b/integration_tests/seeds/ad_group_history_data.csv @@ -1,5 +1,5 @@ -id,campaign_id,created_time,name,status,start_time,end_time,_fivetran_synced -2680065434898,626741793779,2020-03-26 09:38:46.000 +0000,9f8de0662581357b8af505197ad8145d,ACTIVE,2020-03-26 09:37:00.000 +0000,,2020-07-30 12:14:01.984 +0000 -2680065434868,626741793779,2020-03-26 09:36:43.000 +0000,22a5457e096095c4e295a3c921db864c,ACTIVE,2020-03-26 09:36:00.000 +0000,,2020-07-30 12:14:01.246 +0000 -2680065434863,626741793779,2020-03-26 09:35:49.000 +0000,5c7cdb607c2e540062914e276045d4d5,ACTIVE,2020-03-26 09:34:00.000 +0000,,2020-07-30 12:14:00.867 +0000 -2680065434881,626741793779,2020-03-26 09:37:17.000 +0000,304b2dc4ed50ff5b6d714b810d8b50cf,ACTIVE,2020-03-26 09:36:00.000 +0000,,2020-07-30 12:14:01.598 +0000 \ No newline at end of file +id,campaign_id,created_time,name,status,start_time,end_time,_fivetran_synced,pacing_delivery_type,placement_group,summary_status +2680065434898,626741793779,2020-03-26 09:38:46.000 +0000,9f8de0662581357b8af505197ad8145d,ACTIVE,2020-03-26 09:37:00.000 +0000,,2020-07-30 12:14:01.984 +0000,STANDARD,ALL,RUNNING +2680065434868,626741793779,2020-03-26 09:36:43.000 +0000,22a5457e096095c4e295a3c921db864c,ACTIVE,2020-03-26 09:36:00.000 +0000,,2020-07-30 12:14:01.246 +0000,STANDARD,SEARCH,RUNNING +2680065434863,626741793779,2020-03-26 09:35:49.000 +0000,5c7cdb607c2e540062914e276045d4d5,ACTIVE,2020-03-26 09:34:00.000 +0000,,2020-07-30 12:14:00.867 +0000,STANDARD,BROWSE,RUNNING +2680065434881,626741793779,2020-03-26 09:37:17.000 +0000,304b2dc4ed50ff5b6d714b810d8b50cf,ACTIVE,2020-03-26 09:36:00.000 +0000,,2020-07-30 12:14:01.598 +0000,STANDARD,OTHER,RUNNING \ No newline at end of file diff --git a/integration_tests/seeds/ad_group_report_data.csv b/integration_tests/seeds/ad_group_report_data.csv index 2fde313..f9b27c1 100644 --- a/integration_tests/seeds/ad_group_report_data.csv +++ b/integration_tests/seeds/ad_group_report_data.csv @@ -1,4 +1,4 @@ -ad_group_id,advertiser_id,date,_fivetran_synced,ad_group_name,ad_group_status,campaign_daily_spend_cap,campaign_id,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user +ad_group_id,ad_account_id,date,_fivetran_synced,ad_group_name,ad_group_status,campaign_daily_spend_cap,campaign_id,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user 2680072242253,549764253315,2022-06-07 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 2680072242253,549764253315,2022-06-08 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 2680072242253,549764253315,2022-06-14 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 diff --git a/integration_tests/seeds/advertiser_history_data.csv b/integration_tests/seeds/advertiser_history_data.csv index c6245c8..4992bd3 100644 --- a/integration_tests/seeds/advertiser_history_data.csv +++ b/integration_tests/seeds/advertiser_history_data.csv @@ -1,2 +1,2 @@ -id,updated_time,_fivetran_synced,billing_profile_status,billing_type,country,created_time,currency,merchant_id,name,owner_user_id,status -549764253315,2022-06-07 14:43:17,2022-06-30 14:01:04,VALID,CASH_MONEY,US,2022-06-07 14:17:13,USD,,That Kitty Cat Company,1111111,ACTIVE \ No newline at end of file +549764253315,2022-06-07 14:43:17,2022-06-30 14:01:04,VALID,CASH_MONEY,US,2022-06-07 14:17:13,USD,,That Kitty Cat Company,1111111,ACTIVE,username,string +id,updated_time,_fivetran_synced,billing_profile_status,billing_type,country,created_time,currency,merchant_id,name,owner_user_id,status,owner_username,permissions \ No newline at end of file diff --git a/integration_tests/seeds/advertiser_report_data.csv b/integration_tests/seeds/advertiser_report_data.csv index 32f2210..4e1249d 100644 --- a/integration_tests/seeds/advertiser_report_data.csv +++ b/integration_tests/seeds/advertiser_report_data.csv @@ -1,4 +1,4 @@ -advertiser_id,date,_fivetran_synced,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user +ad_account_id,date,_fivetran_synced,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user 549764253315,2022-06-15 00:00:00,2022-06-30 14:30:04,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 549764253315,2022-06-07 00:00:00,2022-06-30 14:30:04,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 549764253315,2022-06-08 00:00:00,2022-06-30 14:30:04,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 diff --git a/integration_tests/seeds/campaign_history_data.csv b/integration_tests/seeds/campaign_history_data.csv index 59464e8..917a9cb 100644 --- a/integration_tests/seeds/campaign_history_data.csv +++ b/integration_tests/seeds/campaign_history_data.csv @@ -1,2 +1,2 @@ -id,created_time,name,status,_fivetran_synced,advertiser_id -626741793779,2020-03-26 08:59:57.000 +0000,19e757f946601de26307d8182635b716,ACTIVE,2020-07-30 12:14:00.362 +0000,151515151 \ No newline at end of file +id,created_time,name,status,_fivetran_synced,ad_account_id,default_ad_group_budget_in_micro_currency,is_automated_campaign,is_campaign_budget_optimization,is_flexible_daily_budgets +626741793779,2020-03-26 08:59:57.000 +0000,19e757f946601de26307d8182635b716,ACTIVE,2020-07-30 12:14:00.362 +0000,151515151,134,True,True,True \ No newline at end of file diff --git a/integration_tests/seeds/campaign_report_data.csv b/integration_tests/seeds/campaign_report_data.csv index 2c772ac..2bba918 100644 --- a/integration_tests/seeds/campaign_report_data.csv +++ b/integration_tests/seeds/campaign_report_data.csv @@ -1,4 +1,4 @@ -advertiser_id,campaign_id,date,_fivetran_synced,campaign_daily_spend_cap,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user +ad_account_id,campaign_id,date,_fivetran_synced,campaign_daily_spend_cap,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user 549764253315,626746449918,2022-06-08 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 549764253315,626746449918,2022-06-14 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 549764253315,626746449918,2022-06-15 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 diff --git a/integration_tests/seeds/keyword_history_data.csv b/integration_tests/seeds/keyword_history_data.csv index 51f2109..09bce09 100644 --- a/integration_tests/seeds/keyword_history_data.csv +++ b/integration_tests/seeds/keyword_history_data.csv @@ -1,4 +1,4 @@ -_fivetran_id,_fivetran_synced,ad_group_id,advertiser_id,archived,bid,campaign_id,id,match_type,parent_type,value +_fivetran_id,_fivetran_synced,ad_group_id,ad_account_id,archived,bid,campaign_id,id,match_type,parent_type,value EzxgxB9EE6a6AMma/sqx0ZB4pPU=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206594,BROAD,AD_GROUP,development wYse+Xtf2L/SnzThOMnxccXJaM4=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206590,BROAD,AD_GROUP,pasta DauS5IYbqd9myiE2Sf48/gxdYtk=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206587,BROAD,AD_GROUP,gaming diff --git a/integration_tests/seeds/keyword_report_data.csv b/integration_tests/seeds/keyword_report_data.csv index e3c7a8e..2c77b1e 100644 --- a/integration_tests/seeds/keyword_report_data.csv +++ b/integration_tests/seeds/keyword_report_data.csv @@ -1,4 +1,4 @@ -ad_group_id,advertiser_id,campaign_id,date,keyword_id,pin_id,pin_promotion_id,_fivetran_synced,ad_group_name,ad_group_status,campaign_daily_spend_cap,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,pin_promotion_name,pin_promotion_status,spend_in_micro_dollar,targeting_type,targeting_value,total_engagement +ad_group_id,ad_account_id,campaign_id,date,keyword_id,pin_id,pin_promotion_id,_fivetran_synced,ad_group_name,ad_group_status,campaign_daily_spend_cap,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,pin_promotion_name,pin_promotion_status,spend_in_micro_dollar,targeting_type,targeting_value,total_engagement 2680072242253,549764253315,626746449918,2022-06-10 00:00:00,2886843206586,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2009000,,,2009000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2009,KEYWORD,cat, 2680072242253,549764253315,626746449918,2022-06-15 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000500,,,2000500,,,32,35,,32,Awareness | Seriously My Cat is Amazing,APPROVED,64016,KEYWORD,gaming, 2680072242253,549764253315,626746449918,2022-06-16 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000333.333,,,2000333.333,,,12,13,,12,Awareness | Seriously My Cat is Amazing,APPROVED,24004,KEYWORD,gaming, diff --git a/integration_tests/seeds/pin_promotion_report_data.csv b/integration_tests/seeds/pin_promotion_report_data.csv index 026b05c..095a812 100644 --- a/integration_tests/seeds/pin_promotion_report_data.csv +++ b/integration_tests/seeds/pin_promotion_report_data.csv @@ -1,4 +1,4 @@ -date,pin_promotion_id,ad_group_id,campaign_id,advertiser_id,_fivetran_synced,impression_1,impression_2,clickthrough_1,clickthrough_2,spend_in_micro_dollar +date,pin_promotion_id,ad_group_id,campaign_id,ad_account_id,_fivetran_synced,impression_1,impression_2,clickthrough_1,clickthrough_2,spend_in_micro_dollar 2020-04-20 00:00:00,687205395433,2680065434898,626741793779,549760489669,2020-05-21 15:09:01.558 +0000,5167,,38,,5898162 2020-04-20 00:00:00,687205395434,2680065434898,626741793779,549760489669,2020-05-21 15:09:01.558 +0000,607,1,14,,2234418 2020-04-20 00:00:00,687205395435,2680065434898,626741793779,549760489669,2020-05-21 15:09:01.558 +0000,1169,,4,,594512 From 9a0969b7827143b8ae1fe4f25f9ea91703bdb380 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Tue, 11 Jul 2023 15:04:51 -0400 Subject: [PATCH 05/21] accidentally flipped rows --- integration_tests/seeds/advertiser_history_data.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration_tests/seeds/advertiser_history_data.csv b/integration_tests/seeds/advertiser_history_data.csv index 4992bd3..585d892 100644 --- a/integration_tests/seeds/advertiser_history_data.csv +++ b/integration_tests/seeds/advertiser_history_data.csv @@ -1,2 +1,2 @@ -549764253315,2022-06-07 14:43:17,2022-06-30 14:01:04,VALID,CASH_MONEY,US,2022-06-07 14:17:13,USD,,That Kitty Cat Company,1111111,ACTIVE,username,string -id,updated_time,_fivetran_synced,billing_profile_status,billing_type,country,created_time,currency,merchant_id,name,owner_user_id,status,owner_username,permissions \ No newline at end of file +id,updated_time,_fivetran_synced,billing_profile_status,billing_type,country,created_time,currency,merchant_id,name,owner_user_id,status,owner_username,permissions +549764253315,2022-06-07 14:43:17,2022-06-30 14:01:04,VALID,CASH_MONEY,US,2022-06-07 14:17:13,USD,,That Kitty Cat Company,1111111,ACTIVE,username,string \ No newline at end of file From 192d055b26bc6909731b97656cdc24a4cee6a856 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Tue, 11 Jul 2023 15:47:52 -0400 Subject: [PATCH 06/21] number out of range --- .../seeds/ad_group_report_data.csv | 20 +++---- .../seeds/advertiser_history_data.csv | 2 +- .../seeds/advertiser_report_data.csv | 20 +++---- .../seeds/campaign_report_data.csv | 20 +++---- .../seeds/keyword_report_data.csv | 58 +++++++++---------- 5 files changed, 60 insertions(+), 60 deletions(-) diff --git a/integration_tests/seeds/ad_group_report_data.csv b/integration_tests/seeds/ad_group_report_data.csv index f9b27c1..3e1b5b4 100644 --- a/integration_tests/seeds/ad_group_report_data.csv +++ b/integration_tests/seeds/ad_group_report_data.csv @@ -1,11 +1,11 @@ ad_group_id,ad_account_id,date,_fivetran_synced,ad_group_name,ad_group_status,campaign_daily_spend_cap,campaign_id,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user -2680072242253,549764253315,2022-06-07 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 -2680072242253,549764253315,2022-06-08 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 -2680072242253,549764253315,2022-06-14 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 -2680072242253,549764253315,2022-06-15 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 -2680072242253,549764253315,2022-06-10 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 -2680072242253,549764253315,2022-06-16 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 -2680072242253,549764253315,2022-06-09 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 -2680072242253,549764253315,2022-06-11 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 -2680072242253,549764253315,2022-06-12 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 -2680072242253,549764253315,2022-06-13 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file +2680072242253,5497642533,2022-06-07 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 +2680072242253,5497642533,2022-06-08 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 +2680072242253,5497642533,2022-06-14 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 +2680072242253,5497642533,2022-06-15 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 +2680072242253,5497642533,2022-06-10 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 +2680072242253,5497642533,2022-06-16 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 +2680072242253,5497642533,2022-06-09 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 +2680072242253,5497642533,2022-06-11 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 +2680072242253,5497642533,2022-06-12 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 +2680072242253,5497642533,2022-06-13 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file diff --git a/integration_tests/seeds/advertiser_history_data.csv b/integration_tests/seeds/advertiser_history_data.csv index 585d892..02b6e0e 100644 --- a/integration_tests/seeds/advertiser_history_data.csv +++ b/integration_tests/seeds/advertiser_history_data.csv @@ -1,2 +1,2 @@ id,updated_time,_fivetran_synced,billing_profile_status,billing_type,country,created_time,currency,merchant_id,name,owner_user_id,status,owner_username,permissions -549764253315,2022-06-07 14:43:17,2022-06-30 14:01:04,VALID,CASH_MONEY,US,2022-06-07 14:17:13,USD,,That Kitty Cat Company,1111111,ACTIVE,username,string \ No newline at end of file +5497642533,2022-06-07 14:43:17,2022-06-30 14:01:04,VALID,CASH_MONEY,US,2022-06-07 14:17:13,USD,,That Kitty Cat Company,1111111,ACTIVE,username,string \ No newline at end of file diff --git a/integration_tests/seeds/advertiser_report_data.csv b/integration_tests/seeds/advertiser_report_data.csv index 4e1249d..e83eebb 100644 --- a/integration_tests/seeds/advertiser_report_data.csv +++ b/integration_tests/seeds/advertiser_report_data.csv @@ -1,11 +1,11 @@ ad_account_id,date,_fivetran_synced,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user -549764253315,2022-06-15 00:00:00,2022-06-30 14:30:04,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 -549764253315,2022-06-07 00:00:00,2022-06-30 14:30:04,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 -549764253315,2022-06-08 00:00:00,2022-06-30 14:30:04,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 -549764253315,2022-06-14 00:00:00,2022-06-30 14:30:04,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 -549764253315,2022-06-10 00:00:00,2022-06-30 14:30:04,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 -549764253315,2022-06-16 00:00:00,2022-06-30 14:30:04,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 -549764253315,2022-06-11 00:00:00,2022-06-30 14:30:04,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 -549764253315,2022-06-12 00:00:00,2022-06-30 14:30:04,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 -549764253315,2022-06-09 00:00:00,2022-06-30 14:30:04,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 -549764253315,2022-06-13 00:00:00,2022-06-30 14:30:04,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file +5497642533,2022-06-15 00:00:00,2022-06-30 14:30:04,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 +5497642533,2022-06-07 00:00:00,2022-06-30 14:30:04,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 +5497642533,2022-06-08 00:00:00,2022-06-30 14:30:04,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 +5497642533,2022-06-14 00:00:00,2022-06-30 14:30:04,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 +5497642533,2022-06-10 00:00:00,2022-06-30 14:30:04,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 +5497642533,2022-06-16 00:00:00,2022-06-30 14:30:04,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 +5497642533,2022-06-11 00:00:00,2022-06-30 14:30:04,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 +5497642533,2022-06-12 00:00:00,2022-06-30 14:30:04,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 +5497642533,2022-06-09 00:00:00,2022-06-30 14:30:04,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 +5497642533,2022-06-13 00:00:00,2022-06-30 14:30:04,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file diff --git a/integration_tests/seeds/campaign_report_data.csv b/integration_tests/seeds/campaign_report_data.csv index 2bba918..50ce63f 100644 --- a/integration_tests/seeds/campaign_report_data.csv +++ b/integration_tests/seeds/campaign_report_data.csv @@ -1,11 +1,11 @@ ad_account_id,campaign_id,date,_fivetran_synced,campaign_daily_spend_cap,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user -549764253315,626746449918,2022-06-08 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 -549764253315,626746449918,2022-06-14 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 -549764253315,626746449918,2022-06-15 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 -549764253315,626746449918,2022-06-07 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 -549764253315,626746449918,2022-06-10 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 -549764253315,626746449918,2022-06-16 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 -549764253315,626746449918,2022-06-11 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 -549764253315,626746449918,2022-06-12 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 -549764253315,626746449918,2022-06-09 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 -549764253315,626746449918,2022-06-13 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file +5497642533,626746449918,2022-06-08 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 +5497642533,626746449918,2022-06-14 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 +5497642533,626746449918,2022-06-15 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 +5497642533,626746449918,2022-06-07 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 +5497642533,626746449918,2022-06-10 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 +5497642533,626746449918,2022-06-16 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 +5497642533,626746449918,2022-06-11 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 +5497642533,626746449918,2022-06-12 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 +5497642533,626746449918,2022-06-09 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 +5497642533,626746449918,2022-06-13 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file diff --git a/integration_tests/seeds/keyword_report_data.csv b/integration_tests/seeds/keyword_report_data.csv index 2c77b1e..5a1362f 100644 --- a/integration_tests/seeds/keyword_report_data.csv +++ b/integration_tests/seeds/keyword_report_data.csv @@ -1,30 +1,30 @@ ad_group_id,ad_account_id,campaign_id,date,keyword_id,pin_id,pin_promotion_id,_fivetran_synced,ad_group_name,ad_group_status,campaign_daily_spend_cap,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,pin_promotion_name,pin_promotion_status,spend_in_micro_dollar,targeting_type,targeting_value,total_engagement -2680072242253,549764253315,626746449918,2022-06-10 00:00:00,2886843206586,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2009000,,,2009000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2009,KEYWORD,cat, -2680072242253,549764253315,626746449918,2022-06-15 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000500,,,2000500,,,32,35,,32,Awareness | Seriously My Cat is Amazing,APPROVED,64016,KEYWORD,gaming, -2680072242253,549764253315,626746449918,2022-06-16 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000333.333,,,2000333.333,,,12,13,,12,Awareness | Seriously My Cat is Amazing,APPROVED,24004,KEYWORD,gaming, -2680072242253,549764253315,626746449918,2022-06-07 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3246400,,,3246400,,,5,5,,5,Awareness | Seriously My Cat is Amazing,APPROVED,16232,KEYWORD,gaming, -2680072242253,549764253315,626746449918,2022-06-10 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2031560.976,,,2031560.976,,,41,54,,41,Awareness | Seriously My Cat is Amazing,APPROVED,83294,KEYWORD,gaming, -2680072242253,549764253315,626746449918,2022-06-12 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2092914.286,,,2092914.286,,,35,41,,35,Awareness | Seriously My Cat is Amazing,APPROVED,73252,KEYWORD,gaming, -2680072242253,549764253315,626746449918,2022-06-13 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2058321.429,,,2058321.429,,,28,37,,28,Awareness | Seriously My Cat is Amazing,APPROVED,57633,KEYWORD,gaming, -2680072242253,549764253315,626746449918,2022-06-15 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000448.276,,,2000448.276,,,87,102,,87,Awareness | Seriously My Cat is Amazing,APPROVED,174039,KEYWORD,digital art, -2680072242253,549764253315,626746449918,2022-06-16 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2001375,,,2001375,,,32,34,,32,Awareness | Seriously My Cat is Amazing,APPROVED,64044,KEYWORD,digital art, -2680072242253,549764253315,626746449918,2022-06-07 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3218750,,,3218750,,,12,14,,12,Awareness | Seriously My Cat is Amazing,APPROVED,38625,KEYWORD,digital art, -2680072242253,549764253315,626746449918,2022-06-08 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2306754.902,,,2306754.902,,,102,144,,102,Awareness | Seriously My Cat is Amazing,APPROVED,235289,KEYWORD,digital art, -2680072242253,549764253315,626746449918,2022-06-09 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2353175.676,,,2353175.676,,,74,93,,74,Awareness | Seriously My Cat is Amazing,APPROVED,174135,KEYWORD,digital art, -2680072242253,549764253315,626746449918,2022-06-10 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2034904.11,,,2034904.11,,,73,88,,73,Awareness | Seriously My Cat is Amazing,APPROVED,148548,KEYWORD,digital art, -2680072242253,549764253315,626746449918,2022-06-11 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2072289.474,,,2072289.474,,,38,45,,38,Awareness | Seriously My Cat is Amazing,APPROVED,78747,KEYWORD,digital art, -2680072242253,549764253315,626746449918,2022-06-12 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2090500,,,2090500,,,100,115,,100,Awareness | Seriously My Cat is Amazing,APPROVED,209050,KEYWORD,digital art, -2680072242253,549764253315,626746449918,2022-06-14 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2002663.934,,,2002663.934,,,122,135,,122,Awareness | Seriously My Cat is Amazing,APPROVED,244325,KEYWORD,digital art, -2680072242253,549764253315,626746449918,2022-06-15 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000521.739,,,2000521.739,,,46,53,,46,Awareness | Seriously My Cat is Amazing,APPROVED,92024,KEYWORD,cat lover, -2680072242253,549764253315,626746449918,2022-06-16 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000400,,,2000400,,,15,16,,15,Awareness | Seriously My Cat is Amazing,APPROVED,30006,KEYWORD,cat lover, -2680072242253,549764253315,626746449918,2022-06-07 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3181000,,,3181000,,,5,7,,5,Awareness | Seriously My Cat is Amazing,APPROVED,15905,KEYWORD,cat lover, -2680072242253,549764253315,626746449918,2022-06-08 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2319567.01,,,2319567.01,,,97,140,,97,Awareness | Seriously My Cat is Amazing,APPROVED,224998,KEYWORD,cat lover, -2680072242253,549764253315,626746449918,2022-06-09 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2368694.737,,,2368694.737,,,95,111,,95,Awareness | Seriously My Cat is Amazing,APPROVED,225026,KEYWORD,cat lover, -2680072242253,549764253315,626746449918,2022-06-10 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2025566.265,,,2025566.265,,,83,92,,83,Awareness | Seriously My Cat is Amazing,APPROVED,168122,KEYWORD,cat lover, -2680072242253,549764253315,626746449918,2022-06-11 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2065142.857,,,2065142.857,,,56,63,,56,Awareness | Seriously My Cat is Amazing,APPROVED,115648,KEYWORD,cat lover, -2680072242253,549764253315,626746449918,2022-06-12 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2114777.778,,,2114777.778,,,54,62,,54,Awareness | Seriously My Cat is Amazing,APPROVED,114198,KEYWORD,cat lover, -2680072242253,549764253315,626746449918,2022-06-13 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2047761.905,,,2047761.905,,,42,47,,42,Awareness | Seriously My Cat is Amazing,APPROVED,86006,KEYWORD,cat lover, -2680072242253,549764253315,626746449918,2022-06-14 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2002763.636,,,2002763.636,,,55,62,,55,Awareness | Seriously My Cat is Amazing,APPROVED,110152,KEYWORD,cat lover, -2680072242253,549764253315,626746449918,2022-06-16 00:00:00,2886843206593,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000666.667,,,2000666.667,,,3,3,,3,Awareness | Seriously My Cat is Amazing,APPROVED,6002,KEYWORD,cat drawing, -2680072242253,549764253315,626746449918,2022-06-10 00:00:00,2886843206593,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2018000,,,2018000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2018,KEYWORD,cat drawing, -2680072242253,549764253315,626746449918,2022-06-15 00:00:00,2886843206594,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000000,,,2000000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2000,KEYWORD,development, \ No newline at end of file +2680072242253,5497642533,626746449918,2022-06-10 00:00:00,2886843206586,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2009000,,,2009000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2009,KEYWORD,cat, +2680072242253,5497642533,626746449918,2022-06-15 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000500,,,2000500,,,32,35,,32,Awareness | Seriously My Cat is Amazing,APPROVED,64016,KEYWORD,gaming, +2680072242253,5497642533,626746449918,2022-06-16 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000333.333,,,2000333.333,,,12,13,,12,Awareness | Seriously My Cat is Amazing,APPROVED,24004,KEYWORD,gaming, +2680072242253,5497642533,626746449918,2022-06-07 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3246400,,,3246400,,,5,5,,5,Awareness | Seriously My Cat is Amazing,APPROVED,16232,KEYWORD,gaming, +2680072242253,5497642533,626746449918,2022-06-10 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2031560.976,,,2031560.976,,,41,54,,41,Awareness | Seriously My Cat is Amazing,APPROVED,83294,KEYWORD,gaming, +2680072242253,5497642533,626746449918,2022-06-12 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2092914.286,,,2092914.286,,,35,41,,35,Awareness | Seriously My Cat is Amazing,APPROVED,73252,KEYWORD,gaming, +2680072242253,5497642533,626746449918,2022-06-13 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2058321.429,,,2058321.429,,,28,37,,28,Awareness | Seriously My Cat is Amazing,APPROVED,57633,KEYWORD,gaming, +2680072242253,5497642533,626746449918,2022-06-15 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000448.276,,,2000448.276,,,87,102,,87,Awareness | Seriously My Cat is Amazing,APPROVED,174039,KEYWORD,digital art, +2680072242253,5497642533,626746449918,2022-06-16 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2001375,,,2001375,,,32,34,,32,Awareness | Seriously My Cat is Amazing,APPROVED,64044,KEYWORD,digital art, +2680072242253,5497642533,626746449918,2022-06-07 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3218750,,,3218750,,,12,14,,12,Awareness | Seriously My Cat is Amazing,APPROVED,38625,KEYWORD,digital art, +2680072242253,5497642533,626746449918,2022-06-08 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2306754.902,,,2306754.902,,,102,144,,102,Awareness | Seriously My Cat is Amazing,APPROVED,235289,KEYWORD,digital art, +2680072242253,5497642533,626746449918,2022-06-09 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2353175.676,,,2353175.676,,,74,93,,74,Awareness | Seriously My Cat is Amazing,APPROVED,174135,KEYWORD,digital art, +2680072242253,5497642533,626746449918,2022-06-10 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2034904.11,,,2034904.11,,,73,88,,73,Awareness | Seriously My Cat is Amazing,APPROVED,148548,KEYWORD,digital art, +2680072242253,5497642533,626746449918,2022-06-11 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2072289.474,,,2072289.474,,,38,45,,38,Awareness | Seriously My Cat is Amazing,APPROVED,78747,KEYWORD,digital art, +2680072242253,5497642533,626746449918,2022-06-12 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2090500,,,2090500,,,100,115,,100,Awareness | Seriously My Cat is Amazing,APPROVED,209050,KEYWORD,digital art, +2680072242253,5497642533,626746449918,2022-06-14 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2002663.934,,,2002663.934,,,122,135,,122,Awareness | Seriously My Cat is Amazing,APPROVED,244325,KEYWORD,digital art, +2680072242253,5497642533,626746449918,2022-06-15 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000521.739,,,2000521.739,,,46,53,,46,Awareness | Seriously My Cat is Amazing,APPROVED,92024,KEYWORD,cat lover, +2680072242253,5497642533,626746449918,2022-06-16 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000400,,,2000400,,,15,16,,15,Awareness | Seriously My Cat is Amazing,APPROVED,30006,KEYWORD,cat lover, +2680072242253,5497642533,626746449918,2022-06-07 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3181000,,,3181000,,,5,7,,5,Awareness | Seriously My Cat is Amazing,APPROVED,15905,KEYWORD,cat lover, +2680072242253,5497642533,626746449918,2022-06-08 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2319567.01,,,2319567.01,,,97,140,,97,Awareness | Seriously My Cat is Amazing,APPROVED,224998,KEYWORD,cat lover, +2680072242253,5497642533,626746449918,2022-06-09 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2368694.737,,,2368694.737,,,95,111,,95,Awareness | Seriously My Cat is Amazing,APPROVED,225026,KEYWORD,cat lover, +2680072242253,5497642533,626746449918,2022-06-10 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2025566.265,,,2025566.265,,,83,92,,83,Awareness | Seriously My Cat is Amazing,APPROVED,168122,KEYWORD,cat lover, +2680072242253,5497642533,626746449918,2022-06-11 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2065142.857,,,2065142.857,,,56,63,,56,Awareness | Seriously My Cat is Amazing,APPROVED,115648,KEYWORD,cat lover, +2680072242253,5497642533,626746449918,2022-06-12 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2114777.778,,,2114777.778,,,54,62,,54,Awareness | Seriously My Cat is Amazing,APPROVED,114198,KEYWORD,cat lover, +2680072242253,5497642533,626746449918,2022-06-13 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2047761.905,,,2047761.905,,,42,47,,42,Awareness | Seriously My Cat is Amazing,APPROVED,86006,KEYWORD,cat lover, +2680072242253,5497642533,626746449918,2022-06-14 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2002763.636,,,2002763.636,,,55,62,,55,Awareness | Seriously My Cat is Amazing,APPROVED,110152,KEYWORD,cat lover, +2680072242253,5497642533,626746449918,2022-06-16 00:00:00,2886843206593,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000666.667,,,2000666.667,,,3,3,,3,Awareness | Seriously My Cat is Amazing,APPROVED,6002,KEYWORD,cat drawing, +2680072242253,5497642533,626746449918,2022-06-10 00:00:00,2886843206593,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2018000,,,2018000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2018,KEYWORD,cat drawing, +2680072242253,5497642533,626746449918,2022-06-15 00:00:00,2886843206594,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000000,,,2000000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2000,KEYWORD,development, \ No newline at end of file From cfa42cfd041b014f0bc43babc779e1f80f9a91cb Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Tue, 11 Jul 2023 15:59:59 -0400 Subject: [PATCH 07/21] need to add ad_account_id in column types --- integration_tests/dbt_project.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index fd0d7b6..b8f129e 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -25,6 +25,7 @@ seeds: ad_group_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}" pin_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}" campaign_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}" + ad_account_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}" advertiser_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}" pin_promotion_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}" keyword_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}" From 28f08a53bb4c4397544bc3e23730d8fb4698d2c7 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Tue, 11 Jul 2023 16:14:24 -0400 Subject: [PATCH 08/21] update version type --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed8847f..52291b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -# dbt_pinterest v0.7.1 +# dbt_pinterest v0.8.0 [PR #26](https://github.com/fivetran/dbt_pinterest/pull/26) introduces the following changes: ## Pinterest API v5 Updates - Following Pinterest Ads deprecating the v4 API on June 30, 2023 in place of v5, the Pinterest Ads Fivetran connector now leverages the Pinterest v5 API. The following fields have been deprecated/ introduced: From c054dfd39de00ea393d2af82c0fb79b6ae0c4dbe Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Thu, 13 Jul 2023 17:12:30 -0400 Subject: [PATCH 09/21] update seeds --- .../seeds/ad_group_history_data.csv | 10 ++-- .../seeds/ad_group_report_data.csv | 22 +++---- .../seeds/advertiser_history_data.csv | 2 +- .../seeds/advertiser_report_data.csv | 22 +++---- .../seeds/campaign_history_data.csv | 2 +- .../seeds/campaign_report_data.csv | 22 +++---- .../seeds/keyword_history_data.csv | 2 +- .../seeds/keyword_report_data.csv | 60 +++++++++---------- .../seeds/pin_promotion_history_data.csv | 38 ++++++------ .../seeds/pin_promotion_report_data.csv | 2 +- 10 files changed, 91 insertions(+), 91 deletions(-) diff --git a/integration_tests/seeds/ad_group_history_data.csv b/integration_tests/seeds/ad_group_history_data.csv index 2a468c0..f81f325 100644 --- a/integration_tests/seeds/ad_group_history_data.csv +++ b/integration_tests/seeds/ad_group_history_data.csv @@ -1,5 +1,5 @@ -id,campaign_id,created_time,name,status,start_time,end_time,_fivetran_synced,pacing_delivery_type,placement_group,summary_status -2680065434898,626741793779,2020-03-26 09:38:46.000 +0000,9f8de0662581357b8af505197ad8145d,ACTIVE,2020-03-26 09:37:00.000 +0000,,2020-07-30 12:14:01.984 +0000,STANDARD,ALL,RUNNING -2680065434868,626741793779,2020-03-26 09:36:43.000 +0000,22a5457e096095c4e295a3c921db864c,ACTIVE,2020-03-26 09:36:00.000 +0000,,2020-07-30 12:14:01.246 +0000,STANDARD,SEARCH,RUNNING -2680065434863,626741793779,2020-03-26 09:35:49.000 +0000,5c7cdb607c2e540062914e276045d4d5,ACTIVE,2020-03-26 09:34:00.000 +0000,,2020-07-30 12:14:00.867 +0000,STANDARD,BROWSE,RUNNING -2680065434881,626741793779,2020-03-26 09:37:17.000 +0000,304b2dc4ed50ff5b6d714b810d8b50cf,ACTIVE,2020-03-26 09:36:00.000 +0000,,2020-07-30 12:14:01.598 +0000,STANDARD,OTHER,RUNNING \ No newline at end of file +id,campaign_id,created_time,name,status,start_time,end_time,_fivetran_synced,pacing_delivery_type,placement_group,summary_status,ad_account_id +2680065434898,626741793779,2020-03-26 09:38:46.000 +0000,9f8de0662581357b8af505197ad8145d,ACTIVE,2020-03-26 09:37:00.000 +0000,,2020-07-30 12:14:01.984 +0000,STANDARD,ALL,RUNNING,151515151 +2680065434868,626741793779,2020-03-26 09:36:43.000 +0000,22a5457e096095c4e295a3c921db864c,ACTIVE,2020-03-26 09:36:00.000 +0000,,2020-07-30 12:14:01.246 +0000,STANDARD,SEARCH,RUNNING,151515151 +2680065434863,626741793779,2020-03-26 09:35:49.000 +0000,5c7cdb607c2e540062914e276045d4d5,ACTIVE,2020-03-26 09:34:00.000 +0000,,2020-07-30 12:14:00.867 +0000,STANDARD,BROWSE,RUNNING,151515151 +2680065434881,626741793779,2020-03-26 09:37:17.000 +0000,304b2dc4ed50ff5b6d714b810d8b50cf,ACTIVE,2020-03-26 09:36:00.000 +0000,,2020-07-30 12:14:01.598 +0000,STANDARD,OTHER,RUNNING,151515151 \ No newline at end of file diff --git a/integration_tests/seeds/ad_group_report_data.csv b/integration_tests/seeds/ad_group_report_data.csv index 3e1b5b4..2fde313 100644 --- a/integration_tests/seeds/ad_group_report_data.csv +++ b/integration_tests/seeds/ad_group_report_data.csv @@ -1,11 +1,11 @@ -ad_group_id,ad_account_id,date,_fivetran_synced,ad_group_name,ad_group_status,campaign_daily_spend_cap,campaign_id,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user -2680072242253,5497642533,2022-06-07 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 -2680072242253,5497642533,2022-06-08 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 -2680072242253,5497642533,2022-06-14 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 -2680072242253,5497642533,2022-06-15 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 -2680072242253,5497642533,2022-06-10 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 -2680072242253,5497642533,2022-06-16 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 -2680072242253,5497642533,2022-06-09 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 -2680072242253,5497642533,2022-06-11 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 -2680072242253,5497642533,2022-06-12 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 -2680072242253,5497642533,2022-06-13 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file +ad_group_id,advertiser_id,date,_fivetran_synced,ad_group_name,ad_group_status,campaign_daily_spend_cap,campaign_id,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user +2680072242253,549764253315,2022-06-07 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 +2680072242253,549764253315,2022-06-08 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 +2680072242253,549764253315,2022-06-14 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 +2680072242253,549764253315,2022-06-15 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 +2680072242253,549764253315,2022-06-10 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 +2680072242253,549764253315,2022-06-16 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 +2680072242253,549764253315,2022-06-09 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 +2680072242253,549764253315,2022-06-11 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 +2680072242253,549764253315,2022-06-12 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 +2680072242253,549764253315,2022-06-13 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file diff --git a/integration_tests/seeds/advertiser_history_data.csv b/integration_tests/seeds/advertiser_history_data.csv index 02b6e0e..585d892 100644 --- a/integration_tests/seeds/advertiser_history_data.csv +++ b/integration_tests/seeds/advertiser_history_data.csv @@ -1,2 +1,2 @@ id,updated_time,_fivetran_synced,billing_profile_status,billing_type,country,created_time,currency,merchant_id,name,owner_user_id,status,owner_username,permissions -5497642533,2022-06-07 14:43:17,2022-06-30 14:01:04,VALID,CASH_MONEY,US,2022-06-07 14:17:13,USD,,That Kitty Cat Company,1111111,ACTIVE,username,string \ No newline at end of file +549764253315,2022-06-07 14:43:17,2022-06-30 14:01:04,VALID,CASH_MONEY,US,2022-06-07 14:17:13,USD,,That Kitty Cat Company,1111111,ACTIVE,username,string \ No newline at end of file diff --git a/integration_tests/seeds/advertiser_report_data.csv b/integration_tests/seeds/advertiser_report_data.csv index e83eebb..32f2210 100644 --- a/integration_tests/seeds/advertiser_report_data.csv +++ b/integration_tests/seeds/advertiser_report_data.csv @@ -1,11 +1,11 @@ -ad_account_id,date,_fivetran_synced,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user -5497642533,2022-06-15 00:00:00,2022-06-30 14:30:04,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 -5497642533,2022-06-07 00:00:00,2022-06-30 14:30:04,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 -5497642533,2022-06-08 00:00:00,2022-06-30 14:30:04,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 -5497642533,2022-06-14 00:00:00,2022-06-30 14:30:04,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 -5497642533,2022-06-10 00:00:00,2022-06-30 14:30:04,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 -5497642533,2022-06-16 00:00:00,2022-06-30 14:30:04,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 -5497642533,2022-06-11 00:00:00,2022-06-30 14:30:04,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 -5497642533,2022-06-12 00:00:00,2022-06-30 14:30:04,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 -5497642533,2022-06-09 00:00:00,2022-06-30 14:30:04,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 -5497642533,2022-06-13 00:00:00,2022-06-30 14:30:04,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file +advertiser_id,date,_fivetran_synced,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user +549764253315,2022-06-15 00:00:00,2022-06-30 14:30:04,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 +549764253315,2022-06-07 00:00:00,2022-06-30 14:30:04,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 +549764253315,2022-06-08 00:00:00,2022-06-30 14:30:04,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 +549764253315,2022-06-14 00:00:00,2022-06-30 14:30:04,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 +549764253315,2022-06-10 00:00:00,2022-06-30 14:30:04,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 +549764253315,2022-06-16 00:00:00,2022-06-30 14:30:04,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 +549764253315,2022-06-11 00:00:00,2022-06-30 14:30:04,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 +549764253315,2022-06-12 00:00:00,2022-06-30 14:30:04,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 +549764253315,2022-06-09 00:00:00,2022-06-30 14:30:04,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 +549764253315,2022-06-13 00:00:00,2022-06-30 14:30:04,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file diff --git a/integration_tests/seeds/campaign_history_data.csv b/integration_tests/seeds/campaign_history_data.csv index 917a9cb..afac829 100644 --- a/integration_tests/seeds/campaign_history_data.csv +++ b/integration_tests/seeds/campaign_history_data.csv @@ -1,2 +1,2 @@ -id,created_time,name,status,_fivetran_synced,ad_account_id,default_ad_group_budget_in_micro_currency,is_automated_campaign,is_campaign_budget_optimization,is_flexible_daily_budgets +id,created_time,name,status,_fivetran_synced,advertiser_id,default_ad_group_budget_in_micro_currency,is_automated_campaign,is_campaign_budget_optimization,is_flexible_daily_budgets 626741793779,2020-03-26 08:59:57.000 +0000,19e757f946601de26307d8182635b716,ACTIVE,2020-07-30 12:14:00.362 +0000,151515151,134,True,True,True \ No newline at end of file diff --git a/integration_tests/seeds/campaign_report_data.csv b/integration_tests/seeds/campaign_report_data.csv index 50ce63f..2c772ac 100644 --- a/integration_tests/seeds/campaign_report_data.csv +++ b/integration_tests/seeds/campaign_report_data.csv @@ -1,11 +1,11 @@ -ad_account_id,campaign_id,date,_fivetran_synced,campaign_daily_spend_cap,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user -5497642533,626746449918,2022-06-08 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 -5497642533,626746449918,2022-06-14 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 -5497642533,626746449918,2022-06-15 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 -5497642533,626746449918,2022-06-07 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 -5497642533,626746449918,2022-06-10 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 -5497642533,626746449918,2022-06-16 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 -5497642533,626746449918,2022-06-11 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 -5497642533,626746449918,2022-06-12 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 -5497642533,626746449918,2022-06-09 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 -5497642533,626746449918,2022-06-13 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file +advertiser_id,campaign_id,date,_fivetran_synced,campaign_daily_spend_cap,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user +549764253315,626746449918,2022-06-08 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799 +549764253315,626746449918,2022-06-14 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187 +549764253315,626746449918,2022-06-15 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114 +549764253315,626746449918,2022-06-07 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190 +549764253315,626746449918,2022-06-10 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055 +549764253315,626746449918,2022-06-16 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697 +549764253315,626746449918,2022-06-11 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075 +549764253315,626746449918,2022-06-12 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972 +549764253315,626746449918,2022-06-09 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945 +549764253315,626746449918,2022-06-13 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108 \ No newline at end of file diff --git a/integration_tests/seeds/keyword_history_data.csv b/integration_tests/seeds/keyword_history_data.csv index 09bce09..51f2109 100644 --- a/integration_tests/seeds/keyword_history_data.csv +++ b/integration_tests/seeds/keyword_history_data.csv @@ -1,4 +1,4 @@ -_fivetran_id,_fivetran_synced,ad_group_id,ad_account_id,archived,bid,campaign_id,id,match_type,parent_type,value +_fivetran_id,_fivetran_synced,ad_group_id,advertiser_id,archived,bid,campaign_id,id,match_type,parent_type,value EzxgxB9EE6a6AMma/sqx0ZB4pPU=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206594,BROAD,AD_GROUP,development wYse+Xtf2L/SnzThOMnxccXJaM4=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206590,BROAD,AD_GROUP,pasta DauS5IYbqd9myiE2Sf48/gxdYtk=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206587,BROAD,AD_GROUP,gaming diff --git a/integration_tests/seeds/keyword_report_data.csv b/integration_tests/seeds/keyword_report_data.csv index 5a1362f..e3c7a8e 100644 --- a/integration_tests/seeds/keyword_report_data.csv +++ b/integration_tests/seeds/keyword_report_data.csv @@ -1,30 +1,30 @@ -ad_group_id,ad_account_id,campaign_id,date,keyword_id,pin_id,pin_promotion_id,_fivetran_synced,ad_group_name,ad_group_status,campaign_daily_spend_cap,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,pin_promotion_name,pin_promotion_status,spend_in_micro_dollar,targeting_type,targeting_value,total_engagement -2680072242253,5497642533,626746449918,2022-06-10 00:00:00,2886843206586,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2009000,,,2009000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2009,KEYWORD,cat, -2680072242253,5497642533,626746449918,2022-06-15 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000500,,,2000500,,,32,35,,32,Awareness | Seriously My Cat is Amazing,APPROVED,64016,KEYWORD,gaming, -2680072242253,5497642533,626746449918,2022-06-16 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000333.333,,,2000333.333,,,12,13,,12,Awareness | Seriously My Cat is Amazing,APPROVED,24004,KEYWORD,gaming, -2680072242253,5497642533,626746449918,2022-06-07 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3246400,,,3246400,,,5,5,,5,Awareness | Seriously My Cat is Amazing,APPROVED,16232,KEYWORD,gaming, -2680072242253,5497642533,626746449918,2022-06-10 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2031560.976,,,2031560.976,,,41,54,,41,Awareness | Seriously My Cat is Amazing,APPROVED,83294,KEYWORD,gaming, -2680072242253,5497642533,626746449918,2022-06-12 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2092914.286,,,2092914.286,,,35,41,,35,Awareness | Seriously My Cat is Amazing,APPROVED,73252,KEYWORD,gaming, -2680072242253,5497642533,626746449918,2022-06-13 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2058321.429,,,2058321.429,,,28,37,,28,Awareness | Seriously My Cat is Amazing,APPROVED,57633,KEYWORD,gaming, -2680072242253,5497642533,626746449918,2022-06-15 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000448.276,,,2000448.276,,,87,102,,87,Awareness | Seriously My Cat is Amazing,APPROVED,174039,KEYWORD,digital art, -2680072242253,5497642533,626746449918,2022-06-16 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2001375,,,2001375,,,32,34,,32,Awareness | Seriously My Cat is Amazing,APPROVED,64044,KEYWORD,digital art, -2680072242253,5497642533,626746449918,2022-06-07 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3218750,,,3218750,,,12,14,,12,Awareness | Seriously My Cat is Amazing,APPROVED,38625,KEYWORD,digital art, -2680072242253,5497642533,626746449918,2022-06-08 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2306754.902,,,2306754.902,,,102,144,,102,Awareness | Seriously My Cat is Amazing,APPROVED,235289,KEYWORD,digital art, -2680072242253,5497642533,626746449918,2022-06-09 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2353175.676,,,2353175.676,,,74,93,,74,Awareness | Seriously My Cat is Amazing,APPROVED,174135,KEYWORD,digital art, -2680072242253,5497642533,626746449918,2022-06-10 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2034904.11,,,2034904.11,,,73,88,,73,Awareness | Seriously My Cat is Amazing,APPROVED,148548,KEYWORD,digital art, -2680072242253,5497642533,626746449918,2022-06-11 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2072289.474,,,2072289.474,,,38,45,,38,Awareness | Seriously My Cat is Amazing,APPROVED,78747,KEYWORD,digital art, -2680072242253,5497642533,626746449918,2022-06-12 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2090500,,,2090500,,,100,115,,100,Awareness | Seriously My Cat is Amazing,APPROVED,209050,KEYWORD,digital art, -2680072242253,5497642533,626746449918,2022-06-14 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2002663.934,,,2002663.934,,,122,135,,122,Awareness | Seriously My Cat is Amazing,APPROVED,244325,KEYWORD,digital art, -2680072242253,5497642533,626746449918,2022-06-15 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000521.739,,,2000521.739,,,46,53,,46,Awareness | Seriously My Cat is Amazing,APPROVED,92024,KEYWORD,cat lover, -2680072242253,5497642533,626746449918,2022-06-16 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000400,,,2000400,,,15,16,,15,Awareness | Seriously My Cat is Amazing,APPROVED,30006,KEYWORD,cat lover, -2680072242253,5497642533,626746449918,2022-06-07 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3181000,,,3181000,,,5,7,,5,Awareness | Seriously My Cat is Amazing,APPROVED,15905,KEYWORD,cat lover, -2680072242253,5497642533,626746449918,2022-06-08 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2319567.01,,,2319567.01,,,97,140,,97,Awareness | Seriously My Cat is Amazing,APPROVED,224998,KEYWORD,cat lover, -2680072242253,5497642533,626746449918,2022-06-09 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2368694.737,,,2368694.737,,,95,111,,95,Awareness | Seriously My Cat is Amazing,APPROVED,225026,KEYWORD,cat lover, -2680072242253,5497642533,626746449918,2022-06-10 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2025566.265,,,2025566.265,,,83,92,,83,Awareness | Seriously My Cat is Amazing,APPROVED,168122,KEYWORD,cat lover, -2680072242253,5497642533,626746449918,2022-06-11 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2065142.857,,,2065142.857,,,56,63,,56,Awareness | Seriously My Cat is Amazing,APPROVED,115648,KEYWORD,cat lover, -2680072242253,5497642533,626746449918,2022-06-12 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2114777.778,,,2114777.778,,,54,62,,54,Awareness | Seriously My Cat is Amazing,APPROVED,114198,KEYWORD,cat lover, -2680072242253,5497642533,626746449918,2022-06-13 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2047761.905,,,2047761.905,,,42,47,,42,Awareness | Seriously My Cat is Amazing,APPROVED,86006,KEYWORD,cat lover, -2680072242253,5497642533,626746449918,2022-06-14 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2002763.636,,,2002763.636,,,55,62,,55,Awareness | Seriously My Cat is Amazing,APPROVED,110152,KEYWORD,cat lover, -2680072242253,5497642533,626746449918,2022-06-16 00:00:00,2886843206593,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000666.667,,,2000666.667,,,3,3,,3,Awareness | Seriously My Cat is Amazing,APPROVED,6002,KEYWORD,cat drawing, -2680072242253,5497642533,626746449918,2022-06-10 00:00:00,2886843206593,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2018000,,,2018000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2018,KEYWORD,cat drawing, -2680072242253,5497642533,626746449918,2022-06-15 00:00:00,2886843206594,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000000,,,2000000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2000,KEYWORD,development, \ No newline at end of file +ad_group_id,advertiser_id,campaign_id,date,keyword_id,pin_id,pin_promotion_id,_fivetran_synced,ad_group_name,ad_group_status,campaign_daily_spend_cap,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,pin_promotion_name,pin_promotion_status,spend_in_micro_dollar,targeting_type,targeting_value,total_engagement +2680072242253,549764253315,626746449918,2022-06-10 00:00:00,2886843206586,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2009000,,,2009000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2009,KEYWORD,cat, +2680072242253,549764253315,626746449918,2022-06-15 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000500,,,2000500,,,32,35,,32,Awareness | Seriously My Cat is Amazing,APPROVED,64016,KEYWORD,gaming, +2680072242253,549764253315,626746449918,2022-06-16 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000333.333,,,2000333.333,,,12,13,,12,Awareness | Seriously My Cat is Amazing,APPROVED,24004,KEYWORD,gaming, +2680072242253,549764253315,626746449918,2022-06-07 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3246400,,,3246400,,,5,5,,5,Awareness | Seriously My Cat is Amazing,APPROVED,16232,KEYWORD,gaming, +2680072242253,549764253315,626746449918,2022-06-10 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2031560.976,,,2031560.976,,,41,54,,41,Awareness | Seriously My Cat is Amazing,APPROVED,83294,KEYWORD,gaming, +2680072242253,549764253315,626746449918,2022-06-12 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2092914.286,,,2092914.286,,,35,41,,35,Awareness | Seriously My Cat is Amazing,APPROVED,73252,KEYWORD,gaming, +2680072242253,549764253315,626746449918,2022-06-13 00:00:00,2886843206587,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2058321.429,,,2058321.429,,,28,37,,28,Awareness | Seriously My Cat is Amazing,APPROVED,57633,KEYWORD,gaming, +2680072242253,549764253315,626746449918,2022-06-15 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000448.276,,,2000448.276,,,87,102,,87,Awareness | Seriously My Cat is Amazing,APPROVED,174039,KEYWORD,digital art, +2680072242253,549764253315,626746449918,2022-06-16 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2001375,,,2001375,,,32,34,,32,Awareness | Seriously My Cat is Amazing,APPROVED,64044,KEYWORD,digital art, +2680072242253,549764253315,626746449918,2022-06-07 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3218750,,,3218750,,,12,14,,12,Awareness | Seriously My Cat is Amazing,APPROVED,38625,KEYWORD,digital art, +2680072242253,549764253315,626746449918,2022-06-08 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2306754.902,,,2306754.902,,,102,144,,102,Awareness | Seriously My Cat is Amazing,APPROVED,235289,KEYWORD,digital art, +2680072242253,549764253315,626746449918,2022-06-09 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2353175.676,,,2353175.676,,,74,93,,74,Awareness | Seriously My Cat is Amazing,APPROVED,174135,KEYWORD,digital art, +2680072242253,549764253315,626746449918,2022-06-10 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2034904.11,,,2034904.11,,,73,88,,73,Awareness | Seriously My Cat is Amazing,APPROVED,148548,KEYWORD,digital art, +2680072242253,549764253315,626746449918,2022-06-11 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2072289.474,,,2072289.474,,,38,45,,38,Awareness | Seriously My Cat is Amazing,APPROVED,78747,KEYWORD,digital art, +2680072242253,549764253315,626746449918,2022-06-12 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2090500,,,2090500,,,100,115,,100,Awareness | Seriously My Cat is Amazing,APPROVED,209050,KEYWORD,digital art, +2680072242253,549764253315,626746449918,2022-06-14 00:00:00,2886843206589,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2002663.934,,,2002663.934,,,122,135,,122,Awareness | Seriously My Cat is Amazing,APPROVED,244325,KEYWORD,digital art, +2680072242253,549764253315,626746449918,2022-06-15 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000521.739,,,2000521.739,,,46,53,,46,Awareness | Seriously My Cat is Amazing,APPROVED,92024,KEYWORD,cat lover, +2680072242253,549764253315,626746449918,2022-06-16 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000400,,,2000400,,,15,16,,15,Awareness | Seriously My Cat is Amazing,APPROVED,30006,KEYWORD,cat lover, +2680072242253,549764253315,626746449918,2022-06-07 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,3181000,,,3181000,,,5,7,,5,Awareness | Seriously My Cat is Amazing,APPROVED,15905,KEYWORD,cat lover, +2680072242253,549764253315,626746449918,2022-06-08 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2319567.01,,,2319567.01,,,97,140,,97,Awareness | Seriously My Cat is Amazing,APPROVED,224998,KEYWORD,cat lover, +2680072242253,549764253315,626746449918,2022-06-09 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2368694.737,,,2368694.737,,,95,111,,95,Awareness | Seriously My Cat is Amazing,APPROVED,225026,KEYWORD,cat lover, +2680072242253,549764253315,626746449918,2022-06-10 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2025566.265,,,2025566.265,,,83,92,,83,Awareness | Seriously My Cat is Amazing,APPROVED,168122,KEYWORD,cat lover, +2680072242253,549764253315,626746449918,2022-06-11 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2065142.857,,,2065142.857,,,56,63,,56,Awareness | Seriously My Cat is Amazing,APPROVED,115648,KEYWORD,cat lover, +2680072242253,549764253315,626746449918,2022-06-12 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2114777.778,,,2114777.778,,,54,62,,54,Awareness | Seriously My Cat is Amazing,APPROVED,114198,KEYWORD,cat lover, +2680072242253,549764253315,626746449918,2022-06-13 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2047761.905,,,2047761.905,,,42,47,,42,Awareness | Seriously My Cat is Amazing,APPROVED,86006,KEYWORD,cat lover, +2680072242253,549764253315,626746449918,2022-06-14 00:00:00,2886843206592,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2002763.636,,,2002763.636,,,55,62,,55,Awareness | Seriously My Cat is Amazing,APPROVED,110152,KEYWORD,cat lover, +2680072242253,549764253315,626746449918,2022-06-16 00:00:00,2886843206593,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000666.667,,,2000666.667,,,3,3,,3,Awareness | Seriously My Cat is Amazing,APPROVED,6002,KEYWORD,cat drawing, +2680072242253,549764253315,626746449918,2022-06-10 00:00:00,2886843206593,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2018000,,,2018000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2018,KEYWORD,cat drawing, +2680072242253,549764253315,626746449918,2022-06-15 00:00:00,2886843206594,1014646991029263265,687237616200,2022-06-30 14:11:01,2022-06-07 14:30 | Ad group,COMPLETED,0,25000000,My Cat is Purrfect,COMPLETED,,,,2000000,,,2000000,,,1,1,,1,Awareness | Seriously My Cat is Amazing,APPROVED,2000,KEYWORD,development, \ No newline at end of file diff --git a/integration_tests/seeds/pin_promotion_history_data.csv b/integration_tests/seeds/pin_promotion_history_data.csv index 67b6060..f02903f 100644 --- a/integration_tests/seeds/pin_promotion_history_data.csv +++ b/integration_tests/seeds/pin_promotion_history_data.csv @@ -1,19 +1,19 @@ -id,ad_group_id,created_time,destination_url,name,pin_id,status,creative_type,_fivetran_synced -687205395400,2680065434868,2020-03-26 09:36:43.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-05-28 06:14:04.150 +0000 -687205395399,2680065434868,2020-03-26 09:36:43.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216220,ACTIVE,VIDEO,2020-06-15 18:14:18.130 +0000 -687205395403,2680065434881,2020-03-26 09:37:17.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-01 12:14:37.616 +0000 -687205395388,2680065434863,2020-03-26 09:35:49.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-23 12:14:01.610 +0000 -687205395434,2680065434898,2020-03-26 09:38:46.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-24 00:14:18.647 +0000 -687205395434,2680065434898,2020-03-26 09:38:46.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-30 12:14:03.098 +0000 -687205395388,2680065434863,2020-03-26 09:35:49.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-30 12:14:03.093 +0000 -687205395403,2680065434881,2020-03-26 09:37:17.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-30 12:14:03.096 +0000 -687205395399,2680065434868,2020-03-26 09:36:43.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216220,ACTIVE,VIDEO,2020-07-30 12:14:03.094 +0000 -687205395400,2680065434868,2020-03-26 09:36:43.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-30 12:14:03.095 +0000 -687205395387,2680065434863,2020-03-26 09:35:49.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216220,ACTIVE,VIDEO,2020-07-30 12:14:03.093 +0000 -687205395402,2680065434881,2020-03-26 09:37:17.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216220,ACTIVE,VIDEO,2020-07-30 12:14:03.096 +0000 -687205395389,2680065434863,2020-03-26 09:35:49.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216199,ACTIVE,VIDEO,2020-07-30 12:14:03.094 +0000 -687205395433,2680065434898,2020-03-26 09:38:46.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216220,ACTIVE,VIDEO,2020-07-30 12:14:03.097 +0000 -687205395404,2680065434881,2020-03-26 09:37:17.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216199,ACTIVE,VIDEO,2020-07-30 12:14:03.097 +0000 -687205395401,2680065434868,2020-03-26 09:36:43.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216199,ACTIVE,VIDEO,2020-07-30 12:14:03.095 +0000 -687205395435,2680065434898,2020-03-26 09:38:46.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216199,ACTIVE,VIDEO,2020-07-30 12:14:03.098 +0000 -687205395434,2680065434898,2020-03-26 09:38:46.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-06-23 18:14:30.000 +0000 \ No newline at end of file +id,ad_group_id,created_time,destination_url,name,pin_id,status,creative_type,_fivetran_synced,ad_account_id +687205395434,2680065434898,2020-03-26 09:38:46.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-30 12:14:03.098 +0000,549760489669 +687205395435,2680065434898,2020-03-26 09:38:46.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216199,ACTIVE,VIDEO,2020-07-30 12:14:03.098 +0000,549760489669 +687205395433,2680065434898,2020-03-26 09:38:46.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216220,ACTIVE,VIDEO,2020-07-30 12:14:03.097 +0000,549760489669 +687205395404,2680065434881,2020-03-26 09:37:17.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216199,ACTIVE,VIDEO,2020-07-30 12:14:03.097 +0000,549760489669 +687205395403,2680065434881,2020-03-26 09:37:17.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-30 12:14:03.096 +0000,549760489669 +687205395402,2680065434881,2020-03-26 09:37:17.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216220,ACTIVE,VIDEO,2020-07-30 12:14:03.096 +0000,549760489669 +687205395400,2680065434868,2020-03-26 09:36:43.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-30 12:14:03.095 +0000,549760489669 +687205395401,2680065434868,2020-03-26 09:36:43.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216199,ACTIVE,VIDEO,2020-07-30 12:14:03.095 +0000,549760489669 +687205395399,2680065434868,2020-03-26 09:36:43.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216220,ACTIVE,VIDEO,2020-07-30 12:14:03.094 +0000,549760489669 +687205395389,2680065434863,2020-03-26 09:35:49.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216199,ACTIVE,VIDEO,2020-07-30 12:14:03.094 +0000,549760489669 +687205395388,2680065434863,2020-03-26 09:35:49.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-30 12:14:03.093 +0000,549760489669 +687205395387,2680065434863,2020-03-26 09:35:49.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216220,ACTIVE,VIDEO,2020-07-30 12:14:03.093 +0000,549760489669 +687205395434,2680065434898,2020-03-26 09:38:46.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-24 00:14:18.647 +0000,549760489669 +687205395388,2680065434863,2020-03-26 09:35:49.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-23 12:14:01.610 +0000,549760489669 +687205395403,2680065434881,2020-03-26 09:37:17.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-07-01 12:14:37.616 +0000,549760489669 +687205395434,2680065434898,2020-03-26 09:38:46.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-06-23 18:14:30.000 +0000,549760489669 +687205395399,2680065434868,2020-03-26 09:36:43.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216220,ACTIVE,VIDEO,2020-06-15 18:14:18.130 +0000,549760489669 +687205395400,2680065434868,2020-03-26 09:36:43.000 +0000,https://website.com/page?utm_source=sdfds,8d2b9c960e7bf8a6c22239377c1e6d81,848506386032216135,ACTIVE,VIDEO,2020-05-28 06:14:04.150 +0000,549760489669 \ No newline at end of file diff --git a/integration_tests/seeds/pin_promotion_report_data.csv b/integration_tests/seeds/pin_promotion_report_data.csv index 095a812..026b05c 100644 --- a/integration_tests/seeds/pin_promotion_report_data.csv +++ b/integration_tests/seeds/pin_promotion_report_data.csv @@ -1,4 +1,4 @@ -date,pin_promotion_id,ad_group_id,campaign_id,ad_account_id,_fivetran_synced,impression_1,impression_2,clickthrough_1,clickthrough_2,spend_in_micro_dollar +date,pin_promotion_id,ad_group_id,campaign_id,advertiser_id,_fivetran_synced,impression_1,impression_2,clickthrough_1,clickthrough_2,spend_in_micro_dollar 2020-04-20 00:00:00,687205395433,2680065434898,626741793779,549760489669,2020-05-21 15:09:01.558 +0000,5167,,38,,5898162 2020-04-20 00:00:00,687205395434,2680065434898,626741793779,549760489669,2020-05-21 15:09:01.558 +0000,607,1,14,,2234418 2020-04-20 00:00:00,687205395435,2680065434898,626741793779,549760489669,2020-05-21 15:09:01.558 +0000,1169,,4,,594512 From 7c0438e76b4406d4bd4abad3409976f0f0cdae0f Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Fri, 14 Jul 2023 13:55:49 -0400 Subject: [PATCH 10/21] re point advertiser_id source --- CHANGELOG.md | 4 ++-- models/pinterest_ads__ad_group_report.sql | 2 +- models/pinterest_ads__url_report.sql | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 52291b4..079d5e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,13 +2,13 @@ # dbt_pinterest v0.8.0 [PR #26](https://github.com/fivetran/dbt_pinterest/pull/26) introduces the following changes: ## Pinterest API v5 Updates -- Following Pinterest Ads deprecating the v4 API on June 30, 2023 in place of v5, the Pinterest Ads Fivetran connector now leverages the Pinterest v5 API. The following fields have been deprecated/ introduced: +- Following Pinterest Ads deprecating the v4 API on June 30, 2023 in place of v5, the Pinterest Ads Fivetran connector now leverages the Pinterest v5 API. The following fields have been deprecated/introduced: | **Model** | **Removed** | **New** | |---|---|---| | [pinterest_ads__advertiser_report](https://fivetran.github.io/dbt_pinterest/#!/model/model.pinterest.pinterest_ads__advertiser_report) | `billing_type`, `status` | | -- In the v5 upgrade, `advertiser_id` has been replaced by `ad_account_id`. However, to keep our Pinterest Ads package standard with our other ad packages, we have kept it as `advertiser_id`. +- In the v5 upgrade, `advertiser_id` has been replaced by `ad_account_id` and is a net new field in `ad_group_history` and `pin_promotion_history` source tables. However, to keep our Pinterest Ads package standard with our other ad packages, we have kept it as `advertiser_id`. # dbt_pinterest v0.7.1 diff --git a/models/pinterest_ads__ad_group_report.sql b/models/pinterest_ads__ad_group_report.sql index 6cd5971..f80a8a8 100644 --- a/models/pinterest_ads__ad_group_report.sql +++ b/models/pinterest_ads__ad_group_report.sql @@ -32,7 +32,7 @@ fields as ( select report.date_day, advertisers.advertiser_name, - advertisers.advertiser_id, + ad_groups.advertiser_id, campaigns.campaign_name, campaigns.campaign_status, campaigns.campaign_id, diff --git a/models/pinterest_ads__url_report.sql b/models/pinterest_ads__url_report.sql index 422f2ef..596cc06 100644 --- a/models/pinterest_ads__url_report.sql +++ b/models/pinterest_ads__url_report.sql @@ -38,7 +38,7 @@ joined as ( select report.date_day, - campaigns.advertiser_id, + pins.advertiser_id, advertisers.advertiser_name, report.campaign_id, campaigns.campaign_name, From 7855a39f3fe34770e52f097393bf9173a2e24e68 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Fri, 14 Jul 2023 14:03:24 -0400 Subject: [PATCH 11/21] revert last commit --- models/pinterest_ads__ad_group_report.sql | 2 +- models/pinterest_ads__url_report.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/models/pinterest_ads__ad_group_report.sql b/models/pinterest_ads__ad_group_report.sql index f80a8a8..6cd5971 100644 --- a/models/pinterest_ads__ad_group_report.sql +++ b/models/pinterest_ads__ad_group_report.sql @@ -32,7 +32,7 @@ fields as ( select report.date_day, advertisers.advertiser_name, - ad_groups.advertiser_id, + advertisers.advertiser_id, campaigns.campaign_name, campaigns.campaign_status, campaigns.campaign_id, diff --git a/models/pinterest_ads__url_report.sql b/models/pinterest_ads__url_report.sql index 596cc06..422f2ef 100644 --- a/models/pinterest_ads__url_report.sql +++ b/models/pinterest_ads__url_report.sql @@ -38,7 +38,7 @@ joined as ( select report.date_day, - pins.advertiser_id, + campaigns.advertiser_id, advertisers.advertiser_name, report.campaign_id, campaigns.campaign_name, From 3a9e99a00e33edf402c5adf5b716bf688b370918 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Fri, 14 Jul 2023 14:55:56 -0400 Subject: [PATCH 12/21] rename seeds --- integration_tests/dbt_project.yml | 20 +++++++++---------- ...sv => pinterest_ad_group_history_data.csv} | 0 ...csv => pinterest_ad_group_report_data.csv} | 0 ... => pinterest_advertiser_history_data.csv} | 0 ...v => pinterest_advertiser_report_data.csv} | 0 ...sv => pinterest_campaign_history_data.csv} | 0 ...csv => pinterest_campaign_report_data.csv} | 0 ...csv => pinterest_keyword_history_data.csv} | 0 ....csv => pinterest_keyword_report_data.csv} | 0 ... pinterest_pin_promotion_history_data.csv} | 0 ...> pinterest_pin_promotion_report_data.csv} | 0 11 files changed, 10 insertions(+), 10 deletions(-) rename integration_tests/seeds/{ad_group_history_data.csv => pinterest_ad_group_history_data.csv} (100%) rename integration_tests/seeds/{ad_group_report_data.csv => pinterest_ad_group_report_data.csv} (100%) rename integration_tests/seeds/{advertiser_history_data.csv => pinterest_advertiser_history_data.csv} (100%) rename integration_tests/seeds/{advertiser_report_data.csv => pinterest_advertiser_report_data.csv} (100%) rename integration_tests/seeds/{campaign_history_data.csv => pinterest_campaign_history_data.csv} (100%) rename integration_tests/seeds/{campaign_report_data.csv => pinterest_campaign_report_data.csv} (100%) rename integration_tests/seeds/{keyword_history_data.csv => pinterest_keyword_history_data.csv} (100%) rename integration_tests/seeds/{keyword_report_data.csv => pinterest_keyword_report_data.csv} (100%) rename integration_tests/seeds/{pin_promotion_history_data.csv => pinterest_pin_promotion_history_data.csv} (100%) rename integration_tests/seeds/{pin_promotion_report_data.csv => pinterest_pin_promotion_report_data.csv} (100%) diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index b8f129e..1ce3d7f 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -5,16 +5,16 @@ config-version: 2 vars: pinterest_schema: pinterest_integration_tests_3 - pinterest_ad_group_history_identifier: "ad_group_history_data" - pinterest_campaign_history_identifier: "campaign_history_data" - pinterest_pin_promotion_history_identifier: "pin_promotion_history_data" - pinterest_pin_promotion_report_identifier: "pin_promotion_report_data" - pinterest_keyword_history_identifier: "keyword_history_data" - pinterest_keyword_report_identifier: "keyword_report_data" - pinterest_ad_group_report_identifier: "ad_group_report_data" - pinterest_campaign_report_identifier: "campaign_report_data" - pinterest_advertiser_history_identifier: "advertiser_history_data" - pinterest_advertiser_report_identifier: "advertiser_report_data" + pinterest_ad_group_history_identifier: "pinterest_ad_group_history_data" + pinterest_campaign_history_identifier: "pinterest_campaign_history_data" + pinterest_pin_promotion_history_identifier: "pinterest_pin_promotion_history_data" + pinterest_pin_promotion_report_identifier: "pinterest_pin_promotion_report_data" + pinterest_keyword_history_identifier: "pinterest_keyword_history_data" + pinterest_keyword_report_identifier: "pinterest_keyword_report_data" + pinterest_ad_group_report_identifier: "pinterest_ad_group_report_data" + pinterest_campaign_report_identifier: "pinterest_campaign_report_data" + pinterest_advertiser_history_identifier: "pinterest_advertiser_history_data" + pinterest_advertiser_report_identifier: "pinterest_advertiser_report_data" seeds: +quote_columns: "{{ true if target.type in ('redshift','postgres') else false }}" diff --git a/integration_tests/seeds/ad_group_history_data.csv b/integration_tests/seeds/pinterest_ad_group_history_data.csv similarity index 100% rename from integration_tests/seeds/ad_group_history_data.csv rename to integration_tests/seeds/pinterest_ad_group_history_data.csv diff --git a/integration_tests/seeds/ad_group_report_data.csv b/integration_tests/seeds/pinterest_ad_group_report_data.csv similarity index 100% rename from integration_tests/seeds/ad_group_report_data.csv rename to integration_tests/seeds/pinterest_ad_group_report_data.csv diff --git a/integration_tests/seeds/advertiser_history_data.csv b/integration_tests/seeds/pinterest_advertiser_history_data.csv similarity index 100% rename from integration_tests/seeds/advertiser_history_data.csv rename to integration_tests/seeds/pinterest_advertiser_history_data.csv diff --git a/integration_tests/seeds/advertiser_report_data.csv b/integration_tests/seeds/pinterest_advertiser_report_data.csv similarity index 100% rename from integration_tests/seeds/advertiser_report_data.csv rename to integration_tests/seeds/pinterest_advertiser_report_data.csv diff --git a/integration_tests/seeds/campaign_history_data.csv b/integration_tests/seeds/pinterest_campaign_history_data.csv similarity index 100% rename from integration_tests/seeds/campaign_history_data.csv rename to integration_tests/seeds/pinterest_campaign_history_data.csv diff --git a/integration_tests/seeds/campaign_report_data.csv b/integration_tests/seeds/pinterest_campaign_report_data.csv similarity index 100% rename from integration_tests/seeds/campaign_report_data.csv rename to integration_tests/seeds/pinterest_campaign_report_data.csv diff --git a/integration_tests/seeds/keyword_history_data.csv b/integration_tests/seeds/pinterest_keyword_history_data.csv similarity index 100% rename from integration_tests/seeds/keyword_history_data.csv rename to integration_tests/seeds/pinterest_keyword_history_data.csv diff --git a/integration_tests/seeds/keyword_report_data.csv b/integration_tests/seeds/pinterest_keyword_report_data.csv similarity index 100% rename from integration_tests/seeds/keyword_report_data.csv rename to integration_tests/seeds/pinterest_keyword_report_data.csv diff --git a/integration_tests/seeds/pin_promotion_history_data.csv b/integration_tests/seeds/pinterest_pin_promotion_history_data.csv similarity index 100% rename from integration_tests/seeds/pin_promotion_history_data.csv rename to integration_tests/seeds/pinterest_pin_promotion_history_data.csv diff --git a/integration_tests/seeds/pin_promotion_report_data.csv b/integration_tests/seeds/pinterest_pin_promotion_report_data.csv similarity index 100% rename from integration_tests/seeds/pin_promotion_report_data.csv rename to integration_tests/seeds/pinterest_pin_promotion_report_data.csv From df2aa4792e83d86eb4919b6ffe7472a890df93a6 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Fri, 14 Jul 2023 14:59:45 -0400 Subject: [PATCH 13/21] update docs --- CHANGELOG.md | 3 ++- README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 079d5e9..b6e1154 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,9 @@ |---|---|---| | [pinterest_ads__advertiser_report](https://fivetran.github.io/dbt_pinterest/#!/model/model.pinterest.pinterest_ads__advertiser_report) | `billing_type`, `status` | | -- In the v5 upgrade, `advertiser_id` has been replaced by `ad_account_id` and is a net new field in `ad_group_history` and `pin_promotion_history` source tables. However, to keep our Pinterest Ads package standard with our other ad packages, we have kept it as `advertiser_id`. +- In the v5 upgrade, `advertiser_id` has been replaced by `ad_account_id`. Also, `ad_account_id` is a net new field in `ad_group_history` and `pin_promotion_history`. +However, to keep our Pinterest Ads package standard with our other ad packages, we have kept it as `advertiser_id`. # dbt_pinterest v0.7.1 ## Features diff --git a/README.md b/README.md index bc6d5af..dae1cb6 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Include the following pinterest package version in your `packages.yml` file: ```yaml packages: - package: fivetran/pinterest - version: [">=0.7.0", "<0.8.0"] # we recommend using ranges to capture non-breaking changes automatically + version: [">=0.8.0", "<0.9.0"] # we recommend using ranges to capture non-breaking changes automatically ``` Do NOT include the `pinterest_source` package in this file. The transformation package itself has a dependency on it and will install the source package as well. From 9725538880358a9517141beb5ec9559d7c1fd1a6 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Fri, 14 Jul 2023 15:04:23 -0400 Subject: [PATCH 14/21] update deps matrix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dae1cb6..a0ce4b7 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ This dbt package is dependent on the following dbt packages. Please be aware tha ```yml packages: - package: fivetran/pinterest_source - version: [">=0.7.0", "<0.8.0"] + version: [">=0.8.0", "<0.9.0"] - package: fivetran/fivetran_utils version: [">=0.4.0", "<0.5.0"] From 64d140028d1c84d3c708ef46756c4e7e926a825c Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Fri, 14 Jul 2023 15:17:04 -0400 Subject: [PATCH 15/21] wording --- CHANGELOG.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6e1154..cef6df7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,9 +8,7 @@ |---|---|---| | [pinterest_ads__advertiser_report](https://fivetran.github.io/dbt_pinterest/#!/model/model.pinterest.pinterest_ads__advertiser_report) | `billing_type`, `status` | | -- In the v5 upgrade, `advertiser_id` has been replaced by `ad_account_id`. Also, `ad_account_id` is a net new field in `ad_group_history` and `pin_promotion_history`. - -However, to keep our Pinterest Ads package standard with our other ad packages, we have kept it as `advertiser_id`. +- Following the v5 upgrade, `ad_account_id` is a net new field within `ad_group_history` and `pin_promotion_history` source tables synced via the connector. However, to keep these fields standard across the package, we have renamed them as `advertiser_id` within the respective staging models. # dbt_pinterest v0.7.1 ## Features From e29c1117459c1c80d37fc75f29b2412f3713abec Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Mon, 17 Jul 2023 10:47:36 -0400 Subject: [PATCH 16/21] update packages --- packages.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages.yml b/packages.yml index 679adf2..2cb71cd 100644 --- a/packages.yml +++ b/packages.yml @@ -1,4 +1,3 @@ packages: - - git: https://github.com/fivetran/dbt_pinterest_source.git - revision: feature/pinterest_v5_API_support - warn-unpinned: false \ No newline at end of file + - package: fivetran/pinterest_source + version: [">=0.8.0", "<0.9.0"] \ No newline at end of file From 70e507cc046e182628b2af30560e441acb6beec8 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Wed, 19 Jul 2023 15:38:29 -0400 Subject: [PATCH 17/21] update changelog --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cef6df7..9889b02 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,10 @@ # dbt_pinterest v0.8.0 + +# Pinterest Ads v5 Upgrade +## 🚨 Breaking Changes 🚨: [PR #26](https://github.com/fivetran/dbt_pinterest/pull/26) introduces the following changes: -## Pinterest API v5 Updates + - Following Pinterest Ads deprecating the v4 API on June 30, 2023 in place of v5, the Pinterest Ads Fivetran connector now leverages the Pinterest v5 API. The following fields have been deprecated/introduced: | **Model** | **Removed** | **New** | From b3a8817554997708ecc8dc5d2095f81fa2fd72b6 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Tue, 25 Jul 2023 13:29:15 +0200 Subject: [PATCH 18/21] update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9889b02..4266680 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,9 @@ |---|---|---| | [pinterest_ads__advertiser_report](https://fivetran.github.io/dbt_pinterest/#!/model/model.pinterest.pinterest_ads__advertiser_report) | `billing_type`, `status` | | +## Under the Hood: - Following the v5 upgrade, `ad_account_id` is a net new field within `ad_group_history` and `pin_promotion_history` source tables synced via the connector. However, to keep these fields standard across the package, we have renamed them as `advertiser_id` within the respective staging models. +- Seed data were updated with new/removed fields following the v5 upgrade # dbt_pinterest v0.7.1 ## Features From 0eba5f91ea918edeede8fde43cda0b851428d106 Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Wed, 26 Jul 2023 16:24:38 +0200 Subject: [PATCH 19/21] up version and update readme --- CHANGELOG.md | 7 +++++-- README.md | 4 ++-- dbt_project.yml | 2 +- integration_tests/dbt_project.yml | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4266680..79d089e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,4 @@ - -# dbt_pinterest v0.8.0 +# dbt_pinterest v0.9.0 # Pinterest Ads v5 Upgrade ## 🚨 Breaking Changes 🚨: @@ -15,6 +14,10 @@ - Following the v5 upgrade, `ad_account_id` is a net new field within `ad_group_history` and `pin_promotion_history` source tables synced via the connector. However, to keep these fields standard across the package, we have renamed them as `advertiser_id` within the respective staging models. - Seed data were updated with new/removed fields following the v5 upgrade + +# dbt_pinterest v0.8.0 +- This was an accidental release + # dbt_pinterest v0.7.1 ## Features - Addition of the `pinterest__using_keywords` (default=`true`) variable that allows users to disable the relevant keyword reports in the downstream Pinterest models if they are not used. ([#25](https://github.com/fivetran/dbt_pinterest/pull/25)) diff --git a/README.md b/README.md index a0ce4b7..e6d371f 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Include the following pinterest package version in your `packages.yml` file: ```yaml packages: - package: fivetran/pinterest - version: [">=0.8.0", "<0.9.0"] # we recommend using ranges to capture non-breaking changes automatically + version: [">=0.9.0", "<0.10.0"] # we recommend using ranges to capture non-breaking changes automatically ``` Do NOT include the `pinterest_source` package in this file. The transformation package itself has a dependency on it and will install the source package as well. @@ -135,7 +135,7 @@ This dbt package is dependent on the following dbt packages. Please be aware tha ```yml packages: - package: fivetran/pinterest_source - version: [">=0.8.0", "<0.9.0"] + version: [">=0.9.0", "<0.10.0"] - package: fivetran/fivetran_utils version: [">=0.4.0", "<0.5.0"] diff --git a/dbt_project.yml b/dbt_project.yml index 7f81a3b..6a94815 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -1,5 +1,5 @@ name: 'pinterest' -version: '0.8.0' +version: '0.9.0' config-version: 2 require-dbt-version: [">=1.3.0", "<2.0.0"] models: diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index 1ce3d7f..8c44724 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -1,5 +1,5 @@ name: 'pinterest_integration_tests' -version: '0.8.0' +version: '0.9.0' profile: 'integration_tests' config-version: 2 From be7d05d047d0adc35cc0d5014f43bc11c7f6d96f Mon Sep 17 00:00:00 2001 From: fivetran-reneeli Date: Wed, 26 Jul 2023 16:36:33 +0200 Subject: [PATCH 20/21] docs --- docs/catalog.json | 2 +- docs/manifest.json | 2 +- docs/run_results.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/catalog.json b/docs/catalog.json index fb68d88..4983fca 100644 --- a/docs/catalog.json +++ b/docs/catalog.json @@ -1 +1 @@ -{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json", "dbt_version": "1.4.5", "generated_at": "2023-06-06T21:30:22.184606Z", "invocation_id": "add0e8a1-b6ee-49df-a5ee-375b15e63d2d", "env": {}}, "nodes": {"seed.pinterest_integration_tests.ad_group_history_data": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "ad_group_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "campaign_id": {"type": "bigint", "index": 2, "name": "campaign_id", "comment": null}, "created_time": {"type": "text", "index": 3, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 4, "name": "name", "comment": null}, "status": {"type": "text", "index": 5, "name": "status", "comment": null}, "start_time": {"type": "text", "index": 6, "name": "start_time", "comment": null}, "end_time": {"type": "integer", "index": 7, "name": "end_time", "comment": null}, "_fivetran_synced": {"type": "text", "index": 8, "name": "_fivetran_synced", "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": "seed.pinterest_integration_tests.ad_group_history_data"}, "seed.pinterest_integration_tests.ad_group_report_data": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "ad_group_report_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"ad_group_id": {"type": "bigint", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 2, "name": "advertiser_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 3, "name": "date", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "text", "index": 5, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "text", "index": 6, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "integer", "index": 7, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_id": {"type": "bigint", "index": 8, "name": "campaign_id", "comment": null}, "campaign_lifetime_spend_cap": {"type": "integer", "index": 9, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "text", "index": 10, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 11, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "integer", "index": 12, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 13, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "double precision", "index": 14, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 15, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "double precision", "index": 16, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "double precision", "index": 17, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 18, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "double precision", "index": 19, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 20, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 21, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 22, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 23, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 24, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 25, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "integer", "index": 26, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "double precision", "index": 27, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "integer", "index": 28, "name": "total_impression_user", "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": "seed.pinterest_integration_tests.ad_group_report_data"}, "seed.pinterest_integration_tests.advertiser_history_data": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "advertiser_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "updated_time": {"type": "timestamp without time zone", "index": 2, "name": "updated_time", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "billing_profile_status": {"type": "text", "index": 4, "name": "billing_profile_status", "comment": null}, "billing_type": {"type": "text", "index": 5, "name": "billing_type", "comment": null}, "country": {"type": "text", "index": 6, "name": "country", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 7, "name": "created_time", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "merchant_id": {"type": "integer", "index": 9, "name": "merchant_id", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "owner_user_id": {"type": "integer", "index": 11, "name": "owner_user_id", "comment": null}, "status": {"type": "text", "index": 12, "name": "status", "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": "seed.pinterest_integration_tests.advertiser_history_data"}, "seed.pinterest_integration_tests.advertiser_report_data": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "advertiser_report_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"advertiser_id": {"type": "bigint", "index": 1, "name": "advertiser_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 2, "name": "date", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "clickthrough_1": {"type": "integer", "index": 4, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 5, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "double precision", "index": 6, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 7, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "double precision", "index": 8, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "double precision", "index": 9, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 10, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "double precision", "index": 11, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 12, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 13, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 14, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 15, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 16, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 17, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "integer", "index": 18, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "double precision", "index": 19, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "integer", "index": 20, "name": "total_impression_user", "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": "seed.pinterest_integration_tests.advertiser_report_data"}, "seed.pinterest_integration_tests.campaign_history_data": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "campaign_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "created_time": {"type": "text", "index": 2, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 3, "name": "name", "comment": null}, "status": {"type": "text", "index": 4, "name": "status", "comment": null}, "_fivetran_synced": {"type": "text", "index": 5, "name": "_fivetran_synced", "comment": null}, "advertiser_id": {"type": "bigint", "index": 6, "name": "advertiser_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": "seed.pinterest_integration_tests.campaign_history_data"}, "seed.pinterest_integration_tests.campaign_report_data": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "campaign_report_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"advertiser_id": {"type": "bigint", "index": 1, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "bigint", "index": 2, "name": "campaign_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 3, "name": "date", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "campaign_daily_spend_cap": {"type": "integer", "index": 5, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "integer", "index": 6, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "text", "index": 7, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 8, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "integer", "index": 9, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 10, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "double precision", "index": 11, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 12, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "double precision", "index": 13, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "double precision", "index": 14, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 15, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "double precision", "index": 16, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 17, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 18, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 19, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 20, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 21, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 22, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "integer", "index": 23, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "double precision", "index": 24, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "integer", "index": 25, "name": "total_impression_user", "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": "seed.pinterest_integration_tests.campaign_report_data"}, "seed.pinterest_integration_tests.keyword_history_data": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "keyword_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_id": {"type": "text", "index": 1, "name": "_fivetran_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "ad_group_id": {"type": "bigint", "index": 3, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 4, "name": "advertiser_id", "comment": null}, "archived": {"type": "boolean", "index": 5, "name": "archived", "comment": null}, "bid": {"type": "integer", "index": 6, "name": "bid", "comment": null}, "campaign_id": {"type": "bigint", "index": 7, "name": "campaign_id", "comment": null}, "id": {"type": "bigint", "index": 8, "name": "id", "comment": null}, "match_type": {"type": "text", "index": 9, "name": "match_type", "comment": null}, "parent_type": {"type": "text", "index": 10, "name": "parent_type", "comment": null}, "value": {"type": "text", "index": 11, "name": "value", "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": "seed.pinterest_integration_tests.keyword_history_data"}, "seed.pinterest_integration_tests.keyword_report_data": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "keyword_report_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"ad_group_id": {"type": "bigint", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 2, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "bigint", "index": 3, "name": "campaign_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 4, "name": "date", "comment": null}, "keyword_id": {"type": "bigint", "index": 5, "name": "keyword_id", "comment": null}, "pin_id": {"type": "bigint", "index": 6, "name": "pin_id", "comment": null}, "pin_promotion_id": {"type": "bigint", "index": 7, "name": "pin_promotion_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 8, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "text", "index": 9, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "text", "index": 10, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "integer", "index": 11, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "integer", "index": 12, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "text", "index": 13, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 14, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "integer", "index": 15, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 16, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "integer", "index": 17, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 18, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "integer", "index": 19, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "integer", "index": 20, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 21, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "integer", "index": 22, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 23, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 24, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 25, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 26, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 27, "name": "paid_impression", "comment": null}, "pin_promotion_name": {"type": "text", "index": 28, "name": "pin_promotion_name", "comment": null}, "pin_promotion_status": {"type": "text", "index": 29, "name": "pin_promotion_status", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 30, "name": "spend_in_micro_dollar", "comment": null}, "targeting_type": {"type": "text", "index": 31, "name": "targeting_type", "comment": null}, "targeting_value": {"type": "text", "index": 32, "name": "targeting_value", "comment": null}, "total_engagement": {"type": "integer", "index": 33, "name": "total_engagement", "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": "seed.pinterest_integration_tests.keyword_report_data"}, "seed.pinterest_integration_tests.pin_promotion_history_data": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "pin_promotion_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "ad_group_id": {"type": "bigint", "index": 2, "name": "ad_group_id", "comment": null}, "created_time": {"type": "text", "index": 3, "name": "created_time", "comment": null}, "destination_url": {"type": "text", "index": 4, "name": "destination_url", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "pin_id": {"type": "bigint", "index": 6, "name": "pin_id", "comment": null}, "status": {"type": "text", "index": 7, "name": "status", "comment": null}, "creative_type": {"type": "text", "index": 8, "name": "creative_type", "comment": null}, "_fivetran_synced": {"type": "text", "index": 9, "name": "_fivetran_synced", "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": "seed.pinterest_integration_tests.pin_promotion_history_data"}, "seed.pinterest_integration_tests.pin_promotion_report_data": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "pin_promotion_report_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date": {"type": "timestamp without time zone", "index": 1, "name": "date", "comment": null}, "pin_promotion_id": {"type": "bigint", "index": 2, "name": "pin_promotion_id", "comment": null}, "ad_group_id": {"type": "bigint", "index": 3, "name": "ad_group_id", "comment": null}, "campaign_id": {"type": "bigint", "index": 4, "name": "campaign_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 5, "name": "advertiser_id", "comment": null}, "_fivetran_synced": {"type": "text", "index": 6, "name": "_fivetran_synced", "comment": null}, "impression_1": {"type": "integer", "index": 7, "name": "impression_1", "comment": null}, "impression_2": {"type": "integer", "index": 8, "name": "impression_2", "comment": null}, "clickthrough_1": {"type": "integer", "index": 9, "name": "clickthrough_1", "comment": null}, "clickthrough_2": {"type": "integer", "index": 10, "name": "clickthrough_2", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 11, "name": "spend_in_micro_dollar", "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": "seed.pinterest_integration_tests.pin_promotion_report_data"}, "model.pinterest.pinterest_ads__ad_group_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__ad_group_report", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "comment": null}, "advertiser_name": {"type": "text", "index": 2, "name": "advertiser_name", "comment": null}, "advertiser_id": {"type": "bigint", "index": 3, "name": "advertiser_id", "comment": null}, "campaign_name": {"type": "text", "index": 4, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 5, "name": "campaign_status", "comment": null}, "campaign_id": {"type": "bigint", "index": 6, "name": "campaign_id", "comment": null}, "ad_group_name": {"type": "text", "index": 7, "name": "ad_group_name", "comment": null}, "ad_group_id": {"type": "bigint", "index": 8, "name": "ad_group_id", "comment": null}, "created_at": {"type": "text", "index": 9, "name": "created_at", "comment": null}, "start_time": {"type": "text", "index": 10, "name": "start_time", "comment": null}, "end_time": {"type": "integer", "index": 11, "name": "end_time", "comment": null}, "ad_group_status": {"type": "text", "index": 12, "name": "ad_group_status", "comment": null}, "spend": {"type": "numeric", "index": 13, "name": "spend", "comment": null}, "clicks": {"type": "bigint", "index": 14, "name": "clicks", "comment": null}, "impressions": {"type": "bigint", "index": 15, "name": "impressions", "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.pinterest.pinterest_ads__ad_group_report"}, "model.pinterest.pinterest_ads__advertiser_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__advertiser_report", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "comment": null}, "advertiser_name": {"type": "text", "index": 2, "name": "advertiser_name", "comment": null}, "advertiser_id": {"type": "bigint", "index": 3, "name": "advertiser_id", "comment": null}, "advertiser_status": {"type": "text", "index": 4, "name": "advertiser_status", "comment": null}, "currency_code": {"type": "text", "index": 5, "name": "currency_code", "comment": null}, "country": {"type": "text", "index": 6, "name": "country", "comment": null}, "billing_type": {"type": "text", "index": 7, "name": "billing_type", "comment": null}, "spend": {"type": "numeric", "index": 8, "name": "spend", "comment": null}, "clicks": {"type": "bigint", "index": 9, "name": "clicks", "comment": null}, "impressions": {"type": "bigint", "index": 10, "name": "impressions", "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.pinterest.pinterest_ads__advertiser_report"}, "model.pinterest.pinterest_ads__campaign_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__campaign_report", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "comment": null}, "advertiser_name": {"type": "text", "index": 2, "name": "advertiser_name", "comment": null}, "advertiser_id": {"type": "bigint", "index": 3, "name": "advertiser_id", "comment": null}, "campaign_name": {"type": "text", "index": 4, "name": "campaign_name", "comment": null}, "campaign_id": {"type": "bigint", "index": 5, "name": "campaign_id", "comment": null}, "campaign_status": {"type": "text", "index": 6, "name": "campaign_status", "comment": null}, "spend": {"type": "numeric", "index": 7, "name": "spend", "comment": null}, "clicks": {"type": "bigint", "index": 8, "name": "clicks", "comment": null}, "impressions": {"type": "bigint", "index": 9, "name": "impressions", "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.pinterest.pinterest_ads__campaign_report"}, "model.pinterest.pinterest_ads__keyword_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__keyword_report", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "comment": null}, "advertiser_name": {"type": "text", "index": 2, "name": "advertiser_name", "comment": null}, "advertiser_id": {"type": "bigint", "index": 3, "name": "advertiser_id", "comment": null}, "campaign_name": {"type": "text", "index": 4, "name": "campaign_name", "comment": null}, "campaign_id": {"type": "bigint", "index": 5, "name": "campaign_id", "comment": null}, "ad_group_name": {"type": "text", "index": 6, "name": "ad_group_name", "comment": null}, "ad_group_id": {"type": "bigint", "index": 7, "name": "ad_group_id", "comment": null}, "keyword_id": {"type": "bigint", "index": 8, "name": "keyword_id", "comment": null}, "match_type": {"type": "text", "index": 9, "name": "match_type", "comment": null}, "parent_type": {"type": "text", "index": 10, "name": "parent_type", "comment": null}, "keyword_value": {"type": "text", "index": 11, "name": "keyword_value", "comment": null}, "spend": {"type": "numeric", "index": 12, "name": "spend", "comment": null}, "clicks": {"type": "bigint", "index": 13, "name": "clicks", "comment": null}, "impressions": {"type": "bigint", "index": 14, "name": "impressions", "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.pinterest.pinterest_ads__keyword_report"}, "model.pinterest.pinterest_ads__pin_promotion_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__pin_promotion_report", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "comment": null}, "advertiser_id": {"type": "bigint", "index": 2, "name": "advertiser_id", "comment": null}, "advertiser_name": {"type": "text", "index": 3, "name": "advertiser_name", "comment": null}, "campaign_id": {"type": "bigint", "index": 4, "name": "campaign_id", "comment": null}, "campaign_name": {"type": "text", "index": 5, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 6, "name": "campaign_status", "comment": null}, "ad_group_id": {"type": "bigint", "index": 7, "name": "ad_group_id", "comment": null}, "ad_group_name": {"type": "text", "index": 8, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "text", "index": 9, "name": "ad_group_status", "comment": null}, "creative_type": {"type": "text", "index": 10, "name": "creative_type", "comment": null}, "pin_promotion_id": {"type": "bigint", "index": 11, "name": "pin_promotion_id", "comment": null}, "pin_name": {"type": "text", "index": 12, "name": "pin_name", "comment": null}, "pin_status": {"type": "text", "index": 13, "name": "pin_status", "comment": null}, "destination_url": {"type": "text", "index": 14, "name": "destination_url", "comment": null}, "base_url": {"type": "text", "index": 15, "name": "base_url", "comment": null}, "clicks": {"type": "bigint", "index": 16, "name": "clicks", "comment": null}, "impressions": {"type": "bigint", "index": 17, "name": "impressions", "comment": null}, "spend": {"type": "numeric", "index": 18, "name": "spend", "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.pinterest.pinterest_ads__pin_promotion_report"}, "model.pinterest.pinterest_ads__url_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__url_report", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "comment": null}, "advertiser_id": {"type": "bigint", "index": 2, "name": "advertiser_id", "comment": null}, "advertiser_name": {"type": "text", "index": 3, "name": "advertiser_name", "comment": null}, "campaign_id": {"type": "bigint", "index": 4, "name": "campaign_id", "comment": null}, "campaign_name": {"type": "text", "index": 5, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 6, "name": "campaign_status", "comment": null}, "ad_group_id": {"type": "bigint", "index": 7, "name": "ad_group_id", "comment": null}, "ad_group_name": {"type": "text", "index": 8, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "text", "index": 9, "name": "ad_group_status", "comment": null}, "destination_url": {"type": "text", "index": 10, "name": "destination_url", "comment": null}, "creative_type": {"type": "text", "index": 11, "name": "creative_type", "comment": null}, "pin_promotion_id": {"type": "bigint", "index": 12, "name": "pin_promotion_id", "comment": null}, "pin_name": {"type": "text", "index": 13, "name": "pin_name", "comment": null}, "pin_status": {"type": "text", "index": 14, "name": "pin_status", "comment": null}, "base_url": {"type": "text", "index": 15, "name": "base_url", "comment": null}, "url_host": {"type": "text", "index": 16, "name": "url_host", "comment": null}, "url_path": {"type": "text", "index": 17, "name": "url_path", "comment": null}, "utm_source": {"type": "text", "index": 18, "name": "utm_source", "comment": null}, "utm_medium": {"type": "text", "index": 19, "name": "utm_medium", "comment": null}, "utm_campaign": {"type": "text", "index": 20, "name": "utm_campaign", "comment": null}, "utm_content": {"type": "text", "index": 21, "name": "utm_content", "comment": null}, "utm_term": {"type": "text", "index": 22, "name": "utm_term", "comment": null}, "clicks": {"type": "bigint", "index": 23, "name": "clicks", "comment": null}, "impressions": {"type": "bigint", "index": 24, "name": "impressions", "comment": null}, "spend": {"type": "numeric", "index": 25, "name": "spend", "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.pinterest.pinterest_ads__url_report"}, "model.pinterest_source.stg_pinterest_ads__ad_group_history": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__ad_group_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"ad_group_id": {"type": "bigint", "index": 1, "name": "ad_group_id", "comment": null}, "ad_group_name": {"type": "text", "index": 2, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "text", "index": 3, "name": "ad_group_status", "comment": null}, "_fivetran_synced": {"type": "text", "index": 4, "name": "_fivetran_synced", "comment": null}, "campaign_id": {"type": "bigint", "index": 5, "name": "campaign_id", "comment": null}, "created_at": {"type": "text", "index": 6, "name": "created_at", "comment": null}, "end_time": {"type": "integer", "index": 7, "name": "end_time", "comment": null}, "start_time": {"type": "text", "index": 8, "name": "start_time", "comment": null}, "is_most_recent_record": {"type": "boolean", "index": 9, "name": "is_most_recent_record", "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.pinterest_source.stg_pinterest_ads__ad_group_history"}, "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp": {"metadata": {"type": "VIEW", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__ad_group_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "campaign_id": {"type": "bigint", "index": 2, "name": "campaign_id", "comment": null}, "created_time": {"type": "text", "index": 3, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 4, "name": "name", "comment": null}, "status": {"type": "text", "index": 5, "name": "status", "comment": null}, "start_time": {"type": "text", "index": 6, "name": "start_time", "comment": null}, "end_time": {"type": "integer", "index": 7, "name": "end_time", "comment": null}, "_fivetran_synced": {"type": "text", "index": 8, "name": "_fivetran_synced", "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.pinterest_source.stg_pinterest_ads__ad_group_history_tmp"}, "model.pinterest_source.stg_pinterest_ads__ad_group_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__ad_group_report", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "comment": null}, "ad_group_id": {"type": "bigint", "index": 2, "name": "ad_group_id", "comment": null}, "ad_group_name": {"type": "text", "index": 3, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "text", "index": 4, "name": "ad_group_status", "comment": null}, "campaign_id": {"type": "bigint", "index": 5, "name": "campaign_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 6, "name": "advertiser_id", "comment": null}, "impressions": {"type": "integer", "index": 7, "name": "impressions", "comment": null}, "clicks": {"type": "integer", "index": 8, "name": "clicks", "comment": null}, "spend": {"type": "numeric", "index": 9, "name": "spend", "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.pinterest_source.stg_pinterest_ads__ad_group_report"}, "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp": {"metadata": {"type": "VIEW", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__ad_group_report_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"ad_group_id": {"type": "bigint", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 2, "name": "advertiser_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 3, "name": "date", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "text", "index": 5, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "text", "index": 6, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "integer", "index": 7, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_id": {"type": "bigint", "index": 8, "name": "campaign_id", "comment": null}, "campaign_lifetime_spend_cap": {"type": "integer", "index": 9, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "text", "index": 10, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 11, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "integer", "index": 12, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 13, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "double precision", "index": 14, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 15, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "double precision", "index": 16, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "double precision", "index": 17, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 18, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "double precision", "index": 19, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 20, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 21, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 22, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 23, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 24, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 25, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "integer", "index": 26, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "double precision", "index": 27, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "integer", "index": 28, "name": "total_impression_user", "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.pinterest_source.stg_pinterest_ads__ad_group_report_tmp"}, "model.pinterest_source.stg_pinterest_ads__advertiser_history": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__advertiser_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"advertiser_id": {"type": "bigint", "index": 1, "name": "advertiser_id", "comment": null}, "advertiser_name": {"type": "text", "index": 2, "name": "advertiser_name", "comment": null}, "advertiser_status": {"type": "text", "index": 3, "name": "advertiser_status", "comment": null}, "billing_profile_status": {"type": "text", "index": 4, "name": "billing_profile_status", "comment": null}, "billing_type": {"type": "text", "index": 5, "name": "billing_type", "comment": null}, "country": {"type": "text", "index": 6, "name": "country", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 7, "name": "created_at", "comment": null}, "currency_code": {"type": "text", "index": 8, "name": "currency_code", "comment": null}, "merchant_id": {"type": "integer", "index": 9, "name": "merchant_id", "comment": null}, "owner_user_id": {"type": "integer", "index": 10, "name": "owner_user_id", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 11, "name": "updated_at", "comment": null}, "is_most_recent_record": {"type": "boolean", "index": 12, "name": "is_most_recent_record", "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.pinterest_source.stg_pinterest_ads__advertiser_history"}, "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp": {"metadata": {"type": "VIEW", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__advertiser_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "updated_time": {"type": "timestamp without time zone", "index": 2, "name": "updated_time", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "billing_profile_status": {"type": "text", "index": 4, "name": "billing_profile_status", "comment": null}, "billing_type": {"type": "text", "index": 5, "name": "billing_type", "comment": null}, "country": {"type": "text", "index": 6, "name": "country", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 7, "name": "created_time", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "merchant_id": {"type": "integer", "index": 9, "name": "merchant_id", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "owner_user_id": {"type": "integer", "index": 11, "name": "owner_user_id", "comment": null}, "status": {"type": "text", "index": 12, "name": "status", "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.pinterest_source.stg_pinterest_ads__advertiser_history_tmp"}, "model.pinterest_source.stg_pinterest_ads__advertiser_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__advertiser_report", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "comment": null}, "advertiser_id": {"type": "bigint", "index": 2, "name": "advertiser_id", "comment": null}, "impressions": {"type": "integer", "index": 3, "name": "impressions", "comment": null}, "clicks": {"type": "integer", "index": 4, "name": "clicks", "comment": null}, "spend": {"type": "numeric", "index": 5, "name": "spend", "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.pinterest_source.stg_pinterest_ads__advertiser_report"}, "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp": {"metadata": {"type": "VIEW", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__advertiser_report_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"advertiser_id": {"type": "bigint", "index": 1, "name": "advertiser_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 2, "name": "date", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "clickthrough_1": {"type": "integer", "index": 4, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 5, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "double precision", "index": 6, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 7, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "double precision", "index": 8, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "double precision", "index": 9, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 10, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "double precision", "index": 11, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 12, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 13, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 14, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 15, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 16, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 17, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "integer", "index": 18, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "double precision", "index": 19, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "integer", "index": 20, "name": "total_impression_user", "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.pinterest_source.stg_pinterest_ads__advertiser_report_tmp"}, "model.pinterest_source.stg_pinterest_ads__campaign_history": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__campaign_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_id": {"type": "bigint", "index": 1, "name": "campaign_id", "comment": null}, "campaign_name": {"type": "text", "index": 2, "name": "campaign_name", "comment": null}, "advertiser_id": {"type": "bigint", "index": 3, "name": "advertiser_id", "comment": null}, "campaign_status": {"type": "text", "index": 4, "name": "campaign_status", "comment": null}, "_fivetran_synced": {"type": "text", "index": 5, "name": "_fivetran_synced", "comment": null}, "created_at": {"type": "text", "index": 6, "name": "created_at", "comment": null}, "is_most_recent_record": {"type": "boolean", "index": 7, "name": "is_most_recent_record", "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.pinterest_source.stg_pinterest_ads__campaign_history"}, "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp": {"metadata": {"type": "VIEW", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__campaign_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "created_time": {"type": "text", "index": 2, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 3, "name": "name", "comment": null}, "status": {"type": "text", "index": 4, "name": "status", "comment": null}, "_fivetran_synced": {"type": "text", "index": 5, "name": "_fivetran_synced", "comment": null}, "advertiser_id": {"type": "bigint", "index": 6, "name": "advertiser_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.pinterest_source.stg_pinterest_ads__campaign_history_tmp"}, "model.pinterest_source.stg_pinterest_ads__campaign_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__campaign_report", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "comment": null}, "campaign_id": {"type": "bigint", "index": 2, "name": "campaign_id", "comment": null}, "campaign_name": {"type": "text", "index": 3, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 4, "name": "campaign_status", "comment": null}, "advertiser_id": {"type": "bigint", "index": 5, "name": "advertiser_id", "comment": null}, "impressions": {"type": "integer", "index": 6, "name": "impressions", "comment": null}, "clicks": {"type": "integer", "index": 7, "name": "clicks", "comment": null}, "spend": {"type": "numeric", "index": 8, "name": "spend", "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.pinterest_source.stg_pinterest_ads__campaign_report"}, "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp": {"metadata": {"type": "VIEW", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__campaign_report_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"advertiser_id": {"type": "bigint", "index": 1, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "bigint", "index": 2, "name": "campaign_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 3, "name": "date", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "campaign_daily_spend_cap": {"type": "integer", "index": 5, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "integer", "index": 6, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "text", "index": 7, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 8, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "integer", "index": 9, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 10, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "double precision", "index": 11, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 12, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "double precision", "index": 13, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "double precision", "index": 14, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 15, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "double precision", "index": 16, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 17, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 18, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 19, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 20, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 21, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 22, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "integer", "index": 23, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "double precision", "index": 24, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "integer", "index": 25, "name": "total_impression_user", "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.pinterest_source.stg_pinterest_ads__campaign_report_tmp"}, "model.pinterest_source.stg_pinterest_ads__keyword_history": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__keyword_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"keyword_id": {"type": "bigint", "index": 1, "name": "keyword_id", "comment": null}, "keyword_value": {"type": "text", "index": 2, "name": "keyword_value", "comment": null}, "_fivetran_id": {"type": "text", "index": 3, "name": "_fivetran_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "ad_group_id": {"type": "bigint", "index": 5, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 6, "name": "advertiser_id", "comment": null}, "archived": {"type": "boolean", "index": 7, "name": "archived", "comment": null}, "bid": {"type": "integer", "index": 8, "name": "bid", "comment": null}, "campaign_id": {"type": "bigint", "index": 9, "name": "campaign_id", "comment": null}, "match_type": {"type": "text", "index": 10, "name": "match_type", "comment": null}, "parent_type": {"type": "text", "index": 11, "name": "parent_type", "comment": null}, "is_most_recent_record": {"type": "boolean", "index": 12, "name": "is_most_recent_record", "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.pinterest_source.stg_pinterest_ads__keyword_history"}, "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp": {"metadata": {"type": "VIEW", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__keyword_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_id": {"type": "text", "index": 1, "name": "_fivetran_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "ad_group_id": {"type": "bigint", "index": 3, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 4, "name": "advertiser_id", "comment": null}, "archived": {"type": "boolean", "index": 5, "name": "archived", "comment": null}, "bid": {"type": "integer", "index": 6, "name": "bid", "comment": null}, "campaign_id": {"type": "bigint", "index": 7, "name": "campaign_id", "comment": null}, "id": {"type": "bigint", "index": 8, "name": "id", "comment": null}, "match_type": {"type": "text", "index": 9, "name": "match_type", "comment": null}, "parent_type": {"type": "text", "index": 10, "name": "parent_type", "comment": null}, "value": {"type": "text", "index": 11, "name": "value", "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.pinterest_source.stg_pinterest_ads__keyword_history_tmp"}, "model.pinterest_source.stg_pinterest_ads__keyword_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__keyword_report", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "comment": null}, "keyword_id": {"type": "bigint", "index": 2, "name": "keyword_id", "comment": null}, "pin_promotion_id": {"type": "bigint", "index": 3, "name": "pin_promotion_id", "comment": null}, "ad_group_id": {"type": "bigint", "index": 4, "name": "ad_group_id", "comment": null}, "ad_group_name": {"type": "text", "index": 5, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "text", "index": 6, "name": "ad_group_status", "comment": null}, "campaign_id": {"type": "bigint", "index": 7, "name": "campaign_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 8, "name": "advertiser_id", "comment": null}, "impressions": {"type": "integer", "index": 9, "name": "impressions", "comment": null}, "clicks": {"type": "integer", "index": 10, "name": "clicks", "comment": null}, "spend": {"type": "numeric", "index": 11, "name": "spend", "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.pinterest_source.stg_pinterest_ads__keyword_report"}, "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp": {"metadata": {"type": "VIEW", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__keyword_report_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"ad_group_id": {"type": "bigint", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 2, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "bigint", "index": 3, "name": "campaign_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 4, "name": "date", "comment": null}, "keyword_id": {"type": "bigint", "index": 5, "name": "keyword_id", "comment": null}, "pin_id": {"type": "bigint", "index": 6, "name": "pin_id", "comment": null}, "pin_promotion_id": {"type": "bigint", "index": 7, "name": "pin_promotion_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 8, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "text", "index": 9, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "text", "index": 10, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "integer", "index": 11, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "integer", "index": 12, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "text", "index": 13, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 14, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "integer", "index": 15, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 16, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "integer", "index": 17, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 18, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "integer", "index": 19, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "integer", "index": 20, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 21, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "integer", "index": 22, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 23, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 24, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 25, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 26, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 27, "name": "paid_impression", "comment": null}, "pin_promotion_name": {"type": "text", "index": 28, "name": "pin_promotion_name", "comment": null}, "pin_promotion_status": {"type": "text", "index": 29, "name": "pin_promotion_status", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 30, "name": "spend_in_micro_dollar", "comment": null}, "targeting_type": {"type": "text", "index": 31, "name": "targeting_type", "comment": null}, "targeting_value": {"type": "text", "index": 32, "name": "targeting_value", "comment": null}, "total_engagement": {"type": "integer", "index": 33, "name": "total_engagement", "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.pinterest_source.stg_pinterest_ads__keyword_report_tmp"}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_history": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"pin_promotion_id": {"type": "bigint", "index": 1, "name": "pin_promotion_id", "comment": null}, "ad_group_id": {"type": "bigint", "index": 2, "name": "ad_group_id", "comment": null}, "created_at": {"type": "text", "index": 3, "name": "created_at", "comment": null}, "destination_url": {"type": "text", "index": 4, "name": "destination_url", "comment": null}, "base_url": {"type": "text", "index": 5, "name": "base_url", "comment": null}, "url_host": {"type": "text", "index": 6, "name": "url_host", "comment": null}, "url_path": {"type": "text", "index": 7, "name": "url_path", "comment": null}, "utm_source": {"type": "text", "index": 8, "name": "utm_source", "comment": null}, "utm_medium": {"type": "text", "index": 9, "name": "utm_medium", "comment": null}, "utm_campaign": {"type": "text", "index": 10, "name": "utm_campaign", "comment": null}, "utm_content": {"type": "text", "index": 11, "name": "utm_content", "comment": null}, "utm_term": {"type": "text", "index": 12, "name": "utm_term", "comment": null}, "pin_name": {"type": "text", "index": 13, "name": "pin_name", "comment": null}, "pin_id": {"type": "bigint", "index": 14, "name": "pin_id", "comment": null}, "pin_status": {"type": "text", "index": 15, "name": "pin_status", "comment": null}, "creative_type": {"type": "text", "index": 16, "name": "creative_type", "comment": null}, "_fivetran_synced": {"type": "text", "index": 17, "name": "_fivetran_synced", "comment": null}, "is_most_recent_record": {"type": "boolean", "index": 18, "name": "is_most_recent_record", "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.pinterest_source.stg_pinterest_ads__pin_promotion_history"}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp": {"metadata": {"type": "VIEW", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "ad_group_id": {"type": "bigint", "index": 2, "name": "ad_group_id", "comment": null}, "created_time": {"type": "text", "index": 3, "name": "created_time", "comment": null}, "destination_url": {"type": "text", "index": 4, "name": "destination_url", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "pin_id": {"type": "bigint", "index": 6, "name": "pin_id", "comment": null}, "status": {"type": "text", "index": 7, "name": "status", "comment": null}, "creative_type": {"type": "text", "index": 8, "name": "creative_type", "comment": null}, "_fivetran_synced": {"type": "text", "index": 9, "name": "_fivetran_synced", "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.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp"}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_report", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "comment": null}, "pin_promotion_id": {"type": "bigint", "index": 2, "name": "pin_promotion_id", "comment": null}, "ad_group_id": {"type": "bigint", "index": 3, "name": "ad_group_id", "comment": null}, "campaign_id": {"type": "bigint", "index": 4, "name": "campaign_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 5, "name": "advertiser_id", "comment": null}, "impressions": {"type": "integer", "index": 6, "name": "impressions", "comment": null}, "clicks": {"type": "integer", "index": 7, "name": "clicks", "comment": null}, "spend": {"type": "numeric", "index": 8, "name": "spend", "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.pinterest_source.stg_pinterest_ads__pin_promotion_report"}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp": {"metadata": {"type": "VIEW", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_report_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date": {"type": "timestamp without time zone", "index": 1, "name": "date", "comment": null}, "pin_promotion_id": {"type": "bigint", "index": 2, "name": "pin_promotion_id", "comment": null}, "ad_group_id": {"type": "bigint", "index": 3, "name": "ad_group_id", "comment": null}, "campaign_id": {"type": "bigint", "index": 4, "name": "campaign_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 5, "name": "advertiser_id", "comment": null}, "_fivetran_synced": {"type": "text", "index": 6, "name": "_fivetran_synced", "comment": null}, "impression_1": {"type": "integer", "index": 7, "name": "impression_1", "comment": null}, "impression_2": {"type": "integer", "index": 8, "name": "impression_2", "comment": null}, "clickthrough_1": {"type": "integer", "index": 9, "name": "clickthrough_1", "comment": null}, "clickthrough_2": {"type": "integer", "index": 10, "name": "clickthrough_2", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 11, "name": "spend_in_micro_dollar", "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.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp"}}, "sources": {"source.pinterest_source.pinterest_ads.ad_group_history": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "ad_group_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "campaign_id": {"type": "bigint", "index": 2, "name": "campaign_id", "comment": null}, "created_time": {"type": "text", "index": 3, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 4, "name": "name", "comment": null}, "status": {"type": "text", "index": 5, "name": "status", "comment": null}, "start_time": {"type": "text", "index": 6, "name": "start_time", "comment": null}, "end_time": {"type": "integer", "index": 7, "name": "end_time", "comment": null}, "_fivetran_synced": {"type": "text", "index": 8, "name": "_fivetran_synced", "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.pinterest_source.pinterest_ads.ad_group_history"}, "source.pinterest_source.pinterest_ads.ad_group_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "ad_group_report_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"ad_group_id": {"type": "bigint", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 2, "name": "advertiser_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 3, "name": "date", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "text", "index": 5, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "text", "index": 6, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "integer", "index": 7, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_id": {"type": "bigint", "index": 8, "name": "campaign_id", "comment": null}, "campaign_lifetime_spend_cap": {"type": "integer", "index": 9, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "text", "index": 10, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 11, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "integer", "index": 12, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 13, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "double precision", "index": 14, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 15, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "double precision", "index": 16, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "double precision", "index": 17, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 18, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "double precision", "index": 19, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 20, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 21, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 22, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 23, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 24, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 25, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "integer", "index": 26, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "double precision", "index": 27, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "integer", "index": 28, "name": "total_impression_user", "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.pinterest_source.pinterest_ads.ad_group_report"}, "source.pinterest_source.pinterest_ads.advertiser_history": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "advertiser_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "updated_time": {"type": "timestamp without time zone", "index": 2, "name": "updated_time", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "billing_profile_status": {"type": "text", "index": 4, "name": "billing_profile_status", "comment": null}, "billing_type": {"type": "text", "index": 5, "name": "billing_type", "comment": null}, "country": {"type": "text", "index": 6, "name": "country", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 7, "name": "created_time", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "merchant_id": {"type": "integer", "index": 9, "name": "merchant_id", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "owner_user_id": {"type": "integer", "index": 11, "name": "owner_user_id", "comment": null}, "status": {"type": "text", "index": 12, "name": "status", "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.pinterest_source.pinterest_ads.advertiser_history"}, "source.pinterest_source.pinterest_ads.advertiser_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "advertiser_report_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"advertiser_id": {"type": "bigint", "index": 1, "name": "advertiser_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 2, "name": "date", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "clickthrough_1": {"type": "integer", "index": 4, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 5, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "double precision", "index": 6, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 7, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "double precision", "index": 8, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "double precision", "index": 9, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 10, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "double precision", "index": 11, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 12, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 13, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 14, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 15, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 16, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 17, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "integer", "index": 18, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "double precision", "index": 19, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "integer", "index": 20, "name": "total_impression_user", "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.pinterest_source.pinterest_ads.advertiser_report"}, "source.pinterest_source.pinterest_ads.campaign_history": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "campaign_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "created_time": {"type": "text", "index": 2, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 3, "name": "name", "comment": null}, "status": {"type": "text", "index": 4, "name": "status", "comment": null}, "_fivetran_synced": {"type": "text", "index": 5, "name": "_fivetran_synced", "comment": null}, "advertiser_id": {"type": "bigint", "index": 6, "name": "advertiser_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.pinterest_source.pinterest_ads.campaign_history"}, "source.pinterest_source.pinterest_ads.campaign_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "campaign_report_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"advertiser_id": {"type": "bigint", "index": 1, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "bigint", "index": 2, "name": "campaign_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 3, "name": "date", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "campaign_daily_spend_cap": {"type": "integer", "index": 5, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "integer", "index": 6, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "text", "index": 7, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 8, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "integer", "index": 9, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 10, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "double precision", "index": 11, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 12, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "double precision", "index": 13, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "double precision", "index": 14, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 15, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "double precision", "index": 16, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 17, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 18, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 19, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 20, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 21, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 22, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "integer", "index": 23, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "double precision", "index": 24, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "integer", "index": 25, "name": "total_impression_user", "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.pinterest_source.pinterest_ads.campaign_report"}, "source.pinterest_source.pinterest_ads.keyword_history": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "keyword_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_id": {"type": "text", "index": 1, "name": "_fivetran_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "ad_group_id": {"type": "bigint", "index": 3, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 4, "name": "advertiser_id", "comment": null}, "archived": {"type": "boolean", "index": 5, "name": "archived", "comment": null}, "bid": {"type": "integer", "index": 6, "name": "bid", "comment": null}, "campaign_id": {"type": "bigint", "index": 7, "name": "campaign_id", "comment": null}, "id": {"type": "bigint", "index": 8, "name": "id", "comment": null}, "match_type": {"type": "text", "index": 9, "name": "match_type", "comment": null}, "parent_type": {"type": "text", "index": 10, "name": "parent_type", "comment": null}, "value": {"type": "text", "index": 11, "name": "value", "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.pinterest_source.pinterest_ads.keyword_history"}, "source.pinterest_source.pinterest_ads.keyword_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "keyword_report_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"ad_group_id": {"type": "bigint", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 2, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "bigint", "index": 3, "name": "campaign_id", "comment": null}, "date": {"type": "timestamp without time zone", "index": 4, "name": "date", "comment": null}, "keyword_id": {"type": "bigint", "index": 5, "name": "keyword_id", "comment": null}, "pin_id": {"type": "bigint", "index": 6, "name": "pin_id", "comment": null}, "pin_promotion_id": {"type": "bigint", "index": 7, "name": "pin_promotion_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 8, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "text", "index": 9, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "text", "index": 10, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "integer", "index": 11, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "integer", "index": 12, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "text", "index": 13, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "text", "index": 14, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "integer", "index": 15, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "integer", "index": 16, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "integer", "index": 17, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "double precision", "index": 18, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "integer", "index": 19, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "integer", "index": 20, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "double precision", "index": 21, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "integer", "index": 22, "name": "ectr", "comment": null}, "engagement_1": {"type": "integer", "index": 23, "name": "engagement_1", "comment": null}, "impression_1": {"type": "integer", "index": 24, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "integer", "index": 25, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "integer", "index": 26, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "integer", "index": 27, "name": "paid_impression", "comment": null}, "pin_promotion_name": {"type": "text", "index": 28, "name": "pin_promotion_name", "comment": null}, "pin_promotion_status": {"type": "text", "index": 29, "name": "pin_promotion_status", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 30, "name": "spend_in_micro_dollar", "comment": null}, "targeting_type": {"type": "text", "index": 31, "name": "targeting_type", "comment": null}, "targeting_value": {"type": "text", "index": 32, "name": "targeting_value", "comment": null}, "total_engagement": {"type": "integer", "index": 33, "name": "total_engagement", "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.pinterest_source.pinterest_ads.keyword_report"}, "source.pinterest_source.pinterest_ads.pin_promotion_history": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "pin_promotion_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "ad_group_id": {"type": "bigint", "index": 2, "name": "ad_group_id", "comment": null}, "created_time": {"type": "text", "index": 3, "name": "created_time", "comment": null}, "destination_url": {"type": "text", "index": 4, "name": "destination_url", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "pin_id": {"type": "bigint", "index": 6, "name": "pin_id", "comment": null}, "status": {"type": "text", "index": 7, "name": "status", "comment": null}, "creative_type": {"type": "text", "index": 8, "name": "creative_type", "comment": null}, "_fivetran_synced": {"type": "text", "index": 9, "name": "_fivetran_synced", "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.pinterest_source.pinterest_ads.pin_promotion_history"}, "source.pinterest_source.pinterest_ads.pin_promotion_report": {"metadata": {"type": "BASE TABLE", "schema": "pinterest_integration_tests_3", "name": "pin_promotion_report_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date": {"type": "timestamp without time zone", "index": 1, "name": "date", "comment": null}, "pin_promotion_id": {"type": "bigint", "index": 2, "name": "pin_promotion_id", "comment": null}, "ad_group_id": {"type": "bigint", "index": 3, "name": "ad_group_id", "comment": null}, "campaign_id": {"type": "bigint", "index": 4, "name": "campaign_id", "comment": null}, "advertiser_id": {"type": "bigint", "index": 5, "name": "advertiser_id", "comment": null}, "_fivetran_synced": {"type": "text", "index": 6, "name": "_fivetran_synced", "comment": null}, "impression_1": {"type": "integer", "index": 7, "name": "impression_1", "comment": null}, "impression_2": {"type": "integer", "index": 8, "name": "impression_2", "comment": null}, "clickthrough_1": {"type": "integer", "index": 9, "name": "clickthrough_1", "comment": null}, "clickthrough_2": {"type": "integer", "index": 10, "name": "clickthrough_2", "comment": null}, "spend_in_micro_dollar": {"type": "integer", "index": 11, "name": "spend_in_micro_dollar", "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.pinterest_source.pinterest_ads.pin_promotion_report"}}, "errors": null} \ No newline at end of file +{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json", "dbt_version": "1.4.5", "generated_at": "2023-07-26T14:34:44.083821Z", "invocation_id": "a8e7ad3b-45b1-4962-ba03-4f15fdffe4f8", "env": {}}, "nodes": {"model.pinterest.pinterest_ads__ad_group_report": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__ad_group_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "TIMESTAMP", "index": 1, "name": "date_day", "comment": null}, "advertiser_name": {"type": "STRING", "index": 2, "name": "advertiser_name", "comment": null}, "advertiser_id": {"type": "STRING", "index": 3, "name": "advertiser_id", "comment": null}, "campaign_name": {"type": "STRING", "index": 4, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 5, "name": "campaign_status", "comment": null}, "campaign_id": {"type": "STRING", "index": 6, "name": "campaign_id", "comment": null}, "ad_group_name": {"type": "STRING", "index": 7, "name": "ad_group_name", "comment": null}, "ad_group_id": {"type": "STRING", "index": 8, "name": "ad_group_id", "comment": null}, "created_at": {"type": "TIMESTAMP", "index": 9, "name": "created_at", "comment": null}, "start_time": {"type": "TIMESTAMP", "index": 10, "name": "start_time", "comment": null}, "end_time": {"type": "TIMESTAMP", "index": 11, "name": "end_time", "comment": null}, "ad_group_status": {"type": "STRING", "index": 12, "name": "ad_group_status", "comment": null}, "spend": {"type": "FLOAT64", "index": 13, "name": "spend", "comment": null}, "clicks": {"type": "INT64", "index": 14, "name": "clicks", "comment": null}, "impressions": {"type": "INT64", "index": 15, "name": "impressions", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 1820.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest.pinterest_ads__ad_group_report"}, "model.pinterest.pinterest_ads__advertiser_report": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__advertiser_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "TIMESTAMP", "index": 1, "name": "date_day", "comment": null}, "advertiser_name": {"type": "STRING", "index": 2, "name": "advertiser_name", "comment": null}, "advertiser_id": {"type": "STRING", "index": 3, "name": "advertiser_id", "comment": null}, "currency_code": {"type": "STRING", "index": 4, "name": "currency_code", "comment": null}, "country": {"type": "STRING", "index": 5, "name": "country", "comment": null}, "spend": {"type": "FLOAT64", "index": 6, "name": "spend", "comment": null}, "clicks": {"type": "INT64", "index": 7, "name": "clicks", "comment": null}, "impressions": {"type": "INT64", "index": 8, "name": "impressions", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 740.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest.pinterest_ads__advertiser_report"}, "model.pinterest.pinterest_ads__campaign_report": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__campaign_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "TIMESTAMP", "index": 1, "name": "date_day", "comment": null}, "advertiser_name": {"type": "STRING", "index": 2, "name": "advertiser_name", "comment": null}, "advertiser_id": {"type": "STRING", "index": 3, "name": "advertiser_id", "comment": null}, "campaign_name": {"type": "STRING", "index": 4, "name": "campaign_name", "comment": null}, "campaign_id": {"type": "STRING", "index": 5, "name": "campaign_id", "comment": null}, "campaign_status": {"type": "STRING", "index": 6, "name": "campaign_status", "comment": null}, "spend": {"type": "FLOAT64", "index": 7, "name": "spend", "comment": null}, "clicks": {"type": "INT64", "index": 8, "name": "clicks", "comment": null}, "impressions": {"type": "INT64", "index": 9, "name": "impressions", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 1180.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest.pinterest_ads__campaign_report"}, "model.pinterest.pinterest_ads__url_report": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__url_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "TIMESTAMP", "index": 1, "name": "date_day", "comment": null}, "advertiser_id": {"type": "STRING", "index": 2, "name": "advertiser_id", "comment": null}, "advertiser_name": {"type": "STRING", "index": 3, "name": "advertiser_name", "comment": null}, "campaign_id": {"type": "STRING", "index": 4, "name": "campaign_id", "comment": null}, "campaign_name": {"type": "STRING", "index": 5, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 6, "name": "campaign_status", "comment": null}, "ad_group_id": {"type": "STRING", "index": 7, "name": "ad_group_id", "comment": null}, "ad_group_name": {"type": "STRING", "index": 8, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "STRING", "index": 9, "name": "ad_group_status", "comment": null}, "destination_url": {"type": "STRING", "index": 10, "name": "destination_url", "comment": null}, "creative_type": {"type": "STRING", "index": 11, "name": "creative_type", "comment": null}, "pin_promotion_id": {"type": "STRING", "index": 12, "name": "pin_promotion_id", "comment": null}, "pin_name": {"type": "STRING", "index": 13, "name": "pin_name", "comment": null}, "pin_status": {"type": "STRING", "index": 14, "name": "pin_status", "comment": null}, "base_url": {"type": "STRING", "index": 15, "name": "base_url", "comment": null}, "url_host": {"type": "STRING", "index": 16, "name": "url_host", "comment": null}, "url_path": {"type": "STRING", "index": 17, "name": "url_path", "comment": null}, "utm_source": {"type": "STRING", "index": 18, "name": "utm_source", "comment": null}, "utm_medium": {"type": "STRING", "index": 19, "name": "utm_medium", "comment": null}, "utm_campaign": {"type": "STRING", "index": 20, "name": "utm_campaign", "comment": null}, "utm_content": {"type": "STRING", "index": 21, "name": "utm_content", "comment": null}, "utm_term": {"type": "STRING", "index": 22, "name": "utm_term", "comment": null}, "clicks": {"type": "NUMERIC", "index": 23, "name": "clicks", "comment": null}, "impressions": {"type": "NUMERIC", "index": 24, "name": "impressions", "comment": null}, "spend": {"type": "FLOAT64", "index": 25, "name": "spend", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 3370.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest.pinterest_ads__url_report"}, "model.pinterest.pinterest_ads__keyword_report": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__keyword_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "TIMESTAMP", "index": 1, "name": "date_day", "comment": null}, "advertiser_name": {"type": "STRING", "index": 2, "name": "advertiser_name", "comment": null}, "advertiser_id": {"type": "STRING", "index": 3, "name": "advertiser_id", "comment": null}, "campaign_name": {"type": "STRING", "index": 4, "name": "campaign_name", "comment": null}, "campaign_id": {"type": "STRING", "index": 5, "name": "campaign_id", "comment": null}, "ad_group_name": {"type": "STRING", "index": 6, "name": "ad_group_name", "comment": null}, "ad_group_id": {"type": "STRING", "index": 7, "name": "ad_group_id", "comment": null}, "keyword_id": {"type": "STRING", "index": 8, "name": "keyword_id", "comment": null}, "match_type": {"type": "STRING", "index": 9, "name": "match_type", "comment": null}, "parent_type": {"type": "STRING", "index": 10, "name": "parent_type", "comment": null}, "keyword_value": {"type": "STRING", "index": 11, "name": "keyword_value", "comment": null}, "spend": {"type": "FLOAT64", "index": 12, "name": "spend", "comment": null}, "clicks": {"type": "INT64", "index": 13, "name": "clicks", "comment": null}, "impressions": {"type": "INT64", "index": 14, "name": "impressions", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 41.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 8239.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest.pinterest_ads__keyword_report"}, "model.pinterest.pinterest_ads__pin_promotion_report": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__pin_promotion_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "TIMESTAMP", "index": 1, "name": "date_day", "comment": null}, "advertiser_id": {"type": "STRING", "index": 2, "name": "advertiser_id", "comment": null}, "advertiser_name": {"type": "STRING", "index": 3, "name": "advertiser_name", "comment": null}, "campaign_id": {"type": "STRING", "index": 4, "name": "campaign_id", "comment": null}, "campaign_name": {"type": "STRING", "index": 5, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 6, "name": "campaign_status", "comment": null}, "ad_group_id": {"type": "STRING", "index": 7, "name": "ad_group_id", "comment": null}, "ad_group_name": {"type": "STRING", "index": 8, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "STRING", "index": 9, "name": "ad_group_status", "comment": null}, "creative_type": {"type": "STRING", "index": 10, "name": "creative_type", "comment": null}, "pin_promotion_id": {"type": "STRING", "index": 11, "name": "pin_promotion_id", "comment": null}, "pin_name": {"type": "STRING", "index": 12, "name": "pin_name", "comment": null}, "pin_status": {"type": "STRING", "index": 13, "name": "pin_status", "comment": null}, "destination_url": {"type": "STRING", "index": 14, "name": "destination_url", "comment": null}, "base_url": {"type": "STRING", "index": 15, "name": "base_url", "comment": null}, "clicks": {"type": "NUMERIC", "index": 16, "name": "clicks", "comment": null}, "impressions": {"type": "NUMERIC", "index": 17, "name": "impressions", "comment": null}, "spend": {"type": "FLOAT64", "index": 18, "name": "spend", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 3130.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest.pinterest_ads__pin_promotion_report"}, "model.pinterest_source.stg_pinterest_ads__advertiser_history": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__advertiser_history", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"advertiser_id": {"type": "STRING", "index": 1, "name": "advertiser_id", "comment": null}, "advertiser_name": {"type": "STRING", "index": 2, "name": "advertiser_name", "comment": null}, "advertiser_status": {"type": "STRING", "index": 3, "name": "advertiser_status", "comment": null}, "billing_profile_status": {"type": "STRING", "index": 4, "name": "billing_profile_status", "comment": null}, "billing_type": {"type": "STRING", "index": 5, "name": "billing_type", "comment": null}, "country": {"type": "STRING", "index": 6, "name": "country", "comment": null}, "created_at": {"type": "TIMESTAMP", "index": 7, "name": "created_at", "comment": null}, "currency_code": {"type": "STRING", "index": 8, "name": "currency_code", "comment": null}, "merchant_id": {"type": "STRING", "index": 9, "name": "merchant_id", "comment": null}, "owner_user_id": {"type": "STRING", "index": 10, "name": "owner_user_id", "comment": null}, "updated_at": {"type": "TIMESTAMP", "index": 11, "name": "updated_at", "comment": null}, "is_most_recent_record": {"type": "BOOL", "index": 12, "name": "is_most_recent_record", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 2.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 187.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_history"}, "model.pinterest_source.stg_pinterest_ads__campaign_history": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__campaign_history", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"campaign_id": {"type": "STRING", "index": 1, "name": "campaign_id", "comment": null}, "campaign_name": {"type": "STRING", "index": 2, "name": "campaign_name", "comment": null}, "advertiser_id": {"type": "STRING", "index": 3, "name": "advertiser_id", "comment": null}, "campaign_status": {"type": "STRING", "index": 4, "name": "campaign_status", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 5, "name": "_fivetran_synced", "comment": null}, "created_at": {"type": "TIMESTAMP", "index": 6, "name": "created_at", "comment": null}, "is_most_recent_record": {"type": "BOOL", "index": 7, "name": "is_most_recent_record", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 1.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 84.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_history"}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_report": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "TIMESTAMP", "index": 1, "name": "date_day", "comment": null}, "pin_promotion_id": {"type": "STRING", "index": 2, "name": "pin_promotion_id", "comment": null}, "ad_group_id": {"type": "STRING", "index": 3, "name": "ad_group_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 4, "name": "campaign_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 5, "name": "advertiser_id", "comment": null}, "impressions": {"type": "NUMERIC", "index": 6, "name": "impressions", "comment": null}, "clicks": {"type": "NUMERIC", "index": 7, "name": "clicks", "comment": null}, "spend": {"type": "FLOAT64", "index": 8, "name": "spend", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 1050.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_report"}, "model.pinterest_source.stg_pinterest_ads__keyword_report": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__keyword_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "TIMESTAMP", "index": 1, "name": "date_day", "comment": null}, "keyword_id": {"type": "STRING", "index": 2, "name": "keyword_id", "comment": null}, "pin_promotion_id": {"type": "STRING", "index": 3, "name": "pin_promotion_id", "comment": null}, "ad_group_id": {"type": "STRING", "index": 4, "name": "ad_group_id", "comment": null}, "ad_group_name": {"type": "STRING", "index": 5, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "STRING", "index": 6, "name": "ad_group_status", "comment": null}, "campaign_id": {"type": "STRING", "index": 7, "name": "campaign_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 8, "name": "advertiser_id", "comment": null}, "impressions": {"type": "INT64", "index": 9, "name": "impressions", "comment": null}, "clicks": {"type": "INT64", "index": 10, "name": "clicks", "comment": null}, "spend": {"type": "FLOAT64", "index": 11, "name": "spend", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 41.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 6060.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_report"}, "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp": {"metadata": {"type": "view", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__ad_group_report_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"ad_group_id": {"type": "STRING", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 2, "name": "advertiser_id", "comment": null}, "date": {"type": "TIMESTAMP", "index": 3, "name": "date", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 4, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "STRING", "index": 5, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "STRING", "index": 6, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "INT64", "index": 7, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_id": {"type": "INT64", "index": 8, "name": "campaign_id", "comment": null}, "campaign_lifetime_spend_cap": {"type": "INT64", "index": 9, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "STRING", "index": 10, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 11, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "INT64", "index": 12, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "INT64", "index": 13, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "FLOAT64", "index": 14, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "FLOAT64", "index": 15, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "FLOAT64", "index": 16, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "FLOAT64", "index": 17, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "FLOAT64", "index": 18, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "FLOAT64", "index": 19, "name": "ectr", "comment": null}, "engagement_1": {"type": "INT64", "index": 20, "name": "engagement_1", "comment": null}, "impression_1": {"type": "INT64", "index": 21, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "INT64", "index": 22, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "INT64", "index": 23, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "INT64", "index": 24, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "INT64", "index": 25, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "INT64", "index": 26, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "FLOAT64", "index": 27, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "INT64", "index": 28, "name": "total_impression_user", "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.pinterest_source.stg_pinterest_ads__ad_group_report_tmp"}, "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp": {"metadata": {"type": "view", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__keyword_report_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"ad_group_id": {"type": "STRING", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 2, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 3, "name": "campaign_id", "comment": null}, "date": {"type": "TIMESTAMP", "index": 4, "name": "date", "comment": null}, "keyword_id": {"type": "STRING", "index": 5, "name": "keyword_id", "comment": null}, "pin_id": {"type": "STRING", "index": 6, "name": "pin_id", "comment": null}, "pin_promotion_id": {"type": "STRING", "index": 7, "name": "pin_promotion_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 8, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "STRING", "index": 9, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "STRING", "index": 10, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "INT64", "index": 11, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "INT64", "index": 12, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "STRING", "index": 13, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 14, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "INT64", "index": 15, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "INT64", "index": 16, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "FLOAT64", "index": 17, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "FLOAT64", "index": 18, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "FLOAT64", "index": 19, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "FLOAT64", "index": 20, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "FLOAT64", "index": 21, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "FLOAT64", "index": 22, "name": "ectr", "comment": null}, "engagement_1": {"type": "INT64", "index": 23, "name": "engagement_1", "comment": null}, "impression_1": {"type": "INT64", "index": 24, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "INT64", "index": 25, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "INT64", "index": 26, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "INT64", "index": 27, "name": "paid_impression", "comment": null}, "pin_promotion_name": {"type": "STRING", "index": 28, "name": "pin_promotion_name", "comment": null}, "pin_promotion_status": {"type": "STRING", "index": 29, "name": "pin_promotion_status", "comment": null}, "spend_in_micro_dollar": {"type": "INT64", "index": 30, "name": "spend_in_micro_dollar", "comment": null}, "targeting_type": {"type": "STRING", "index": 31, "name": "targeting_type", "comment": null}, "targeting_value": {"type": "STRING", "index": 32, "name": "targeting_value", "comment": null}, "total_engagement": {"type": "INT64", "index": 33, "name": "total_engagement", "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.pinterest_source.stg_pinterest_ads__keyword_report_tmp"}, "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp": {"metadata": {"type": "view", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__campaign_history_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "updated_time": {"type": "TIMESTAMP", "index": 2, "name": "updated_time", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "advertiser_id": {"type": "STRING", "index": 4, "name": "advertiser_id", "comment": null}, "campaign_budget_optimization_enabled": {"type": "BOOL", "index": 5, "name": "campaign_budget_optimization_enabled", "comment": null}, "created_time": {"type": "TIMESTAMP", "index": 6, "name": "created_time", "comment": null}, "daily_spend_cap": {"type": "INT64", "index": 7, "name": "daily_spend_cap", "comment": null}, "end_time": {"type": "TIMESTAMP", "index": 8, "name": "end_time", "comment": null}, "lifetime_spend_cap": {"type": "INT64", "index": 9, "name": "lifetime_spend_cap", "comment": null}, "name": {"type": "STRING", "index": 10, "name": "name", "comment": null}, "objective_type": {"type": "STRING", "index": 11, "name": "objective_type", "comment": null}, "order_line_id": {"type": "STRING", "index": 12, "name": "order_line_id", "comment": null}, "start_time": {"type": "TIMESTAMP", "index": 13, "name": "start_time", "comment": null}, "status": {"type": "STRING", "index": 14, "name": "status", "comment": null}, "summary_status": {"type": "STRING", "index": 15, "name": "summary_status", "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.pinterest_source.stg_pinterest_ads__campaign_history_tmp"}, "model.pinterest_source.stg_pinterest_ads__keyword_history": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__keyword_history", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"keyword_id": {"type": "STRING", "index": 1, "name": "keyword_id", "comment": null}, "keyword_value": {"type": "STRING", "index": 2, "name": "keyword_value", "comment": null}, "_fivetran_id": {"type": "STRING", "index": 3, "name": "_fivetran_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 4, "name": "_fivetran_synced", "comment": null}, "ad_group_id": {"type": "STRING", "index": 5, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 6, "name": "advertiser_id", "comment": null}, "archived": {"type": "BOOL", "index": 7, "name": "archived", "comment": null}, "bid": {"type": "INT64", "index": 8, "name": "bid", "comment": null}, "campaign_id": {"type": "STRING", "index": 9, "name": "campaign_id", "comment": null}, "match_type": {"type": "STRING", "index": 10, "name": "match_type", "comment": null}, "parent_type": {"type": "STRING", "index": 11, "name": "parent_type", "comment": null}, "is_most_recent_record": {"type": "BOOL", "index": 12, "name": "is_most_recent_record", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 967.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_history"}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_history": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_history", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"pin_promotion_id": {"type": "STRING", "index": 1, "name": "pin_promotion_id", "comment": null}, "ad_group_id": {"type": "STRING", "index": 2, "name": "ad_group_id", "comment": null}, "created_at": {"type": "TIMESTAMP", "index": 3, "name": "created_at", "comment": null}, "destination_url": {"type": "STRING", "index": 4, "name": "destination_url", "comment": null}, "base_url": {"type": "STRING", "index": 5, "name": "base_url", "comment": null}, "url_host": {"type": "STRING", "index": 6, "name": "url_host", "comment": null}, "url_path": {"type": "STRING", "index": 7, "name": "url_path", "comment": null}, "utm_source": {"type": "STRING", "index": 8, "name": "utm_source", "comment": null}, "utm_medium": {"type": "STRING", "index": 9, "name": "utm_medium", "comment": null}, "utm_campaign": {"type": "STRING", "index": 10, "name": "utm_campaign", "comment": null}, "utm_content": {"type": "STRING", "index": 11, "name": "utm_content", "comment": null}, "utm_term": {"type": "STRING", "index": 12, "name": "utm_term", "comment": null}, "pin_name": {"type": "STRING", "index": 13, "name": "pin_name", "comment": null}, "pin_id": {"type": "STRING", "index": 14, "name": "pin_id", "comment": null}, "pin_status": {"type": "STRING", "index": 15, "name": "pin_status", "comment": null}, "creative_type": {"type": "STRING", "index": 16, "name": "creative_type", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 17, "name": "_fivetran_synced", "comment": null}, "is_most_recent_record": {"type": "BOOL", "index": 18, "name": "is_most_recent_record", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 2.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 400.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_history"}, "model.pinterest_source.stg_pinterest_ads__advertiser_report": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__advertiser_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "TIMESTAMP", "index": 1, "name": "date_day", "comment": null}, "advertiser_id": {"type": "STRING", "index": 2, "name": "advertiser_id", "comment": null}, "impressions": {"type": "INT64", "index": 3, "name": "impressions", "comment": null}, "clicks": {"type": "INT64", "index": 4, "name": "clicks", "comment": null}, "spend": {"type": "FLOAT64", "index": 5, "name": "spend", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 460.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_report"}, "model.pinterest_source.stg_pinterest_ads__campaign_report": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__campaign_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "TIMESTAMP", "index": 1, "name": "date_day", "comment": null}, "campaign_id": {"type": "STRING", "index": 2, "name": "campaign_id", "comment": null}, "campaign_name": {"type": "STRING", "index": 3, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 4, "name": "campaign_status", "comment": null}, "advertiser_id": {"type": "STRING", "index": 5, "name": "advertiser_id", "comment": null}, "impressions": {"type": "INT64", "index": 6, "name": "impressions", "comment": null}, "clicks": {"type": "INT64", "index": 7, "name": "clicks", "comment": null}, "spend": {"type": "FLOAT64", "index": 8, "name": "spend", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 1020.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_report"}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp": {"metadata": {"type": "view", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_report_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"ad_group_id": {"type": "STRING", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 2, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 3, "name": "campaign_id", "comment": null}, "date": {"type": "TIMESTAMP", "index": 4, "name": "date", "comment": null}, "pin_promotion_id": {"type": "STRING", "index": 5, "name": "pin_promotion_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 6, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "STRING", "index": 7, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "STRING", "index": 8, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "INT64", "index": 9, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "INT64", "index": 10, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "STRING", "index": 11, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 12, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "INT64", "index": 13, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "INT64", "index": 14, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "FLOAT64", "index": 15, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "FLOAT64", "index": 16, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "FLOAT64", "index": 17, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "FLOAT64", "index": 18, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "FLOAT64", "index": 19, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "FLOAT64", "index": 20, "name": "ectr", "comment": null}, "engagement_1": {"type": "INT64", "index": 21, "name": "engagement_1", "comment": null}, "impression_1": {"type": "INT64", "index": 22, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "INT64", "index": 23, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "INT64", "index": 24, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "INT64", "index": 25, "name": "paid_impression", "comment": null}, "pin_id": {"type": "INT64", "index": 26, "name": "pin_id", "comment": null}, "pin_promotion_name": {"type": "STRING", "index": 27, "name": "pin_promotion_name", "comment": null}, "pin_promotion_status": {"type": "STRING", "index": 28, "name": "pin_promotion_status", "comment": null}, "spend_in_micro_dollar": {"type": "INT64", "index": 29, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "INT64", "index": 30, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "FLOAT64", "index": 31, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "INT64", "index": 32, "name": "total_impression_user", "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.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp"}, "model.pinterest_source.stg_pinterest_ads__ad_group_history": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__ad_group_history", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"ad_group_id": {"type": "STRING", "index": 1, "name": "ad_group_id", "comment": null}, "ad_group_name": {"type": "STRING", "index": 2, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "STRING", "index": 3, "name": "ad_group_status", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 4, "name": "_fivetran_synced", "comment": null}, "campaign_id": {"type": "STRING", "index": 5, "name": "campaign_id", "comment": null}, "created_at": {"type": "TIMESTAMP", "index": 6, "name": "created_at", "comment": null}, "end_time": {"type": "TIMESTAMP", "index": 7, "name": "end_time", "comment": null}, "start_time": {"type": "TIMESTAMP", "index": 8, "name": "start_time", "comment": null}, "is_most_recent_record": {"type": "BOOL", "index": 9, "name": "is_most_recent_record", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 1.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 87.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_history"}, "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp": {"metadata": {"type": "view", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__keyword_history_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"_fivetran_id": {"type": "STRING", "index": 1, "name": "_fivetran_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 2, "name": "_fivetran_synced", "comment": null}, "ad_group_id": {"type": "STRING", "index": 3, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 4, "name": "advertiser_id", "comment": null}, "archived": {"type": "BOOL", "index": 5, "name": "archived", "comment": null}, "bid": {"type": "INT64", "index": 6, "name": "bid", "comment": null}, "campaign_id": {"type": "STRING", "index": 7, "name": "campaign_id", "comment": null}, "id": {"type": "STRING", "index": 8, "name": "id", "comment": null}, "match_type": {"type": "STRING", "index": 9, "name": "match_type", "comment": null}, "parent_type": {"type": "STRING", "index": 10, "name": "parent_type", "comment": null}, "value": {"type": "STRING", "index": 11, "name": "value", "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.pinterest_source.stg_pinterest_ads__keyword_history_tmp"}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp": {"metadata": {"type": "view", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_history_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "updated_time": {"type": "TIMESTAMP", "index": 2, "name": "updated_time", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "ad_group_id": {"type": "STRING", "index": 4, "name": "ad_group_id", "comment": null}, "android_deep_link": {"type": "STRING", "index": 5, "name": "android_deep_link", "comment": null}, "campaign_id": {"type": "STRING", "index": 6, "name": "campaign_id", "comment": null}, "click_tracking_url": {"type": "STRING", "index": 7, "name": "click_tracking_url", "comment": null}, "created_time": {"type": "TIMESTAMP", "index": 8, "name": "created_time", "comment": null}, "creative_type": {"type": "STRING", "index": 9, "name": "creative_type", "comment": null}, "destination_url": {"type": "STRING", "index": 10, "name": "destination_url", "comment": null}, "ios_deep_link": {"type": "STRING", "index": 11, "name": "ios_deep_link", "comment": null}, "is_pin_deleted": {"type": "BOOL", "index": 12, "name": "is_pin_deleted", "comment": null}, "is_removable": {"type": "BOOL", "index": 13, "name": "is_removable", "comment": null}, "name": {"type": "STRING", "index": 14, "name": "name", "comment": null}, "pin_id": {"type": "STRING", "index": 15, "name": "pin_id", "comment": null}, "review_status": {"type": "STRING", "index": 16, "name": "review_status", "comment": null}, "status": {"type": "STRING", "index": 17, "name": "status", "comment": null}, "summary_status": {"type": "STRING", "index": 18, "name": "summary_status", "comment": null}, "view_tracking_url": {"type": "STRING", "index": 19, "name": "view_tracking_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.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp"}, "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp": {"metadata": {"type": "view", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__advertiser_report_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"advertiser_id": {"type": "STRING", "index": 1, "name": "advertiser_id", "comment": null}, "date": {"type": "TIMESTAMP", "index": 2, "name": "date", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "clickthrough_1": {"type": "INT64", "index": 4, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "INT64", "index": 5, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "FLOAT64", "index": 6, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "FLOAT64", "index": 7, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "FLOAT64", "index": 8, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "FLOAT64", "index": 9, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "FLOAT64", "index": 10, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "FLOAT64", "index": 11, "name": "ectr", "comment": null}, "engagement_1": {"type": "INT64", "index": 12, "name": "engagement_1", "comment": null}, "impression_1": {"type": "INT64", "index": 13, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "INT64", "index": 14, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "INT64", "index": 15, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "INT64", "index": 16, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "INT64", "index": 17, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "INT64", "index": 18, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "FLOAT64", "index": 19, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "INT64", "index": 20, "name": "total_impression_user", "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.pinterest_source.stg_pinterest_ads__advertiser_report_tmp"}, "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp": {"metadata": {"type": "view", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__advertiser_history_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "updated_time": {"type": "TIMESTAMP", "index": 2, "name": "updated_time", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "billing_profile_status": {"type": "STRING", "index": 4, "name": "billing_profile_status", "comment": null}, "billing_type": {"type": "STRING", "index": 5, "name": "billing_type", "comment": null}, "country": {"type": "STRING", "index": 6, "name": "country", "comment": null}, "created_time": {"type": "TIMESTAMP", "index": 7, "name": "created_time", "comment": null}, "currency": {"type": "STRING", "index": 8, "name": "currency", "comment": null}, "merchant_id": {"type": "STRING", "index": 9, "name": "merchant_id", "comment": null}, "name": {"type": "STRING", "index": 10, "name": "name", "comment": null}, "owner_user_id": {"type": "STRING", "index": 11, "name": "owner_user_id", "comment": null}, "status": {"type": "STRING", "index": 12, "name": "status", "comment": null}, "owner_username": {"type": "STRING", "index": 13, "name": "owner_username", "comment": null}, "account_permissions": {"type": "STRING", "index": 14, "name": "account_permissions", "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.pinterest_source.stg_pinterest_ads__advertiser_history_tmp"}, "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp": {"metadata": {"type": "view", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__ad_group_history_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "updated_time": {"type": "TIMESTAMP", "index": 2, "name": "updated_time", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "auto_targeting_enabled": {"type": "BOOL", "index": 4, "name": "auto_targeting_enabled", "comment": null}, "bid_in_micro_currency": {"type": "INT64", "index": 5, "name": "bid_in_micro_currency", "comment": null}, "billable_event": {"type": "STRING", "index": 6, "name": "billable_event", "comment": null}, "budget_in_micro_currency": {"type": "INT64", "index": 7, "name": "budget_in_micro_currency", "comment": null}, "budget_type": {"type": "STRING", "index": 8, "name": "budget_type", "comment": null}, "campaign_id": {"type": "STRING", "index": 9, "name": "campaign_id", "comment": null}, "created_time": {"type": "TIMESTAMP", "index": 10, "name": "created_time", "comment": null}, "end_time": {"type": "TIMESTAMP", "index": 11, "name": "end_time", "comment": null}, "lifetime_frequency_cap": {"type": "INT64", "index": 12, "name": "lifetime_frequency_cap", "comment": null}, "name": {"type": "STRING", "index": 13, "name": "name", "comment": null}, "start_time": {"type": "TIMESTAMP", "index": 14, "name": "start_time", "comment": null}, "status": {"type": "STRING", "index": 15, "name": "status", "comment": null}, "targeting_spec_age_bucket": {"type": "STRING", "index": 16, "name": "targeting_spec_age_bucket", "comment": null}, "targeting_spec_apptype": {"type": "STRING", "index": 17, "name": "targeting_spec_apptype", "comment": null}, "targeting_spec_gender": {"type": "STRING", "index": 18, "name": "targeting_spec_gender", "comment": null}, "targeting_spec_interest": {"type": "STRING", "index": 19, "name": "targeting_spec_interest", "comment": null}, "targeting_spec_locale": {"type": "STRING", "index": 20, "name": "targeting_spec_locale", "comment": null}, "targeting_spec_location": {"type": "STRING", "index": 21, "name": "targeting_spec_location", "comment": null}, "targeting_spec_targeting_strategy": {"type": "STRING", "index": 22, "name": "targeting_spec_targeting_strategy", "comment": null}, "upgrade_status": {"type": "STRING", "index": 23, "name": "upgrade_status", "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.pinterest_source.stg_pinterest_ads__ad_group_history_tmp"}, "model.pinterest_source.stg_pinterest_ads__ad_group_report": {"metadata": {"type": "table", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__ad_group_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "TIMESTAMP", "index": 1, "name": "date_day", "comment": null}, "ad_group_id": {"type": "STRING", "index": 2, "name": "ad_group_id", "comment": null}, "ad_group_name": {"type": "STRING", "index": 3, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "STRING", "index": 4, "name": "ad_group_status", "comment": null}, "campaign_id": {"type": "INT64", "index": 5, "name": "campaign_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 6, "name": "advertiser_id", "comment": null}, "impressions": {"type": "INT64", "index": 7, "name": "impressions", "comment": null}, "clicks": {"type": "INT64", "index": 8, "name": "clicks", "comment": null}, "spend": {"type": "FLOAT64", "index": 9, "name": "spend", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 1130.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_report"}, "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp": {"metadata": {"type": "view", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__campaign_report_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"advertiser_id": {"type": "STRING", "index": 1, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 2, "name": "campaign_id", "comment": null}, "date": {"type": "TIMESTAMP", "index": 3, "name": "date", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 4, "name": "_fivetran_synced", "comment": null}, "campaign_daily_spend_cap": {"type": "INT64", "index": 5, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "INT64", "index": 6, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "STRING", "index": 7, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 8, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "INT64", "index": 9, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "INT64", "index": 10, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "FLOAT64", "index": 11, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "FLOAT64", "index": 12, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "FLOAT64", "index": 13, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "FLOAT64", "index": 14, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "FLOAT64", "index": 15, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "FLOAT64", "index": 16, "name": "ectr", "comment": null}, "engagement_1": {"type": "INT64", "index": 17, "name": "engagement_1", "comment": null}, "impression_1": {"type": "INT64", "index": 18, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "INT64", "index": 19, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "INT64", "index": 20, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "INT64", "index": 21, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "INT64", "index": 22, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "INT64", "index": 23, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "FLOAT64", "index": 24, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "INT64", "index": 25, "name": "total_impression_user", "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.pinterest_source.stg_pinterest_ads__campaign_report_tmp"}}, "sources": {"source.pinterest_source.pinterest_ads.pin_promotion_history": {"metadata": {"type": "table", "schema": "pinterest_ads_joe", "name": "pin_promotion_history", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "updated_time": {"type": "TIMESTAMP", "index": 2, "name": "updated_time", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "ad_group_id": {"type": "STRING", "index": 4, "name": "ad_group_id", "comment": null}, "android_deep_link": {"type": "STRING", "index": 5, "name": "android_deep_link", "comment": null}, "campaign_id": {"type": "STRING", "index": 6, "name": "campaign_id", "comment": null}, "click_tracking_url": {"type": "STRING", "index": 7, "name": "click_tracking_url", "comment": null}, "created_time": {"type": "TIMESTAMP", "index": 8, "name": "created_time", "comment": null}, "creative_type": {"type": "STRING", "index": 9, "name": "creative_type", "comment": null}, "destination_url": {"type": "STRING", "index": 10, "name": "destination_url", "comment": null}, "ios_deep_link": {"type": "STRING", "index": 11, "name": "ios_deep_link", "comment": null}, "is_pin_deleted": {"type": "BOOL", "index": 12, "name": "is_pin_deleted", "comment": null}, "is_removable": {"type": "BOOL", "index": 13, "name": "is_removable", "comment": null}, "name": {"type": "STRING", "index": 14, "name": "name", "comment": null}, "pin_id": {"type": "STRING", "index": 15, "name": "pin_id", "comment": null}, "review_status": {"type": "STRING", "index": 16, "name": "review_status", "comment": null}, "status": {"type": "STRING", "index": 17, "name": "status", "comment": null}, "summary_status": {"type": "STRING", "index": 18, "name": "summary_status", "comment": null}, "view_tracking_url": {"type": "STRING", "index": 19, "name": "view_tracking_url", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 2.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 378.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.pinterest_source.pinterest_ads.pin_promotion_history"}, "source.pinterest_source.pinterest_ads.ad_group_report": {"metadata": {"type": "table", "schema": "pinterest_ads_joe", "name": "ad_group_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"ad_group_id": {"type": "STRING", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 2, "name": "advertiser_id", "comment": null}, "date": {"type": "TIMESTAMP", "index": 3, "name": "date", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 4, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "STRING", "index": 5, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "STRING", "index": 6, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "INT64", "index": 7, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_id": {"type": "INT64", "index": 8, "name": "campaign_id", "comment": null}, "campaign_lifetime_spend_cap": {"type": "INT64", "index": 9, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "STRING", "index": 10, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 11, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "INT64", "index": 12, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "INT64", "index": 13, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "FLOAT64", "index": 14, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "FLOAT64", "index": 15, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "FLOAT64", "index": 16, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "FLOAT64", "index": 17, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "FLOAT64", "index": 18, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "FLOAT64", "index": 19, "name": "ectr", "comment": null}, "engagement_1": {"type": "INT64", "index": 20, "name": "engagement_1", "comment": null}, "impression_1": {"type": "INT64", "index": 21, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "INT64", "index": 22, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "INT64", "index": 23, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "INT64", "index": 24, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "INT64", "index": 25, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "INT64", "index": 26, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "FLOAT64", "index": 27, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "INT64", "index": 28, "name": "total_impression_user", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 2654.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.pinterest_source.pinterest_ads.ad_group_report"}, "source.pinterest_source.pinterest_ads.advertiser_history": {"metadata": {"type": "table", "schema": "pinterest_ads_joe", "name": "advertiser_history", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "updated_time": {"type": "TIMESTAMP", "index": 2, "name": "updated_time", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "billing_profile_status": {"type": "STRING", "index": 4, "name": "billing_profile_status", "comment": null}, "billing_type": {"type": "STRING", "index": 5, "name": "billing_type", "comment": null}, "country": {"type": "STRING", "index": 6, "name": "country", "comment": null}, "created_time": {"type": "TIMESTAMP", "index": 7, "name": "created_time", "comment": null}, "currency": {"type": "STRING", "index": 8, "name": "currency", "comment": null}, "merchant_id": {"type": "STRING", "index": 9, "name": "merchant_id", "comment": null}, "name": {"type": "STRING", "index": 10, "name": "name", "comment": null}, "owner_user_id": {"type": "STRING", "index": 11, "name": "owner_user_id", "comment": null}, "status": {"type": "STRING", "index": 12, "name": "status", "comment": null}, "owner_username": {"type": "STRING", "index": 13, "name": "owner_username", "comment": null}, "account_permissions": {"type": "STRING", "index": 14, "name": "account_permissions", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 2.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 224.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.pinterest_source.pinterest_ads.advertiser_history"}, "source.pinterest_source.pinterest_ads.keyword_history": {"metadata": {"type": "table", "schema": "pinterest_ads_joe", "name": "keyword_history", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"_fivetran_id": {"type": "STRING", "index": 1, "name": "_fivetran_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 2, "name": "_fivetran_synced", "comment": null}, "ad_group_id": {"type": "STRING", "index": 3, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 4, "name": "advertiser_id", "comment": null}, "archived": {"type": "BOOL", "index": 5, "name": "archived", "comment": null}, "bid": {"type": "INT64", "index": 6, "name": "bid", "comment": null}, "campaign_id": {"type": "STRING", "index": 7, "name": "campaign_id", "comment": null}, "id": {"type": "STRING", "index": 8, "name": "id", "comment": null}, "match_type": {"type": "STRING", "index": 9, "name": "match_type", "comment": null}, "parent_type": {"type": "STRING", "index": 10, "name": "parent_type", "comment": null}, "value": {"type": "STRING", "index": 11, "name": "value", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 957.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.pinterest_source.pinterest_ads.keyword_history"}, "source.pinterest_source.pinterest_ads.ad_group_history": {"metadata": {"type": "table", "schema": "pinterest_ads_joe", "name": "ad_group_history", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "updated_time": {"type": "TIMESTAMP", "index": 2, "name": "updated_time", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "auto_targeting_enabled": {"type": "BOOL", "index": 4, "name": "auto_targeting_enabled", "comment": null}, "bid_in_micro_currency": {"type": "INT64", "index": 5, "name": "bid_in_micro_currency", "comment": null}, "billable_event": {"type": "STRING", "index": 6, "name": "billable_event", "comment": null}, "budget_in_micro_currency": {"type": "INT64", "index": 7, "name": "budget_in_micro_currency", "comment": null}, "budget_type": {"type": "STRING", "index": 8, "name": "budget_type", "comment": null}, "campaign_id": {"type": "STRING", "index": 9, "name": "campaign_id", "comment": null}, "created_time": {"type": "TIMESTAMP", "index": 10, "name": "created_time", "comment": null}, "end_time": {"type": "TIMESTAMP", "index": 11, "name": "end_time", "comment": null}, "lifetime_frequency_cap": {"type": "INT64", "index": 12, "name": "lifetime_frequency_cap", "comment": null}, "name": {"type": "STRING", "index": 13, "name": "name", "comment": null}, "start_time": {"type": "TIMESTAMP", "index": 14, "name": "start_time", "comment": null}, "status": {"type": "STRING", "index": 15, "name": "status", "comment": null}, "targeting_spec_age_bucket": {"type": "STRING", "index": 16, "name": "targeting_spec_age_bucket", "comment": null}, "targeting_spec_apptype": {"type": "STRING", "index": 17, "name": "targeting_spec_apptype", "comment": null}, "targeting_spec_gender": {"type": "STRING", "index": 18, "name": "targeting_spec_gender", "comment": null}, "targeting_spec_interest": {"type": "STRING", "index": 19, "name": "targeting_spec_interest", "comment": null}, "targeting_spec_locale": {"type": "STRING", "index": 20, "name": "targeting_spec_locale", "comment": null}, "targeting_spec_location": {"type": "STRING", "index": 21, "name": "targeting_spec_location", "comment": null}, "targeting_spec_targeting_strategy": {"type": "STRING", "index": 22, "name": "targeting_spec_targeting_strategy", "comment": null}, "upgrade_status": {"type": "STRING", "index": 23, "name": "upgrade_status", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 1.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 389.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.pinterest_source.pinterest_ads.ad_group_history"}, "source.pinterest_source.pinterest_ads.pin_promotion_report": {"metadata": {"type": "table", "schema": "pinterest_ads_joe", "name": "pin_promotion_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"ad_group_id": {"type": "STRING", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 2, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 3, "name": "campaign_id", "comment": null}, "date": {"type": "TIMESTAMP", "index": 4, "name": "date", "comment": null}, "pin_promotion_id": {"type": "STRING", "index": 5, "name": "pin_promotion_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 6, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "STRING", "index": 7, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "STRING", "index": 8, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "INT64", "index": 9, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "INT64", "index": 10, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "STRING", "index": 11, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 12, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "INT64", "index": 13, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "INT64", "index": 14, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "FLOAT64", "index": 15, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "FLOAT64", "index": 16, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "FLOAT64", "index": 17, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "FLOAT64", "index": 18, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "FLOAT64", "index": 19, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "FLOAT64", "index": 20, "name": "ectr", "comment": null}, "engagement_1": {"type": "INT64", "index": 21, "name": "engagement_1", "comment": null}, "impression_1": {"type": "INT64", "index": 22, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "INT64", "index": 23, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "INT64", "index": 24, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "INT64", "index": 25, "name": "paid_impression", "comment": null}, "pin_id": {"type": "INT64", "index": 26, "name": "pin_id", "comment": null}, "pin_promotion_name": {"type": "STRING", "index": 27, "name": "pin_promotion_name", "comment": null}, "pin_promotion_status": {"type": "STRING", "index": 28, "name": "pin_promotion_status", "comment": null}, "spend_in_micro_dollar": {"type": "INT64", "index": 29, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "INT64", "index": 30, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "FLOAT64", "index": 31, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "INT64", "index": 32, "name": "total_impression_user", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 3344.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.pinterest_source.pinterest_ads.pin_promotion_report"}, "source.pinterest_source.pinterest_ads.keyword_report": {"metadata": {"type": "table", "schema": "pinterest_ads_joe", "name": "keyword_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"ad_group_id": {"type": "STRING", "index": 1, "name": "ad_group_id", "comment": null}, "advertiser_id": {"type": "STRING", "index": 2, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 3, "name": "campaign_id", "comment": null}, "date": {"type": "TIMESTAMP", "index": 4, "name": "date", "comment": null}, "keyword_id": {"type": "STRING", "index": 5, "name": "keyword_id", "comment": null}, "pin_id": {"type": "STRING", "index": 6, "name": "pin_id", "comment": null}, "pin_promotion_id": {"type": "STRING", "index": 7, "name": "pin_promotion_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 8, "name": "_fivetran_synced", "comment": null}, "ad_group_name": {"type": "STRING", "index": 9, "name": "ad_group_name", "comment": null}, "ad_group_status": {"type": "STRING", "index": 10, "name": "ad_group_status", "comment": null}, "campaign_daily_spend_cap": {"type": "INT64", "index": 11, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "INT64", "index": 12, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "STRING", "index": 13, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 14, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "INT64", "index": 15, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "INT64", "index": 16, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "FLOAT64", "index": 17, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "FLOAT64", "index": 18, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "FLOAT64", "index": 19, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "FLOAT64", "index": 20, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "FLOAT64", "index": 21, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "FLOAT64", "index": 22, "name": "ectr", "comment": null}, "engagement_1": {"type": "INT64", "index": 23, "name": "engagement_1", "comment": null}, "impression_1": {"type": "INT64", "index": 24, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "INT64", "index": 25, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "INT64", "index": 26, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "INT64", "index": 27, "name": "paid_impression", "comment": null}, "pin_promotion_name": {"type": "STRING", "index": 28, "name": "pin_promotion_name", "comment": null}, "pin_promotion_status": {"type": "STRING", "index": 29, "name": "pin_promotion_status", "comment": null}, "spend_in_micro_dollar": {"type": "INT64", "index": 30, "name": "spend_in_micro_dollar", "comment": null}, "targeting_type": {"type": "STRING", "index": 31, "name": "targeting_type", "comment": null}, "targeting_value": {"type": "STRING", "index": 32, "name": "targeting_value", "comment": null}, "total_engagement": {"type": "INT64", "index": 33, "name": "total_engagement", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 41.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 13222.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.pinterest_source.pinterest_ads.keyword_report"}, "source.pinterest_source.pinterest_ads.advertiser_report": {"metadata": {"type": "table", "schema": "pinterest_ads_joe", "name": "advertiser_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"advertiser_id": {"type": "STRING", "index": 1, "name": "advertiser_id", "comment": null}, "date": {"type": "TIMESTAMP", "index": 2, "name": "date", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "clickthrough_1": {"type": "INT64", "index": 4, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "INT64", "index": 5, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "FLOAT64", "index": 6, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "FLOAT64", "index": 7, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "FLOAT64", "index": 8, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "FLOAT64", "index": 9, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "FLOAT64", "index": 10, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "FLOAT64", "index": 11, "name": "ectr", "comment": null}, "engagement_1": {"type": "INT64", "index": 12, "name": "engagement_1", "comment": null}, "impression_1": {"type": "INT64", "index": 13, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "INT64", "index": 14, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "INT64", "index": 15, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "INT64", "index": 16, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "INT64", "index": 17, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "INT64", "index": 18, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "FLOAT64", "index": 19, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "INT64", "index": 20, "name": "total_impression_user", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 1404.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.pinterest_source.pinterest_ads.advertiser_report"}, "source.pinterest_source.pinterest_ads.campaign_history": {"metadata": {"type": "table", "schema": "pinterest_ads_joe", "name": "campaign_history", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "updated_time": {"type": "TIMESTAMP", "index": 2, "name": "updated_time", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "advertiser_id": {"type": "STRING", "index": 4, "name": "advertiser_id", "comment": null}, "campaign_budget_optimization_enabled": {"type": "BOOL", "index": 5, "name": "campaign_budget_optimization_enabled", "comment": null}, "created_time": {"type": "TIMESTAMP", "index": 6, "name": "created_time", "comment": null}, "daily_spend_cap": {"type": "INT64", "index": 7, "name": "daily_spend_cap", "comment": null}, "end_time": {"type": "TIMESTAMP", "index": 8, "name": "end_time", "comment": null}, "lifetime_spend_cap": {"type": "INT64", "index": 9, "name": "lifetime_spend_cap", "comment": null}, "name": {"type": "STRING", "index": 10, "name": "name", "comment": null}, "objective_type": {"type": "STRING", "index": 11, "name": "objective_type", "comment": null}, "order_line_id": {"type": "STRING", "index": 12, "name": "order_line_id", "comment": null}, "start_time": {"type": "TIMESTAMP", "index": 13, "name": "start_time", "comment": null}, "status": {"type": "STRING", "index": 14, "name": "status", "comment": null}, "summary_status": {"type": "STRING", "index": 15, "name": "summary_status", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 1.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 146.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.pinterest_source.pinterest_ads.campaign_history"}, "source.pinterest_source.pinterest_ads.campaign_report": {"metadata": {"type": "table", "schema": "pinterest_ads_joe", "name": "campaign_report", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"advertiser_id": {"type": "STRING", "index": 1, "name": "advertiser_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 2, "name": "campaign_id", "comment": null}, "date": {"type": "TIMESTAMP", "index": 3, "name": "date", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 4, "name": "_fivetran_synced", "comment": null}, "campaign_daily_spend_cap": {"type": "INT64", "index": 5, "name": "campaign_daily_spend_cap", "comment": null}, "campaign_lifetime_spend_cap": {"type": "INT64", "index": 6, "name": "campaign_lifetime_spend_cap", "comment": null}, "campaign_name": {"type": "STRING", "index": 7, "name": "campaign_name", "comment": null}, "campaign_status": {"type": "STRING", "index": 8, "name": "campaign_status", "comment": null}, "clickthrough_1": {"type": "INT64", "index": 9, "name": "clickthrough_1", "comment": null}, "clickthrough_1_gross": {"type": "INT64", "index": 10, "name": "clickthrough_1_gross", "comment": null}, "cpc_in_micro_dollar": {"type": "FLOAT64", "index": 11, "name": "cpc_in_micro_dollar", "comment": null}, "cpm_in_micro_dollar": {"type": "FLOAT64", "index": 12, "name": "cpm_in_micro_dollar", "comment": null}, "ctr": {"type": "FLOAT64", "index": 13, "name": "ctr", "comment": null}, "ecpc_in_micro_dollar": {"type": "FLOAT64", "index": 14, "name": "ecpc_in_micro_dollar", "comment": null}, "ecpm_in_micro_dollar": {"type": "FLOAT64", "index": 15, "name": "ecpm_in_micro_dollar", "comment": null}, "ectr": {"type": "FLOAT64", "index": 16, "name": "ectr", "comment": null}, "engagement_1": {"type": "INT64", "index": 17, "name": "engagement_1", "comment": null}, "impression_1": {"type": "INT64", "index": 18, "name": "impression_1", "comment": null}, "impression_1_gross": {"type": "INT64", "index": 19, "name": "impression_1_gross", "comment": null}, "outbound_click_1": {"type": "INT64", "index": 20, "name": "outbound_click_1", "comment": null}, "paid_impression": {"type": "INT64", "index": 21, "name": "paid_impression", "comment": null}, "spend_in_micro_dollar": {"type": "INT64", "index": 22, "name": "spend_in_micro_dollar", "comment": null}, "total_engagement": {"type": "INT64", "index": 23, "name": "total_engagement", "comment": null}, "total_impression_frequency": {"type": "FLOAT64", "index": 24, "name": "total_impression_frequency", "comment": null}, "total_impression_user": {"type": "INT64", "index": 25, "name": "total_impression_user", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 10.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 2124.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.pinterest_source.pinterest_ads.campaign_report"}}, "errors": null} \ No newline at end of file diff --git a/docs/manifest.json b/docs/manifest.json index 5e0d0d2..6cc0132 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -1 +1 @@ -{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v8.json", "dbt_version": "1.4.5", "generated_at": "2023-06-06T21:30:19.298188Z", "invocation_id": "add0e8a1-b6ee-49df-a5ee-375b15e63d2d", "env": {}, "project_id": "beb5d0d9cb246e105fcbc18c4a5bf933", "user_id": "8929baf0-9bc1-477e-9a57-eb8b0db4da62", "send_anonymous_usage_stats": true, "adapter_type": "postgres"}, "nodes": {"seed.pinterest_integration_tests.ad_group_report_data": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "ad_group_report_data", "resource_type": "seed", "package_name": "pinterest_integration_tests", "path": "ad_group_report_data.csv", "original_file_path": "seeds/ad_group_report_data.csv", "unique_id": "seed.pinterest_integration_tests.ad_group_report_data", "fqn": ["pinterest_integration_tests", "ad_group_report_data"], "alias": "ad_group_report_data", "checksum": {"name": "sha256", "checksum": "6451df695a92aca87f55fdc197110c9e91d5b1663808905afa2f031527fa3947"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"id": "bigint", "campaign_id": "bigint", "ad_group_id": "bigint", "pin_id": "bigint", "advertiser_id": "bigint", "pin_promotion_id": "bigint", "keyword_id": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": true, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift','postgres') else false }}", "column_types": {"id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "campaign_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "ad_group_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "advertiser_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_promotion_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "keyword_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"}}, "created_at": 1686087006.909069, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"ad_group_report_data\"", "raw_code": "", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/pinterest/dbt_pinterest/integration_tests", "depends_on": {"macros": []}}, "seed.pinterest_integration_tests.keyword_report_data": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "keyword_report_data", "resource_type": "seed", "package_name": "pinterest_integration_tests", "path": "keyword_report_data.csv", "original_file_path": "seeds/keyword_report_data.csv", "unique_id": "seed.pinterest_integration_tests.keyword_report_data", "fqn": ["pinterest_integration_tests", "keyword_report_data"], "alias": "keyword_report_data", "checksum": {"name": "sha256", "checksum": "46fc926a1182c51ea670ec916f3a86dfa2f20d5553227275682310462caaa849"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"id": "bigint", "campaign_id": "bigint", "ad_group_id": "bigint", "pin_id": "bigint", "advertiser_id": "bigint", "pin_promotion_id": "bigint", "keyword_id": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": true, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift','postgres') else false }}", "column_types": {"id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "campaign_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "ad_group_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "advertiser_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_promotion_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "keyword_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"}}, "created_at": 1686087006.9149702, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"keyword_report_data\"", "raw_code": "", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/pinterest/dbt_pinterest/integration_tests", "depends_on": {"macros": []}}, "seed.pinterest_integration_tests.pin_promotion_history_data": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "pin_promotion_history_data", "resource_type": "seed", "package_name": "pinterest_integration_tests", "path": "pin_promotion_history_data.csv", "original_file_path": "seeds/pin_promotion_history_data.csv", "unique_id": "seed.pinterest_integration_tests.pin_promotion_history_data", "fqn": ["pinterest_integration_tests", "pin_promotion_history_data"], "alias": "pin_promotion_history_data", "checksum": {"name": "sha256", "checksum": "6b7c5d891ccb02be0c1e126545984964eb4fa226a9d1ae9741ad76288497e338"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"id": "bigint", "campaign_id": "bigint", "ad_group_id": "bigint", "pin_id": "bigint", "advertiser_id": "bigint", "pin_promotion_id": "bigint", "keyword_id": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": true, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift','postgres') else false }}", "column_types": {"id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "campaign_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "ad_group_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "advertiser_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_promotion_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "keyword_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"}}, "created_at": 1686087006.91621, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"pin_promotion_history_data\"", "raw_code": "", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/pinterest/dbt_pinterest/integration_tests", "depends_on": {"macros": []}}, "seed.pinterest_integration_tests.advertiser_history_data": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "advertiser_history_data", "resource_type": "seed", "package_name": "pinterest_integration_tests", "path": "advertiser_history_data.csv", "original_file_path": "seeds/advertiser_history_data.csv", "unique_id": "seed.pinterest_integration_tests.advertiser_history_data", "fqn": ["pinterest_integration_tests", "advertiser_history_data"], "alias": "advertiser_history_data", "checksum": {"name": "sha256", "checksum": "a1efd698a39cc0a75b74b43b84d114eddf6eaac9d3dd7d2a06e704951c091fe4"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"id": "bigint", "campaign_id": "bigint", "ad_group_id": "bigint", "pin_id": "bigint", "advertiser_id": "bigint", "pin_promotion_id": "bigint", "keyword_id": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": true, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift','postgres') else false }}", "column_types": {"id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "campaign_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "ad_group_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "advertiser_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_promotion_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "keyword_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"}}, "created_at": 1686087006.9175098, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"advertiser_history_data\"", "raw_code": "", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/pinterest/dbt_pinterest/integration_tests", "depends_on": {"macros": []}}, "seed.pinterest_integration_tests.advertiser_report_data": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "advertiser_report_data", "resource_type": "seed", "package_name": "pinterest_integration_tests", "path": "advertiser_report_data.csv", "original_file_path": "seeds/advertiser_report_data.csv", "unique_id": "seed.pinterest_integration_tests.advertiser_report_data", "fqn": ["pinterest_integration_tests", "advertiser_report_data"], "alias": "advertiser_report_data", "checksum": {"name": "sha256", "checksum": "d1a7a977ede788e2610dc21decfb57c226253807e9780784d17a06175f9adef8"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"id": "bigint", "campaign_id": "bigint", "ad_group_id": "bigint", "pin_id": "bigint", "advertiser_id": "bigint", "pin_promotion_id": "bigint", "keyword_id": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": true, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift','postgres') else false }}", "column_types": {"id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "campaign_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "ad_group_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "advertiser_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_promotion_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "keyword_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"}}, "created_at": 1686087006.9187489, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"advertiser_report_data\"", "raw_code": "", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/pinterest/dbt_pinterest/integration_tests", "depends_on": {"macros": []}}, "seed.pinterest_integration_tests.ad_group_history_data": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "ad_group_history_data", "resource_type": "seed", "package_name": "pinterest_integration_tests", "path": "ad_group_history_data.csv", "original_file_path": "seeds/ad_group_history_data.csv", "unique_id": "seed.pinterest_integration_tests.ad_group_history_data", "fqn": ["pinterest_integration_tests", "ad_group_history_data"], "alias": "ad_group_history_data", "checksum": {"name": "sha256", "checksum": "ff76dce5a5b57b38a03bfc295838b9f05e99e3e310066ac3fc96f7c78e3b6be8"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"id": "bigint", "campaign_id": "bigint", "ad_group_id": "bigint", "pin_id": "bigint", "advertiser_id": "bigint", "pin_promotion_id": "bigint", "keyword_id": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": true, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift','postgres') else false }}", "column_types": {"id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "campaign_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "ad_group_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "advertiser_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_promotion_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "keyword_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"}}, "created_at": 1686087006.919965, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"ad_group_history_data\"", "raw_code": "", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/pinterest/dbt_pinterest/integration_tests", "depends_on": {"macros": []}}, "seed.pinterest_integration_tests.campaign_history_data": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "campaign_history_data", "resource_type": "seed", "package_name": "pinterest_integration_tests", "path": "campaign_history_data.csv", "original_file_path": "seeds/campaign_history_data.csv", "unique_id": "seed.pinterest_integration_tests.campaign_history_data", "fqn": ["pinterest_integration_tests", "campaign_history_data"], "alias": "campaign_history_data", "checksum": {"name": "sha256", "checksum": "4c2ec13ff8548a5571e2de4601947d72d934669534584fa234099b3200564aab"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"id": "bigint", "campaign_id": "bigint", "ad_group_id": "bigint", "pin_id": "bigint", "advertiser_id": "bigint", "pin_promotion_id": "bigint", "keyword_id": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": true, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift','postgres') else false }}", "column_types": {"id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "campaign_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "ad_group_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "advertiser_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_promotion_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "keyword_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"}}, "created_at": 1686087006.9213068, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"campaign_history_data\"", "raw_code": "", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/pinterest/dbt_pinterest/integration_tests", "depends_on": {"macros": []}}, "seed.pinterest_integration_tests.campaign_report_data": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "campaign_report_data", "resource_type": "seed", "package_name": "pinterest_integration_tests", "path": "campaign_report_data.csv", "original_file_path": "seeds/campaign_report_data.csv", "unique_id": "seed.pinterest_integration_tests.campaign_report_data", "fqn": ["pinterest_integration_tests", "campaign_report_data"], "alias": "campaign_report_data", "checksum": {"name": "sha256", "checksum": "40dc5b48841d732d7707801558e939abdbf2c0c333a2a4b6f76cd40d68f90f78"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"id": "bigint", "campaign_id": "bigint", "ad_group_id": "bigint", "pin_id": "bigint", "advertiser_id": "bigint", "pin_promotion_id": "bigint", "keyword_id": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": true, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift','postgres') else false }}", "column_types": {"id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "campaign_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "ad_group_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "advertiser_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_promotion_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "keyword_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"}}, "created_at": 1686087006.922525, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"campaign_report_data\"", "raw_code": "", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/pinterest/dbt_pinterest/integration_tests", "depends_on": {"macros": []}}, "seed.pinterest_integration_tests.keyword_history_data": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "keyword_history_data", "resource_type": "seed", "package_name": "pinterest_integration_tests", "path": "keyword_history_data.csv", "original_file_path": "seeds/keyword_history_data.csv", "unique_id": "seed.pinterest_integration_tests.keyword_history_data", "fqn": ["pinterest_integration_tests", "keyword_history_data"], "alias": "keyword_history_data", "checksum": {"name": "sha256", "checksum": "589c187cfa8845b5851700d6e10128a158fe860a55a4f4de7f83b1e92226bc9e"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"id": "bigint", "campaign_id": "bigint", "ad_group_id": "bigint", "pin_id": "bigint", "advertiser_id": "bigint", "pin_promotion_id": "bigint", "keyword_id": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": true, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift','postgres') else false }}", "column_types": {"id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "campaign_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "ad_group_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "advertiser_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_promotion_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "keyword_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"}}, "created_at": 1686087006.923724, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"keyword_history_data\"", "raw_code": "", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/pinterest/dbt_pinterest/integration_tests", "depends_on": {"macros": []}}, "seed.pinterest_integration_tests.pin_promotion_report_data": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "pin_promotion_report_data", "resource_type": "seed", "package_name": "pinterest_integration_tests", "path": "pin_promotion_report_data.csv", "original_file_path": "seeds/pin_promotion_report_data.csv", "unique_id": "seed.pinterest_integration_tests.pin_promotion_report_data", "fqn": ["pinterest_integration_tests", "pin_promotion_report_data"], "alias": "pin_promotion_report_data", "checksum": {"name": "sha256", "checksum": "adef7939173c1809f516a7cf739b697eb875210228e21a1cbb52bbdee7dc4ce4"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"id": "bigint", "campaign_id": "bigint", "ad_group_id": "bigint", "pin_id": "bigint", "advertiser_id": "bigint", "pin_promotion_id": "bigint", "keyword_id": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": true, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift','postgres') else false }}", "column_types": {"id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "campaign_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "ad_group_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "advertiser_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "pin_promotion_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}", "keyword_id": "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"}}, "created_at": 1686087006.924992, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"pin_promotion_report_data\"", "raw_code": "", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/pinterest/dbt_pinterest/integration_tests", "depends_on": {"macros": []}}, "model.pinterest.pinterest_ads__url_report": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__url_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__url_report.sql", "original_file_path": "models/pinterest_ads__url_report.sql", "unique_id": "model.pinterest.pinterest_ads__url_report", "fqn": ["pinterest", "pinterest_ads__url_report"], "alias": "pinterest_ads__url_report", "checksum": {"name": "sha256", "checksum": "1ee4b8fc3fdecf9aa27336f1939c1d5f78ee9ca877f4b85e5054f077ed9f12c2"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the advertiser, campaign, ad group, and url level.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "destination_url": {"name": "destination_url", "description": "Pin destination URL.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_name": {"name": "pin_name", "description": "Pin promotion name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_status": {"name": "pin_status", "description": "The status of the Pin promotion. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "creative_type": {"name": "creative_type", "description": "The creative type. \nOne of \"APP\", \"APP_VIDEO\", \"BOARD\", \"CAROUSEL\", \"CINEMATIC\", \"COMMERCE\", \"MAX_VIDEO\", \"NATIVE_VIDEO\", \"REGULAR\", \n\"SEARCH_PROMINENCE\", \"SEARCH_PROMINENCE_CAROUSEL\", \"SHOPPING\", \"SHOP_THE_PIN\", \"THIRD_PARTY\", or \"VIDEO\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "base_url": {"name": "base_url", "description": "The base URL of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "url_host": {"name": "url_host", "description": "The URL host of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "url_path": {"name": "url_path", "description": "The URL path of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_source": {"name": "utm_source", "description": "The utm_source parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_medium": {"name": "utm_medium", "description": "The utm_medium parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_campaign": {"name": "utm_campaign", "description": "The utm_campaign parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_content": {"name": "utm_content", "description": "The utm_content parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_term": {"name": "utm_term", "description": "The utm_term parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "The name of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "The name of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1686087007.192478, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__url_report\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith report as (\n\n select *\n from {{ var('pin_promotion_report') }}\n), \n\npins as (\n\n select *\n from {{ var('pin_promotion_history') }}\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from {{ var('ad_group_history') }}\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from {{ var('campaign_history') }}\n where is_most_recent_record = True\n),\n\nadvertisers as (\n\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n), \n\njoined as (\n\n select\n report.date_day,\n campaigns.advertiser_id,\n advertisers.advertiser_name,\n report.campaign_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n report.ad_group_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_status,\n pins.destination_url,\n pins.creative_type,\n report.pin_promotion_id,\n pins.pin_name,\n pins.pin_status,\n pins.base_url,\n pins.url_host,\n pins.url_path,\n pins.utm_source,\n pins.utm_medium,\n pins.utm_campaign,\n pins.utm_content,\n pins.utm_term,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions,\n sum(report.spend) as spend\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__pin_promotion_report_passthrough_metrics', transform = 'sum') }}\n\n from report \n left join pins \n on report.pin_promotion_id = pins.pin_promotion_id\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns \n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n\n {% if var('ad_reporting__url_report__using_null_filter', True) %}\n where pins.destination_url is not null\n {% endif %}\n\n {{ dbt_utils.group_by(22) }}\n)\n\nselect * \nfrom joined", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report"], ["stg_pinterest_ads__pin_promotion_history"], ["stg_pinterest_ads__ad_group_history"], ["stg_pinterest_ads__campaign_history"], ["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__url_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_report\"\n), \n\npins as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_history\"\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_history\"\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_history\"\n where is_most_recent_record = True\n),\n\nadvertisers as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_history\"\n where is_most_recent_record = True\n), \n\njoined as (\n\n select\n report.date_day,\n campaigns.advertiser_id,\n advertisers.advertiser_name,\n report.campaign_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n report.ad_group_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_status,\n pins.destination_url,\n pins.creative_type,\n report.pin_promotion_id,\n pins.pin_name,\n pins.pin_status,\n pins.base_url,\n pins.url_host,\n pins.url_path,\n pins.utm_source,\n pins.utm_medium,\n pins.utm_campaign,\n pins.utm_content,\n pins.utm_term,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions,\n sum(report.spend) as spend\n\n \n\n\n\n\n\n from report \n left join pins \n on report.pin_promotion_id = pins.pin_promotion_id\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns \n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n\n \n where pins.destination_url is not null\n \n\n group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22\n)\n\nselect * \nfrom joined", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest.pinterest_ads__campaign_report": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__campaign_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__campaign_report.sql", "original_file_path": "models/pinterest_ads__campaign_report.sql", "unique_id": "model.pinterest.pinterest_ads__campaign_report", "fqn": ["pinterest", "pinterest_ads__campaign_report"], "alias": "pinterest_ads__campaign_report", "checksum": {"name": "sha256", "checksum": "80ef7572b29ea31a7e5866ad9a6e6bf99fc0055ef64e527a9173fa440acbdcbd"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the advertiser and campaign level.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "The name of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1686087007.196799, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__campaign_report\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith report as (\n select *\n from {{ var('campaign_report') }}\n),\n\ncampaigns as (\n\n select *\n from {{ var('campaign_history') }}\n where is_most_recent_record = True\n),\n\nadvertisers as (\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n),\n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n report.campaign_id,\n campaigns.campaign_status,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__campaign_report_passthrough_metrics', transform = 'sum') }}\n\n from report\n left join campaigns\n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n {{ dbt_utils.group_by(6) }}\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [["stg_pinterest_ads__campaign_report"], ["stg_pinterest_ads__campaign_history"], ["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_report", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__campaign_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_report\"\n),\n\ncampaigns as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_history\"\n where is_most_recent_record = True\n),\n\nadvertisers as (\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_history\"\n where is_most_recent_record = True\n),\n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n report.campaign_id,\n campaigns.campaign_status,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n \n\n\n\n\n\n from report\n left join campaigns\n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n group by 1,2,3,4,5,6\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest.pinterest_ads__keyword_report": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__keyword_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__keyword_report.sql", "original_file_path": "models/pinterest_ads__keyword_report.sql", "unique_id": "model.pinterest.pinterest_ads__keyword_report", "fqn": ["pinterest", "pinterest_ads__keyword_report"], "alias": "pinterest_ads__keyword_report", "checksum": {"name": "sha256", "checksum": "ef11c0e760baab06e0be626de588e4973f52a33bca41761faf39f3b590a6fbab"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of a keyword at the advertiser, campaign, ad group, and keyword level.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "keyword_id": {"name": "keyword_id", "description": "Unique identifier of the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "match_type": {"name": "match_type", "description": "Type of match the keyword is tied to. Either Exact or Broad.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_type": {"name": "parent_type", "description": "Identifier of what grain the parent type is. Ad group or campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "keyword_value": {"name": "keyword_value", "description": "The text value that makes upd the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1686087007.2012138, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__keyword_report\"", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['ad_reporting__pinterest_ads_enabled','pinterest__using_keywords'])) }}\n\nwith report as (\n\n select *\n from {{ var('keyword_report') }}\n), \n\nadvertisers as (\n\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n),\n\ncampaigns as (\n\n select *\n from {{ var('campaign_history') }}\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from {{ var('ad_group_history') }}\n where is_most_recent_record = True\n), \n\nkeywords as (\n\n select *\n from {{ var('keyword_history') }}\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n campaigns.campaign_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_id,\n report.keyword_id,\n keywords.match_type,\n keywords.parent_type,\n keywords.keyword_value,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__keyword_report_passthrough_metrics', transform = 'sum') }}\n\n from report\n left join keywords\n on report.keyword_id = keywords.keyword_id\n left join ad_groups\n on keywords.ad_group_id = ad_groups.ad_group_id\n left join campaigns\n on ad_groups.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n {{ dbt_utils.group_by(11) }}\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [["stg_pinterest_ads__keyword_report"], ["stg_pinterest_ads__advertiser_history"], ["stg_pinterest_ads__campaign_history"], ["stg_pinterest_ads__ad_group_history"], ["stg_pinterest_ads__keyword_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_report", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__keyword_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__keyword_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_report\"\n), \n\nadvertisers as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_history\"\n where is_most_recent_record = True\n),\n\ncampaigns as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_history\"\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_history\"\n where is_most_recent_record = True\n), \n\nkeywords as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_history\"\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n campaigns.campaign_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_id,\n report.keyword_id,\n keywords.match_type,\n keywords.parent_type,\n keywords.keyword_value,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n \n\n\n\n\n\n from report\n left join keywords\n on report.keyword_id = keywords.keyword_id\n left join ad_groups\n on keywords.ad_group_id = ad_groups.ad_group_id\n left join campaigns\n on ad_groups.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n group by 1,2,3,4,5,6,7,8,9,10,11\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest.pinterest_ads__advertiser_report": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__advertiser_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__advertiser_report.sql", "original_file_path": "models/pinterest_ads__advertiser_report.sql", "unique_id": "model.pinterest.pinterest_ads__advertiser_report", "fqn": ["pinterest", "pinterest_ads__advertiser_report"], "alias": "pinterest_ads__advertiser_report", "checksum": {"name": "sha256", "checksum": "c1636464f5742460c31c1f5e1c83fa0f21d4985eb7faae46b3fab94444f5c7d1"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of an advertiser on the Pinterest Ads platform.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_status": {"name": "advertiser_status", "description": "Status of the advertiser account.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_code": {"name": "currency_code", "description": "The currency code which the advertiser is set up using.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "The country code where the advertiser is located.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_type": {"name": "billing_type", "description": "The billing type of the advertiser. Will typically be CREDIT_CARD or INVOICE.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1686087007.198962, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__advertiser_report\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith report as (\n\n select *\n from {{ var('advertiser_report') }}\n), \n\nadvertisers as (\n\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n report.advertiser_id,\n advertisers.advertiser_status,\n advertisers.currency_code,\n advertisers.country,\n advertisers.billing_type,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__advertiser_report_passthrough_metrics', transform = 'sum') }}\n\n from report\n left join advertisers\n on report.advertiser_id = advertisers.advertiser_id\n {{ dbt_utils.group_by(7) }}\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_report"], ["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_report", "model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__advertiser_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_report\"\n), \n\nadvertisers as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_history\"\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n report.advertiser_id,\n advertisers.advertiser_status,\n advertisers.currency_code,\n advertisers.country,\n advertisers.billing_type,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n \n\n\n\n\n\n from report\n left join advertisers\n on report.advertiser_id = advertisers.advertiser_id\n group by 1,2,3,4,5,6,7\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest.pinterest_ads__pin_promotion_report": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__pin_promotion_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__pin_promotion_report.sql", "original_file_path": "models/pinterest_ads__pin_promotion_report.sql", "unique_id": "model.pinterest.pinterest_ads__pin_promotion_report", "fqn": ["pinterest", "pinterest_ads__pin_promotion_report"], "alias": "pinterest_ads__pin_promotion_report", "checksum": {"name": "sha256", "checksum": "2784c143da7bdc10c3f26c175533bf2a6b688624492925b0d95ebdded2a6c873"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the advertiser, campaign, ad group, and pin level.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "creative_type": {"name": "creative_type", "description": "The creative type. \nOne of \"APP\", \"APP_VIDEO\", \"BOARD\", \"CAROUSEL\", \"CINEMATIC\", \"COMMERCE\", \"MAX_VIDEO\", \"NATIVE_VIDEO\", \"REGULAR\", \n\"SEARCH_PROMINENCE\", \"SEARCH_PROMINENCE_CAROUSEL\", \"SHOPPING\", \"SHOP_THE_PIN\", \"THIRD_PARTY\", or \"VIDEO\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_name": {"name": "pin_name", "description": "Name of the pin.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_status": {"name": "pin_status", "description": "Status of the pin.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "destination_url": {"name": "destination_url", "description": "Pin destination URL.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "base_url": {"name": "base_url", "description": "The base URL of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1686087007.2045681, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__pin_promotion_report\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith report as (\n\n select *\n from {{ var('pin_promotion_report') }}\n), \n\npins as (\n\n select *\n from {{ var('pin_promotion_history') }}\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from {{ var('ad_group_history') }}\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from {{ var('campaign_history') }}\n where is_most_recent_record = True\n),\n\nadvertisers as (\n\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n), \n\njoined as (\n\n select\n report.date_day,\n campaigns.advertiser_id,\n advertisers.advertiser_name,\n report.campaign_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n report.ad_group_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_status,\n pins.creative_type,\n report.pin_promotion_id,\n pins.pin_name,\n pins.pin_status,\n pins.destination_url,\n pins.base_url,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions,\n sum(report.spend) as spend\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__pin_promotion_report_passthrough_metrics', transform = 'sum') }}\n\n from report \n left join pins \n on report.pin_promotion_id = pins.pin_promotion_id\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns \n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n\n {{ dbt_utils.group_by(15) }}\n)\n\nselect * \nfrom joined", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report"], ["stg_pinterest_ads__pin_promotion_history"], ["stg_pinterest_ads__ad_group_history"], ["stg_pinterest_ads__campaign_history"], ["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__pin_promotion_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_report\"\n), \n\npins as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_history\"\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_history\"\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_history\"\n where is_most_recent_record = True\n),\n\nadvertisers as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_history\"\n where is_most_recent_record = True\n), \n\njoined as (\n\n select\n report.date_day,\n campaigns.advertiser_id,\n advertisers.advertiser_name,\n report.campaign_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n report.ad_group_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_status,\n pins.creative_type,\n report.pin_promotion_id,\n pins.pin_name,\n pins.pin_status,\n pins.destination_url,\n pins.base_url,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions,\n sum(report.spend) as spend\n\n \n\n\n\n\n\n from report \n left join pins \n on report.pin_promotion_id = pins.pin_promotion_id\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns \n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n\n group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15\n)\n\nselect * \nfrom joined", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest.pinterest_ads__ad_group_report": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest", "name": "pinterest_ads__ad_group_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__ad_group_report.sql", "original_file_path": "models/pinterest_ads__ad_group_report.sql", "unique_id": "model.pinterest.pinterest_ads__ad_group_report", "fqn": ["pinterest", "pinterest_ads__ad_group_report"], "alias": "pinterest_ads__ad_group_report", "checksum": {"name": "sha256", "checksum": "d1304e8b32bec7251d7873aae88ed9f0bdbd754eda4fb64133ad79c8124906f6"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the campaign, advertiser, and ad group level.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "The name of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "The name of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Ad group creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "start_time": {"name": "start_time", "description": "Ad group start time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "end_time": {"name": "end_time", "description": "Ad group end time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1686087007.195041, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__ad_group_report\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith report as (\n\n select *\n from {{ var('ad_group_report') }}\n), \n\nadvertisers as (\n\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from {{ var('campaign_history') }}\n where is_most_recent_record = True\n),\n\nad_groups as (\n\n select *\n from {{ var('ad_group_history') }}\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n campaigns.campaign_id,\n ad_groups.ad_group_name,\n report.ad_group_id,\n ad_groups.created_at,\n ad_groups.start_time,\n ad_groups.end_time,\n ad_groups.ad_group_status,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__ad_group_report_passthrough_metrics', transform = 'sum') }}\n\n from report\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns\n on ad_groups.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n {{ dbt_utils.group_by(12) }}\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_report"], ["stg_pinterest_ads__advertiser_history"], ["stg_pinterest_ads__campaign_history"], ["stg_pinterest_ads__ad_group_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_report", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__ad_group_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__ad_group_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_report\"\n), \n\nadvertisers as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_history\"\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_history\"\n where is_most_recent_record = True\n),\n\nad_groups as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_history\"\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n campaigns.campaign_id,\n ad_groups.ad_group_name,\n report.ad_group_id,\n ad_groups.created_at,\n ad_groups.start_time,\n ad_groups.end_time,\n ad_groups.ad_group_status,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n \n\n\n\n\n\n from report\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns\n on ad_groups.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n group by 1,2,3,4,5,6,7,8,9,10,11,12\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_history": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_history", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__pin_promotion_history.sql", "original_file_path": "models/stg_pinterest_ads__pin_promotion_history.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "fqn": ["pinterest_source", "stg_pinterest_ads__pin_promotion_history"], "alias": "stg_pinterest_ads__pin_promotion_history", "checksum": {"name": "sha256", "checksum": "e24e7b799bab5b8e676d2cd221c948f13063c4ac00fe3a6bdfe459413bb1a404"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents a version of a Pinterest Pin promotion.", "columns": {"pin_promotion_id": {"name": "pin_promotion_id", "description": "Pin promotion ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "Pin promotion ad group ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Pin creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "destination_url": {"name": "destination_url", "description": "Pin destination URL.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_name": {"name": "pin_name", "description": "Pin promotion name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_id": {"name": "pin_id", "description": "Original pin ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_status": {"name": "pin_status", "description": "The status of the Pin promotion. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "creative_type": {"name": "creative_type", "description": "The creative type. \nOne of \"APP\", \"APP_VIDEO\", \"BOARD\", \"CAROUSEL\", \"CINEMATIC\", \"COMMERCE\", \"MAX_VIDEO\", \"NATIVE_VIDEO\", \"REGULAR\", \n\"SEARCH_PROMINENCE\", \"SEARCH_PROMINENCE_CAROUSEL\", \"SHOPPING\", \"SHOP_THE_PIN\", \"THIRD_PARTY\", or \"VIDEO\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_most_recent_record": {"name": "is_most_recent_record", "description": "Boolean representing whether the record is the most recent version of the object.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "base_url": {"name": "base_url", "description": "The base URL of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "url_host": {"name": "url_host", "description": "The URL host of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "url_path": {"name": "url_path", "description": "The URL path of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_source": {"name": "utm_source", "description": "The utm_source parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_medium": {"name": "utm_medium", "description": "The utm_medium parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_campaign": {"name": "utm_campaign", "description": "The utm_campaign parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_content": {"name": "utm_content", "description": "The utm_content parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_term": {"name": "utm_term", "description": "The utm_term parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1686087007.255237, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_pinterest_ads__pin_promotion_history_tmp') }}\n), \n\nfields as (\n\n select\n\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__pin_promotion_history_tmp')),\n staging_columns=get_pin_promotion_history_columns()\n )\n }}\n from base\n), \n\nfinal as (\n\n select\n id as pin_promotion_id,\n ad_group_id,\n created_time as created_at,\n destination_url,\n {{ dbt.split_part('destination_url', \"'?'\", 1) }} as base_url,\n {{ dbt_utils.get_url_host('destination_url') }} as url_host,\n '/' || {{ dbt_utils.get_url_path('destination_url') }} as url_path,\n {{ dbt_utils.get_url_parameter('destination_url', 'utm_source') }} as utm_source,\n {{ dbt_utils.get_url_parameter('destination_url', 'utm_medium') }} as utm_medium,\n {{ dbt_utils.get_url_parameter('destination_url', 'utm_campaign') }} as utm_campaign,\n {{ dbt_utils.get_url_parameter('destination_url', 'utm_content') }} as utm_content,\n {{ dbt_utils.get_url_parameter('destination_url', 'utm_term') }} as utm_term,\n name as pin_name,\n pin_id,\n status as pin_status,\n creative_type,\n _fivetran_synced,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_history_tmp"], ["stg_pinterest_ads__pin_promotion_history_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_pin_promotion_history_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.split_part", "macro.dbt_utils.get_url_host", "macro.dbt_utils.get_url_path", "macro.dbt_utils.get_url_parameter"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__pin_promotion_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_history_tmp\"\n), \n\nfields as (\n\n select\n\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n ad_group_id\n \n as \n \n ad_group_id\n \n, \n cast(null as TEXT) as \n \n android_deep_link\n \n , \n cast(null as TEXT) as \n \n click_tracking_url\n \n , \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n creative_type\n \n as \n \n creative_type\n \n, \n \n \n destination_url\n \n as \n \n destination_url\n \n, \n \n \n id\n \n as \n \n id\n \n, \n cast(null as TEXT) as \n \n ios_deep_link\n \n , \n cast(null as boolean) as \n \n is_pin_deleted\n \n , \n cast(null as boolean) as \n \n is_removable\n \n , \n \n \n name\n \n as \n \n name\n \n, \n \n \n pin_id\n \n as \n \n pin_id\n \n, \n cast(null as TEXT) as \n \n review_status\n \n , \n \n \n status\n \n as \n \n status\n \n, \n cast(null as TIMESTAMP) as \n \n updated_time\n \n , \n cast(null as TEXT) as \n \n view_tracking_url\n \n \n\n\n from base\n), \n\nfinal as (\n\n select\n id as pin_promotion_id,\n ad_group_id,\n created_time as created_at,\n destination_url,\n \n\n \n \n\n split_part(\n destination_url,\n '?',\n 1\n )\n\n\n \n\n as base_url,\n \n \n cast(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n \n\n replace(\n \n\n replace(\n \n\n replace(\n destination_url,\n 'android-app://',\n ''\n )\n\n\n,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n '/',\n 1\n )\n\n\n \n\n,\n '?',\n 1\n )\n\n\n \n\n as TEXT)\n as url_host,\n '/' || \n \n cast(\n\n \n \n\n split_part(\n \n\n right(\n \n\n replace(\n \n\n replace(\n destination_url,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n \n\n length(\n \n\n replace(\n \n\n replace(\n destination_url,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n )-coalesce(\n nullif(\n\n position(\n '/' in \n\n replace(\n \n\n replace(\n destination_url,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n ), 0),\n \n\n position(\n '?' in \n\n replace(\n \n\n replace(\n destination_url,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n ) - 1\n )\n ),\n '?',\n 1\n )\n\n\n \n\n as TEXT)\n as url_path,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n destination_url,\n 'utm_source=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_source,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n destination_url,\n 'utm_medium=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_medium,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n destination_url,\n 'utm_campaign=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_campaign,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n destination_url,\n 'utm_content=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_content,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n destination_url,\n 'utm_term=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_term,\n name as pin_name,\n pin_id,\n status as pin_status,\n creative_type,\n _fivetran_synced,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__keyword_report": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__keyword_report", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__keyword_report.sql", "original_file_path": "models/stg_pinterest_ads__keyword_report.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_report", "fqn": ["pinterest_source", "stg_pinterest_ads__keyword_report"], "alias": "stg_pinterest_ads__keyword_report", "checksum": {"name": "sha256", "checksum": "a4767f60aa09feaa4871ca86f7b6e4c7ca5527aa4eda6d6681ee33f84c023cff"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of Keywords by ad group, campaign, and advertiser.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "keyword_id": {"name": "keyword_id", "description": "Unique identifier of the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1686087007.2664268, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_report\"", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['ad_reporting__pinterest_ads_enabled','pinterest__using_keywords'])) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__keyword_report_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__keyword_report_tmp')),\n staging_columns=get_keyword_report_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select\n {{ dbt.date_trunc('day', 'date') }} as date_day,\n keyword_id,\n pin_promotion_id,\n ad_group_id,\n ad_group_name,\n ad_group_status,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n {{ fivetran_utils.fill_pass_through_columns('pinterest__keyword_report_passthrough_metrics') }}\n\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__keyword_report_tmp"], ["stg_pinterest_ads__keyword_report_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.pinterest_source.get_keyword_report_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.date_trunc", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_report_tmp", "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__keyword_report.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_report_tmp\"\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n ad_group_id\n \n as \n \n ad_group_id\n \n, \n \n \n ad_group_name\n \n as \n \n ad_group_name\n \n, \n \n \n ad_group_status\n \n as \n \n ad_group_status\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n clickthrough_1\n \n as \n \n clickthrough_1\n \n, \n cast(null as INT) as \n \n clickthrough_2\n \n , \n \n \n date\n \n as \n \n date\n \n, \n \n \n impression_1\n \n as \n \n impression_1\n \n, \n cast(null as INT) as \n \n impression_2\n \n , \n \n \n keyword_id\n \n as \n \n keyword_id\n \n, \n \n \n pin_promotion_id\n \n as \n \n pin_promotion_id\n \n, \n \n \n spend_in_micro_dollar\n \n as \n \n spend_in_micro_dollar\n \n\n\n\n from base\n),\n\nfinal as (\n \n select\n date_trunc('day', date) as date_day,\n keyword_id,\n pin_promotion_id,\n ad_group_id,\n ad_group_name,\n ad_group_status,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n \n\n\n\n\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__ad_group_report": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__ad_group_report", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__ad_group_report.sql", "original_file_path": "models/stg_pinterest_ads__ad_group_report.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_report", "fqn": ["pinterest_source", "stg_pinterest_ads__ad_group_report"], "alias": "stg_pinterest_ads__ad_group_report", "checksum": {"name": "sha256", "checksum": "9617b510c122f03795bf8c8e2978d343fd8ea7a3bc11d4d687c91869e309143f"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of a Pinterest Ad Groups by campaign and advertiser.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1686087007.258224, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_report\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__ad_group_report_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__ad_group_report_tmp')),\n staging_columns=get_ad_group_report_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select \n {{ dbt.date_trunc('day', 'date') }} as date_day,\n ad_group_id,\n ad_group_name,\n ad_group_status,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n {{ fivetran_utils.fill_pass_through_columns('pinterest__ad_group_report_passthrough_metrics') }}\n\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_report_tmp"], ["stg_pinterest_ads__ad_group_report_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_ad_group_report_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.date_trunc", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp", "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__ad_group_report.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_report_tmp\"\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n ad_group_id\n \n as \n \n ad_group_id\n \n, \n \n \n ad_group_name\n \n as \n \n ad_group_name\n \n, \n \n \n ad_group_status\n \n as \n \n ad_group_status\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n clickthrough_1\n \n as \n \n clickthrough_1\n \n, \n cast(null as INT) as \n \n clickthrough_2\n \n , \n \n \n date\n \n as \n \n date\n \n, \n \n \n impression_1\n \n as \n \n impression_1\n \n, \n cast(null as INT) as \n \n impression_2\n \n , \n \n \n spend_in_micro_dollar\n \n as \n \n spend_in_micro_dollar\n \n\n\n\n from base\n),\n\nfinal as (\n \n select \n date_trunc('day', date) as date_day,\n ad_group_id,\n ad_group_name,\n ad_group_status,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n \n\n\n\n\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__campaign_history": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__campaign_history", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__campaign_history.sql", "original_file_path": "models/stg_pinterest_ads__campaign_history.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_history", "fqn": ["pinterest_source", "stg_pinterest_ads__campaign_history"], "alias": "stg_pinterest_ads__campaign_history", "checksum": {"name": "sha256", "checksum": "945f535a560d134e94225647469d1cfbe295ed547b84be7af6575b9d86d4baa0"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents a version of a Pinterest Campaign.", "columns": {"campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Campaign creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Campaign name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "The status of the Campaign. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_most_recent_record": {"name": "is_most_recent_record", "description": "Boolean representing whether the record is the most recent version of the object.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1686087007.252458, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_pinterest_ads__campaign_history_tmp') }}\n), \n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__campaign_history_tmp')),\n staging_columns=get_campaign_history_columns()\n )\n }}\n from base\n), \n\nfinal as (\n\n select \n id as campaign_id,\n name as campaign_name,\n advertiser_id,\n status as campaign_status,\n _fivetran_synced,\n created_time as created_at,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__campaign_history_tmp"], ["stg_pinterest_ads__campaign_history_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_campaign_history_columns", "macro.fivetran_utils.fill_staging_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_history_tmp", "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__campaign_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_history_tmp\"\n), \n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n status\n \n as \n \n status\n \n\n\n\n from base\n), \n\nfinal as (\n\n select \n id as campaign_id,\n name as campaign_name,\n advertiser_id,\n status as campaign_status,\n _fivetran_synced,\n created_time as created_at,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__advertiser_report": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__advertiser_report", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__advertiser_report.sql", "original_file_path": "models/stg_pinterest_ads__advertiser_report.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_report", "fqn": ["pinterest_source", "stg_pinterest_ads__advertiser_report"], "alias": "stg_pinterest_ads__advertiser_report", "checksum": {"name": "sha256", "checksum": "870b2eac0c7dc5686b5b7cc39c6d07f31f8d6f9d6cbc84ae0ee4cf6c2f5b20b8"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of an Advertiser.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1686087007.261184, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_report\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__advertiser_report_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__advertiser_report_tmp')),\n staging_columns=get_advertiser_report_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select \n {{ dbt.date_trunc('day', 'date') }} as date_day,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n {{ fivetran_utils.fill_pass_through_columns('pinterest__advertiser_report_passthrough_metrics') }}\n\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_report_tmp"], ["stg_pinterest_ads__advertiser_report_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_advertiser_report_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.date_trunc", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp", "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__advertiser_report.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_report_tmp\"\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n clickthrough_1\n \n as \n \n clickthrough_1\n \n, \n cast(null as INT) as \n \n clickthrough_2\n \n , \n \n \n date\n \n as \n \n date\n \n, \n \n \n impression_1\n \n as \n \n impression_1\n \n, \n cast(null as INT) as \n \n impression_2\n \n , \n \n \n spend_in_micro_dollar\n \n as \n \n spend_in_micro_dollar\n \n\n\n\n from base\n),\n\nfinal as (\n \n select \n date_trunc('day', date) as date_day,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n \n\n\n\n\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__advertiser_history": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__advertiser_history", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__advertiser_history.sql", "original_file_path": "models/stg_pinterest_ads__advertiser_history.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_history", "fqn": ["pinterest_source", "stg_pinterest_ads__advertiser_history"], "alias": "stg_pinterest_ads__advertiser_history", "checksum": {"name": "sha256", "checksum": "c373922dcac412d7b7290ec100cdf341ca19176968c29f240be32e7acd0ca7d9"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents a version of an advertiser.", "columns": {"advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_status": {"name": "advertiser_status", "description": "Status of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_profile_status": {"name": "billing_profile_status", "description": "Status of the billing profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_type": {"name": "billing_type", "description": "The billing type of the advertiser. Will typically be CREDIT_CARD or INVOICE.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "The country code where the advertiser is located.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when a record was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_code": {"name": "currency_code", "description": "The currency code which the advertiser is set up using.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "merchant_id": {"name": "merchant_id", "description": "Unique ID of the merchant associated with the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "owner_user_id": {"name": "owner_user_id", "description": "Unique identifier of the owner user.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when a record was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_most_recent_record": {"name": "is_most_recent_record", "description": "Boolean representing whether the record is the most recent version of the object.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1686087007.2602081, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__advertiser_history_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__advertiser_history_tmp')),\n staging_columns=get_advertiser_history_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select \n id as advertiser_id,\n name as advertiser_name,\n status as advertiser_status,\n billing_profile_status,\n billing_type,\n country,\n created_time as created_at,\n currency as currency_code,\n merchant_id,\n owner_user_id,\n updated_time as updated_at,\n row_number() over (partition by id order by updated_time desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_history_tmp"], ["stg_pinterest_ads__advertiser_history_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_advertiser_history_columns", "macro.fivetran_utils.fill_staging_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp", "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__advertiser_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_history_tmp\"\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n billing_profile_status\n \n as \n \n billing_profile_status\n \n, \n \n \n billing_type\n \n as \n \n billing_type\n \n, \n \n \n country\n \n as \n \n country\n \n, \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n merchant_id\n \n as \n \n merchant_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n owner_user_id\n \n as \n \n owner_user_id\n \n, \n \n \n status\n \n as \n \n status\n \n, \n \n \n updated_time\n \n as \n \n updated_time\n \n\n\n\n from base\n),\n\nfinal as (\n \n select \n id as advertiser_id,\n name as advertiser_name,\n status as advertiser_status,\n billing_profile_status,\n billing_type,\n country,\n created_time as created_at,\n currency as currency_code,\n merchant_id,\n owner_user_id,\n updated_time as updated_at,\n row_number() over (partition by id order by updated_time desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__campaign_report": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__campaign_report", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__campaign_report.sql", "original_file_path": "models/stg_pinterest_ads__campaign_report.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_report", "fqn": ["pinterest_source", "stg_pinterest_ads__campaign_report"], "alias": "stg_pinterest_ads__campaign_report", "checksum": {"name": "sha256", "checksum": "d329a85922efac69ec814a21b6650f97f0c4658550fb9d345d38c7ba5bfa69bc"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of Campaigns by advertiser.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1686087007.262658, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_report\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__campaign_report_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__campaign_report_tmp')),\n staging_columns=get_campaign_report_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select \n {{ dbt.date_trunc('day', 'date') }} as date_day,\n campaign_id,\n campaign_name,\n campaign_status,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n {{ fivetran_utils.fill_pass_through_columns('pinterest__campaign_report_passthrough_metrics') }}\n\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__campaign_report_tmp"], ["stg_pinterest_ads__campaign_report_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_campaign_report_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.date_trunc", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_report_tmp", "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__campaign_report.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_report_tmp\"\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n campaign_name\n \n as \n \n campaign_name\n \n, \n \n \n campaign_status\n \n as \n \n campaign_status\n \n, \n \n \n clickthrough_1\n \n as \n \n clickthrough_1\n \n, \n cast(null as INT) as \n \n clickthrough_2\n \n , \n \n \n date\n \n as \n \n date\n \n, \n \n \n impression_1\n \n as \n \n impression_1\n \n, \n cast(null as INT) as \n \n impression_2\n \n , \n \n \n spend_in_micro_dollar\n \n as \n \n spend_in_micro_dollar\n \n\n\n\n from base\n),\n\nfinal as (\n \n select \n date_trunc('day', date) as date_day,\n campaign_id,\n campaign_name,\n campaign_status,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n \n\n\n\n\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__keyword_history": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__keyword_history", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__keyword_history.sql", "original_file_path": "models/stg_pinterest_ads__keyword_history.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_history", "fqn": ["pinterest_source", "stg_pinterest_ads__keyword_history"], "alias": "stg_pinterest_ads__keyword_history", "checksum": {"name": "sha256", "checksum": "5fa0b876a19dec2d8b7c78a1fcd57679481f6ce68fb00781c57fe4b147ef511e"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of a Keyword.", "columns": {"keyword_id": {"name": "keyword_id", "description": "Unique identifier of the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "keyword_value": {"name": "keyword_value", "description": "The text value that makes upd the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_id": {"name": "_fivetran_id", "description": "The unique identifier of the record within the Fivetran synced table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "archived": {"name": "archived", "description": "Boolean indicating if the keyword is archived.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "bid": {"name": "bid", "description": "Bid amount set for the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "match_type": {"name": "match_type", "description": "Type of match the keyword is tied to. Either Exact or Broad.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_type": {"name": "parent_type", "description": "Identifier of what grain the parent type is. Ad group or campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_most_recent_record": {"name": "is_most_recent_record", "description": "Boolean representing whether the record is the most recent version of the object.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1686087007.264641, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_history\"", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['ad_reporting__pinterest_ads_enabled','pinterest__using_keywords'])) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__keyword_history_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__keyword_history_tmp')),\n staging_columns=get_keyword_history_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select\n id as keyword_id,\n value as keyword_value,\n _fivetran_id,\n _fivetran_synced,\n ad_group_id,\n advertiser_id,\n archived,\n bid,\n campaign_id,\n match_type,\n parent_type,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__keyword_history_tmp"], ["stg_pinterest_ads__keyword_history_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.pinterest_source.get_keyword_history_columns", "macro.fivetran_utils.fill_staging_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_history_tmp", "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__keyword_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_history_tmp\"\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_id\n \n as \n \n _fivetran_id\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n ad_group_id\n \n as \n \n ad_group_id\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n archived\n \n as \n \n archived\n \n, \n \n \n bid\n \n as \n \n bid\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n match_type\n \n as \n \n match_type\n \n, \n \n \n parent_type\n \n as \n \n parent_type\n \n, \n \n \n value\n \n as \n \n value\n \n\n\n\n from base\n),\n\nfinal as (\n \n select\n id as keyword_id,\n value as keyword_value,\n _fivetran_id,\n _fivetran_synced,\n ad_group_id,\n advertiser_id,\n archived,\n bid,\n campaign_id,\n match_type,\n parent_type,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_report": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_report", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__pin_promotion_report.sql", "original_file_path": "models/stg_pinterest_ads__pin_promotion_report.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_report", "fqn": ["pinterest_source", "stg_pinterest_ads__pin_promotion_report"], "alias": "stg_pinterest_ads__pin_promotion_report", "checksum": {"name": "sha256", "checksum": "8399848dccc00c25a8bc40f817330fe92ac295b3afdb9742d663200a25a0fdc0"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of a Pinterest Pin promotion by ad group, campaign, and advertiser.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1686087007.2566311, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_report\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_pinterest_ads__pin_promotion_report_tmp') }}\n), \n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__pin_promotion_report_tmp')),\n staging_columns=get_pin_promotion_report_columns()\n )\n }}\n from base\n), \n\nfinal as (\n\n select \n {{ dbt.date_trunc('day', 'date') }} as date_day,\n pin_promotion_id,\n ad_group_id,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n {{ fivetran_utils.fill_pass_through_columns('pinterest__pin_promotion_report_passthrough_metrics') }}\n\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report_tmp"], ["stg_pinterest_ads__pin_promotion_report_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_pin_promotion_report_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.date_trunc", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp", "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__pin_promotion_report.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_report_tmp\"\n), \n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n ad_group_id\n \n as \n \n ad_group_id\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n clickthrough_1\n \n as \n \n clickthrough_1\n \n, \n \n \n clickthrough_2\n \n as \n \n clickthrough_2\n \n, \n \n \n date\n \n as \n \n date\n \n, \n \n \n impression_1\n \n as \n \n impression_1\n \n, \n \n \n impression_2\n \n as \n \n impression_2\n \n, \n \n \n pin_promotion_id\n \n as \n \n pin_promotion_id\n \n, \n \n \n spend_in_micro_dollar\n \n as \n \n spend_in_micro_dollar\n \n\n\n\n from base\n), \n\nfinal as (\n\n select \n date_trunc('day', date) as date_day,\n pin_promotion_id,\n ad_group_id,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n \n\n\n\n\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__ad_group_history": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__ad_group_history", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__ad_group_history.sql", "original_file_path": "models/stg_pinterest_ads__ad_group_history.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_history", "fqn": ["pinterest_source", "stg_pinterest_ads__ad_group_history"], "alias": "stg_pinterest_ads__ad_group_history", "checksum": {"name": "sha256", "checksum": "3fc611eb025a550beebacb144b8fd5b95070cc7d212cdc73029b5e2132272902"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents a version of a Pinterest Ad Group.", "columns": {"ad_group_id": {"name": "ad_group_id", "description": "Ad group ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Parent Campaign ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Ad group creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Ad group name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "The status of the Ad group. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "start_time": {"name": "start_time", "description": "Ad group start time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "end_time": {"name": "end_time", "description": "Ad group end time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_most_recent_record": {"name": "is_most_recent_record", "description": "Boolean representing whether the record is the most recent version of the object.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1686087007.251157, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_pinterest_ads__ad_group_history_tmp') }}\n), \n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__ad_group_history_tmp')),\n staging_columns=get_ad_group_history_columns()\n )\n }}\n from base\n), \n\nfinal as (\n\n select \n id as ad_group_id,\n name as ad_group_name,\n status as ad_group_status,\n _fivetran_synced,\n campaign_id,\n created_time as created_at,\n end_time,\n start_time,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_history_tmp"], ["stg_pinterest_ads__ad_group_history_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_ad_group_history_columns", "macro.fivetran_utils.fill_staging_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp", "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__ad_group_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_history_tmp\"\n), \n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n end_time\n \n as \n \n end_time\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n start_time\n \n as \n \n start_time\n \n, \n \n \n status\n \n as \n \n status\n \n\n\n\n from base\n), \n\nfinal as (\n\n select \n id as ad_group_id,\n name as ad_group_name,\n status as ad_group_status,\n _fivetran_synced,\n campaign_id,\n created_time as created_at,\n end_time,\n start_time,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__advertiser_history_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__advertiser_history_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__advertiser_history_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__advertiser_history_tmp"], "alias": "stg_pinterest_ads__advertiser_history_tmp", "checksum": {"name": "sha256", "checksum": "30228e737c74f3502de539edf195e6ac0f1bc20d81b4625f2a7d38b7b444e025"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1686087007.1424232, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect * \nfrom {{ var('advertiser_history') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "advertiser_history"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.advertiser_history"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__advertiser_history_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom \"postgres\".\"pinterest_integration_tests_3\".\"advertiser_history_data\"", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_report_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__pin_promotion_report_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__pin_promotion_report_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__pin_promotion_report_tmp"], "alias": "stg_pinterest_ads__pin_promotion_report_tmp", "checksum": {"name": "sha256", "checksum": "055e6b22a0ebf3ae5ebc592a2d59fde23e9c4aa97307e7bc9d07fdd564d29318"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1686087007.147528, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_report_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect *\nfrom {{ var('pin_promotion_report') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "pin_promotion_report"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__pin_promotion_report_tmp.sql", "compiled": true, "compiled_code": "\n\nselect *\nfrom \"postgres\".\"pinterest_integration_tests_3\".\"pin_promotion_report_data\"", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__campaign_report_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__campaign_report_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__campaign_report_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__campaign_report_tmp"], "alias": "stg_pinterest_ads__campaign_report_tmp", "checksum": {"name": "sha256", "checksum": "297b62832ce1e1cf4ec432c98f64696ae82b6d5461ba9a6991f9143d8680600e"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1686087007.151105, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_report_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect * \nfrom {{ var('campaign_report') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "campaign_report"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.campaign_report"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__campaign_report_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom \"postgres\".\"pinterest_integration_tests_3\".\"campaign_report_data\"", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__advertiser_report_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__advertiser_report_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__advertiser_report_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__advertiser_report_tmp"], "alias": "stg_pinterest_ads__advertiser_report_tmp", "checksum": {"name": "sha256", "checksum": "51f6279568da2b328c230e1141b82a8d4cf23f0db1d71797da244ba0f850f80c"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1686087007.154801, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_report_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect * \nfrom {{ var('advertiser_report') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "advertiser_report"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.advertiser_report"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__advertiser_report_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom \"postgres\".\"pinterest_integration_tests_3\".\"advertiser_report_data\"", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__keyword_report_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__keyword_report_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__keyword_report_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__keyword_report_tmp"], "alias": "stg_pinterest_ads__keyword_report_tmp", "checksum": {"name": "sha256", "checksum": "a603d5856a7cc1507026d2353343160d142d4f3e5f3aad65b9913481fb376e62"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1686087007.158401, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_report_tmp\"", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['ad_reporting__pinterest_ads_enabled','pinterest__using_keywords'])) }}\n\nselect * \nfrom {{ var('keyword_report') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "keyword_report"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["source.pinterest_source.pinterest_ads.keyword_report"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__keyword_report_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom \"postgres\".\"pinterest_integration_tests_3\".\"keyword_report_data\"", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__ad_group_report_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__ad_group_report_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__ad_group_report_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__ad_group_report_tmp"], "alias": "stg_pinterest_ads__ad_group_report_tmp", "checksum": {"name": "sha256", "checksum": "416b2ba76c7422ae9d0cc9027cfda76b1461ead0158a8cc3d7bcec5765fa7fa4"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1686087007.162081, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_report_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect * \nfrom {{ var('ad_group_report') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "ad_group_report"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.ad_group_report"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__ad_group_report_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom \"postgres\".\"pinterest_integration_tests_3\".\"ad_group_report_data\"", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__keyword_history_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__keyword_history_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__keyword_history_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__keyword_history_tmp"], "alias": "stg_pinterest_ads__keyword_history_tmp", "checksum": {"name": "sha256", "checksum": "86ecdeb7b346c99cdef8a6c1ba967e38021c0c2197dcf1e414fa783a7ae39637"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1686087007.166593, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_history_tmp\"", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['ad_reporting__pinterest_ads_enabled','pinterest__using_keywords'])) }}\n\nselect * \nfrom {{ var('keyword_history') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "keyword_history"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["source.pinterest_source.pinterest_ads.keyword_history"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__keyword_history_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom \"postgres\".\"pinterest_integration_tests_3\".\"keyword_history_data\"", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__campaign_history_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__campaign_history_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__campaign_history_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__campaign_history_tmp"], "alias": "stg_pinterest_ads__campaign_history_tmp", "checksum": {"name": "sha256", "checksum": "6b6e9567363f5912e8f6c2f8547e79e160a7e998dbfb2ac6fe193c73949b9163"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1686087007.170351, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect *\nfrom {{ var('campaign_history') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "campaign_history"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.campaign_history"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__campaign_history_tmp.sql", "compiled": true, "compiled_code": "\n\nselect *\nfrom \"postgres\".\"pinterest_integration_tests_3\".\"campaign_history_data\"", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__ad_group_history_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__ad_group_history_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__ad_group_history_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__ad_group_history_tmp"], "alias": "stg_pinterest_ads__ad_group_history_tmp", "checksum": {"name": "sha256", "checksum": "781c3dac60c7fc9e9f08f8ad4fce2e5fec42b09036486e24814e717cec4b4ce3"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1686087007.17388, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect *\nfrom {{ var('ad_group_history') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "ad_group_history"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.ad_group_history"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__ad_group_history_tmp.sql", "compiled": true, "compiled_code": "\n\nselect *\nfrom \"postgres\".\"pinterest_integration_tests_3\".\"ad_group_history_data\"", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp": {"database": "postgres", "schema": "pinterest_integration_tests_3_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_history_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__pin_promotion_history_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__pin_promotion_history_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__pin_promotion_history_tmp"], "alias": "stg_pinterest_ads__pin_promotion_history_tmp", "checksum": {"name": "sha256", "checksum": "268ac897534336c397f3c313861c98d0a47f3022d3fc2aefcc201fb3d1db81b9"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1686087007.177304, "relation_name": "\"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect *\nfrom {{ var('pin_promotion_history') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "pin_promotion_history"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.pin_promotion_history"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__pin_promotion_history_tmp.sql", "compiled": true, "compiled_code": "\n\nselect *\nfrom \"postgres\".\"pinterest_integration_tests_3\".\"pin_promotion_history_data\"", "extra_ctes_injected": true, "extra_ctes": []}, "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__url_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__url_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__url_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e", "fqn": ["pinterest", "not_null_pinterest_ads__url_report_date_day"], "alias": "not_null_pinterest_ads__url_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.209622, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__url_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__url_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__url_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__url_report\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__url_report"}, "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "destination_url", "model": "{{ get_where_subquery(ref('pinterest_ads__url_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__url_report_destination_url", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__url_report_destination_url.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502", "fqn": ["pinterest", "not_null_pinterest_ads__url_report_destination_url"], "alias": "not_null_pinterest_ads__url_report_destination_url", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"enabled": true}, "created_at": 1686087007.211159, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(enabled=True) }}", "language": "sql", "refs": [["pinterest_ads__url_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__url_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__url_report_destination_url.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect destination_url\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__url_report\"\nwhere destination_url is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "destination_url", "file_key_name": "models.pinterest_ads__url_report"}, "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "pin_promotion_id", "model": "{{ get_where_subquery(ref('pinterest_ads__url_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__url_report_pin_promotion_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__url_report_pin_promotion_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a", "fqn": ["pinterest", "not_null_pinterest_ads__url_report_pin_promotion_id"], "alias": "not_null_pinterest_ads__url_report_pin_promotion_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.21221, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__url_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__url_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__url_report_pin_promotion_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect pin_promotion_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__url_report\"\nwhere pin_promotion_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "pin_promotion_id", "file_key_name": "models.pinterest_ads__url_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["pin_promotion_id", "ad_group_id", "campaign_id", "advertiser_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__url_report')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day"], "alias": "dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4"}, "created_at": 1686087007.213556, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(enabled=True,alias=\"dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4\") }}", "language": "sql", "refs": [["pinterest_ads__url_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__url_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n pin_promotion_id, ad_group_id, campaign_id, advertiser_id, date_day\n from \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__url_report\"\n group by pin_promotion_id, ad_group_id, campaign_id, advertiser_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__url_report"}, "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__ad_group_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__ad_group_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__ad_group_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7", "fqn": ["pinterest", "not_null_pinterest_ads__ad_group_report_date_day"], "alias": "not_null_pinterest_ads__ad_group_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.221357, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__ad_group_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__ad_group_report\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__ad_group_report"}, "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "ad_group_id", "model": "{{ get_where_subquery(ref('pinterest_ads__ad_group_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__ad_group_report_ad_group_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__ad_group_report_ad_group_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2", "fqn": ["pinterest", "not_null_pinterest_ads__ad_group_report_ad_group_id"], "alias": "not_null_pinterest_ads__ad_group_report_ad_group_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.222379, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__ad_group_report_ad_group_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect ad_group_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__ad_group_report\"\nwhere ad_group_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "ad_group_id", "file_key_name": "models.pinterest_ads__ad_group_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["ad_group_id", "advertiser_id", "campaign_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__ad_group_report')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day"], "alias": "dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506"}, "created_at": 1686087007.223396, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506\") }}", "language": "sql", "refs": [["pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n ad_group_id, advertiser_id, campaign_id, date_day\n from \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__ad_group_report\"\n group by ad_group_id, advertiser_id, campaign_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__ad_group_report"}, "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__campaign_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__campaign_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__campaign_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf", "fqn": ["pinterest", "not_null_pinterest_ads__campaign_report_date_day"], "alias": "not_null_pinterest_ads__campaign_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.226558, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__campaign_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__campaign_report\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__campaign_report"}, "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('pinterest_ads__campaign_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__campaign_report_campaign_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__campaign_report_campaign_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2", "fqn": ["pinterest", "not_null_pinterest_ads__campaign_report_campaign_id"], "alias": "not_null_pinterest_ads__campaign_report_campaign_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.227687, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__campaign_report_campaign_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__campaign_report\"\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "campaign_id", "file_key_name": "models.pinterest_ads__campaign_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_id", "advertiser_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__campaign_report')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day"], "alias": "dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334"}, "created_at": 1686087007.228702, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334\") }}", "language": "sql", "refs": [["pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_id, advertiser_id, date_day\n from \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__campaign_report\"\n group by campaign_id, advertiser_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__campaign_report"}, "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__advertiser_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__advertiser_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__advertiser_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca", "fqn": ["pinterest", "not_null_pinterest_ads__advertiser_report_date_day"], "alias": "not_null_pinterest_ads__advertiser_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.231595, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__advertiser_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__advertiser_report\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__advertiser_report"}, "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "advertiser_id", "model": "{{ get_where_subquery(ref('pinterest_ads__advertiser_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__advertiser_report_advertiser_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__advertiser_report_advertiser_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672", "fqn": ["pinterest", "not_null_pinterest_ads__advertiser_report_advertiser_id"], "alias": "not_null_pinterest_ads__advertiser_report_advertiser_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.2326121, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__advertiser_report_advertiser_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect advertiser_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__advertiser_report\"\nwhere advertiser_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "advertiser_id", "file_key_name": "models.pinterest_ads__advertiser_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["advertiser_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__advertiser_report')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day"], "alias": "dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f"}, "created_at": 1686087007.2335942, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f\") }}", "language": "sql", "refs": [["pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n advertiser_id, date_day\n from \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__advertiser_report\"\n group by advertiser_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__advertiser_report"}, "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__keyword_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__keyword_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__keyword_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba", "fqn": ["pinterest", "not_null_pinterest_ads__keyword_report_date_day"], "alias": "not_null_pinterest_ads__keyword_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.236358, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__keyword_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__keyword_report\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__keyword_report"}, "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "keyword_id", "model": "{{ get_where_subquery(ref('pinterest_ads__keyword_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__keyword_report_keyword_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__keyword_report_keyword_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198", "fqn": ["pinterest", "not_null_pinterest_ads__keyword_report_keyword_id"], "alias": "not_null_pinterest_ads__keyword_report_keyword_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.237371, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__keyword_report_keyword_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect keyword_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__keyword_report\"\nwhere keyword_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "keyword_id", "file_key_name": "models.pinterest_ads__keyword_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["keyword_id", "ad_group_id", "campaign_id", "advertiser_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__keyword_report')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day"], "alias": "dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f"}, "created_at": 1686087007.238533, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f\") }}", "language": "sql", "refs": [["pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n keyword_id, ad_group_id, campaign_id, advertiser_id, date_day\n from \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__keyword_report\"\n group by keyword_id, ad_group_id, campaign_id, advertiser_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__keyword_report"}, "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__pin_promotion_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__pin_promotion_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__pin_promotion_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd", "fqn": ["pinterest", "not_null_pinterest_ads__pin_promotion_report_date_day"], "alias": "not_null_pinterest_ads__pin_promotion_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.241677, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__pin_promotion_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__pin_promotion_report\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__pin_promotion_report"}, "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "pin_promotion_id", "model": "{{ get_where_subquery(ref('pinterest_ads__pin_promotion_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_pinterest_ads__pin_promotion_report_pin_promotion_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561", "fqn": ["pinterest", "not_null_pinterest_ads__pin_promotion_report_pin_promotion_id"], "alias": "not_null_pinterest_ads__pin_promotion_report_pin_promotion_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.242666, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect pin_promotion_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__pin_promotion_report\"\nwhere pin_promotion_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "pin_promotion_id", "file_key_name": "models.pinterest_ads__pin_promotion_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["pin_promotion_id", "ad_group_id", "campaign_id", "advertiser_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__pin_promotion_report')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day"], "alias": "dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c"}, "created_at": 1686087007.243674, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c\") }}", "language": "sql", "refs": [["pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n pin_promotion_id, ad_group_id, campaign_id, advertiser_id, date_day\n from \"postgres\".\"pinterest_integration_tests_3_pinterest\".\"pinterest_ads__pin_promotion_report\"\n group by pin_promotion_id, ad_group_id, campaign_id, advertiser_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__pin_promotion_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "ad_group_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__ad_group_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__ad_group_history_ad_group_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__ad_group_history_ad_group_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__ad_group_history_ad_group_id"], "alias": "not_null_stg_pinterest_ads__ad_group_history_ad_group_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.266985, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__ad_group_history_ad_group_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect ad_group_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_history\"\nwhere ad_group_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "ad_group_id", "file_key_name": "models.stg_pinterest_ads__ad_group_history"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["ad_group_id", "_fivetran_synced"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__ad_group_history')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced"], "alias": "dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7"}, "created_at": 1686087007.268103, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7\") }}", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n ad_group_id, _fivetran_synced\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_history\"\n group by ad_group_id, _fivetran_synced\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__ad_group_history"}, "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__campaign_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__campaign_history_campaign_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__campaign_history_campaign_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__campaign_history_campaign_id"], "alias": "not_null_stg_pinterest_ads__campaign_history_campaign_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.271332, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__campaign_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__campaign_history_campaign_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_history\"\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "campaign_id", "file_key_name": "models.stg_pinterest_ads__campaign_history"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_id", "_fivetran_synced"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__campaign_history')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced"], "alias": "dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b"}, "created_at": 1686087007.272371, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b\") }}", "language": "sql", "refs": [["stg_pinterest_ads__campaign_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_id, _fivetran_synced\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_history\"\n group by campaign_id, _fivetran_synced\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__campaign_history"}, "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "pin_promotion_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__pin_promotion_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id"], "alias": "not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f"}, "created_at": 1686087007.275231, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(alias=\"not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f\") }}", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect pin_promotion_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_history\"\nwhere pin_promotion_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "pin_promotion_id", "file_key_name": "models.stg_pinterest_ads__pin_promotion_history"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["_fivetran_synced", "pin_promotion_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__pin_promotion_history')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id"], "alias": "dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175"}, "created_at": 1686087007.276253, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175\") }}", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n _fivetran_synced, pin_promotion_id\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_history\"\n group by _fivetran_synced, pin_promotion_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__pin_promotion_history"}, "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__pin_promotion_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__pin_promotion_report_date_day", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__pin_promotion_report_date_day.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__pin_promotion_report_date_day"], "alias": "not_null_stg_pinterest_ads__pin_promotion_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.2790022, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__pin_promotion_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_report\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.stg_pinterest_ads__pin_promotion_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "pin_promotion_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__pin_promotion_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id"], "alias": "not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b"}, "created_at": 1686087007.2800279, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(alias=\"not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b\") }}", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect pin_promotion_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_report\"\nwhere pin_promotion_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "pin_promotion_id", "file_key_name": "models.stg_pinterest_ads__pin_promotion_report"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "pin_promotion_id", "ad_group_id", "campaign_id", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__pin_promotion_report')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id"], "alias": "dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19"}, "created_at": 1686087007.281271, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19\") }}", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, pin_promotion_id, ad_group_id, campaign_id, advertiser_id\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__pin_promotion_report\"\n group by date_day, pin_promotion_id, ad_group_id, campaign_id, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__pin_promotion_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__ad_group_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__ad_group_report_date_day", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__ad_group_report_date_day.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__ad_group_report_date_day"], "alias": "not_null_stg_pinterest_ads__ad_group_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.2844229, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__ad_group_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_report\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.stg_pinterest_ads__ad_group_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "ad_group_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__ad_group_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__ad_group_report_ad_group_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__ad_group_report_ad_group_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__ad_group_report_ad_group_id"], "alias": "not_null_stg_pinterest_ads__ad_group_report_ad_group_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.285423, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__ad_group_report_ad_group_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect ad_group_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_report\"\nwhere ad_group_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "ad_group_id", "file_key_name": "models.stg_pinterest_ads__ad_group_report"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "ad_group_id", "campaign_id", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__ad_group_report')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id"], "alias": "dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8"}, "created_at": 1686087007.2863948, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8\") }}", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, ad_group_id, campaign_id, advertiser_id\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__ad_group_report\"\n group by date_day, ad_group_id, campaign_id, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__ad_group_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "advertiser_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__advertiser_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__advertiser_history_advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__advertiser_history_advertiser_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__advertiser_history_advertiser_id"], "alias": "not_null_stg_pinterest_ads__advertiser_history_advertiser_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.289423, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__advertiser_history_advertiser_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect advertiser_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_history\"\nwhere advertiser_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "advertiser_id", "file_key_name": "models.stg_pinterest_ads__advertiser_history"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["updated_at", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__advertiser_history')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id"], "alias": "dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733"}, "created_at": 1686087007.2904499, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733\") }}", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n updated_at, advertiser_id\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_history\"\n group by updated_at, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__advertiser_history"}, "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__advertiser_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__advertiser_report_date_day", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__advertiser_report_date_day.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__advertiser_report_date_day"], "alias": "not_null_stg_pinterest_ads__advertiser_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.293198, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__advertiser_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_report\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.stg_pinterest_ads__advertiser_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "advertiser_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__advertiser_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__advertiser_report_advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__advertiser_report_advertiser_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__advertiser_report_advertiser_id"], "alias": "not_null_stg_pinterest_ads__advertiser_report_advertiser_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.29422, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__advertiser_report_advertiser_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect advertiser_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_report\"\nwhere advertiser_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "advertiser_id", "file_key_name": "models.stg_pinterest_ads__advertiser_report"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__advertiser_report')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id"], "alias": "dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de"}, "created_at": 1686087007.295358, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de\") }}", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, advertiser_id\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__advertiser_report\"\n group by date_day, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__advertiser_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__campaign_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__campaign_report_date_day", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__campaign_report_date_day.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__campaign_report_date_day"], "alias": "not_null_stg_pinterest_ads__campaign_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.2981288, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__campaign_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_report\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.stg_pinterest_ads__campaign_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__campaign_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__campaign_report_campaign_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__campaign_report_campaign_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__campaign_report_campaign_id"], "alias": "not_null_stg_pinterest_ads__campaign_report_campaign_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.299152, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__campaign_report_campaign_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_report\"\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "campaign_id", "file_key_name": "models.stg_pinterest_ads__campaign_report"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "campaign_id", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__campaign_report')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id"], "alias": "dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf"}, "created_at": 1686087007.300172, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf\") }}", "language": "sql", "refs": [["stg_pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, campaign_id, advertiser_id\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__campaign_report\"\n group by date_day, campaign_id, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__campaign_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "keyword_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__keyword_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__keyword_history_keyword_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__keyword_history_keyword_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__keyword_history_keyword_id"], "alias": "not_null_stg_pinterest_ads__keyword_history_keyword_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.3030882, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__keyword_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__keyword_history_keyword_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect keyword_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_history\"\nwhere keyword_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "keyword_id", "file_key_name": "models.stg_pinterest_ads__keyword_history"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["keyword_id", "ad_group_id", "_fivetran_synced"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__keyword_history')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced"], "alias": "dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628"}, "created_at": 1686087007.304082, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628\") }}", "language": "sql", "refs": [["stg_pinterest_ads__keyword_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n keyword_id, ad_group_id, _fivetran_synced\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_history\"\n group by keyword_id, ad_group_id, _fivetran_synced\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__keyword_history"}, "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__keyword_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__keyword_report_date_day", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__keyword_report_date_day.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__keyword_report_date_day"], "alias": "not_null_stg_pinterest_ads__keyword_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.3070521, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__keyword_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_report\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.stg_pinterest_ads__keyword_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "keyword_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__keyword_report')) }}"}, "namespace": null}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "not_null_stg_pinterest_ads__keyword_report_keyword_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__keyword_report_keyword_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__keyword_report_keyword_id"], "alias": "not_null_stg_pinterest_ads__keyword_report_keyword_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1686087007.308075, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__keyword_report_keyword_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect keyword_id\nfrom \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_report\"\nwhere keyword_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "keyword_id", "file_key_name": "models.stg_pinterest_ads__keyword_report"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "keyword_id", "pin_promotion_id", "ad_group_id", "campaign_id", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__keyword_report')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "pinterest_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id"], "alias": "dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236"}, "created_at": 1686087007.309241, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236\") }}", "language": "sql", "refs": [["stg_pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, keyword_id, pin_promotion_id, ad_group_id, campaign_id, advertiser_id\n from \"postgres\".\"pinterest_integration_tests_3_pinterest_source\".\"stg_pinterest_ads__keyword_report\"\n group by date_day, keyword_id, pin_promotion_id, ad_group_id, campaign_id, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__keyword_report"}}, "sources": {"source.pinterest_source.pinterest_ads.pin_promotion_report": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "pin_promotion_report", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.pin_promotion_report", "fqn": ["pinterest_source", "pinterest_ads", "pin_promotion_report"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "pin_promotion_report_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents the daily performance of a Pinterest Pin promotion.", "columns": {"date": {"name": "date", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_1": {"name": "impression_1", "description": "The number of paid pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_2": {"name": "impression_2", "description": "The number of earned pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_1": {"name": "clickthrough_1", "description": "The number of paid pin clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_2": {"name": "clickthrough_2", "description": "The number of earned outbound clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "description": "The amount of spend in micro dollars that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"pin_promotion_report_data\"", "created_at": 1686087007.3372312}, "source.pinterest_source.pinterest_ads.pin_promotion_history": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "pin_promotion_history", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.pin_promotion_history", "fqn": ["pinterest_source", "pinterest_ads", "pin_promotion_history"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "pin_promotion_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a version of a Pinterest Pin promotion.", "columns": {"id": {"name": "id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "Pin creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "destination_url": {"name": "destination_url", "description": "Pin destination URL.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Pin promotion name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_id": {"name": "pin_id", "description": "Original pin ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the Pin promotion. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "creative_type": {"name": "creative_type", "description": "The creative type. \nOne of \"APP\", \"APP_VIDEO\", \"BOARD\", \"CAROUSEL\", \"CINEMATIC\", \"COMMERCE\", \"MAX_VIDEO\", \"NATIVE_VIDEO\", \"REGULAR\", \n\"SEARCH_PROMINENCE\", \"SEARCH_PROMINENCE_CAROUSEL\", \"SHOPPING\", \"SHOP_THE_PIN\", \"THIRD_PARTY\", or \"VIDEO\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"pin_promotion_history_data\"", "created_at": 1686087007.337377}, "source.pinterest_source.pinterest_ads.campaign_history": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "campaign_history", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.campaign_history", "fqn": ["pinterest_source", "pinterest_ads", "campaign_history"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "campaign_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a version of a Pinterest Campaign.", "columns": {"id": {"name": "id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "Campaign creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Campaign name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the Campaign. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"campaign_history_data\"", "created_at": 1686087007.337489}, "source.pinterest_source.pinterest_ads.ad_group_history": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "ad_group_history", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.ad_group_history", "fqn": ["pinterest_source", "pinterest_ads", "ad_group_history"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "ad_group_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a version of a Pinterest Ad Group.", "columns": {"id": {"name": "id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "Ad group creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Ad group name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the Ad group. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "start_time": {"name": "start_time", "description": "Ad group start time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "end_time": {"name": "end_time", "description": "Ad group end time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"ad_group_history_data\"", "created_at": 1686087007.3376}, "source.pinterest_source.pinterest_ads.ad_group_report": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "ad_group_report", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.ad_group_report", "fqn": ["pinterest_source", "pinterest_ads", "ad_group_report"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "ad_group_report_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents the daily performance of a Pinterest ad group.", "columns": {"date": {"name": "date", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_1": {"name": "impression_1", "description": "The number of paid pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_2": {"name": "impression_2", "description": "The number of earned pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_1": {"name": "clickthrough_1", "description": "The number of paid pin clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_2": {"name": "clickthrough_2", "description": "The number of earned outbound clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "description": "The amount of spend in micro dollars that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"ad_group_report_data\"", "created_at": 1686087007.337713}, "source.pinterest_source.pinterest_ads.advertiser_history": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "advertiser_history", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.advertiser_history", "fqn": ["pinterest_source", "pinterest_ads", "advertiser_history"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "advertiser_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a version of a Pinterest advertiser.", "columns": {"id": {"name": "id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Status of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_profile_status": {"name": "billing_profile_status", "description": "Status of the billing profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_type": {"name": "billing_type", "description": "The billing type of the advertiser. Will typically be CREDIT_CARD or INVOICE.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "The country code where the advertiser is located.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "Timestamp of when a record was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The currency code which the a", "meta": {}, "data_type": null, "quote": null, "tags": []}, "merchant_id": {"name": "merchant_id", "description": "Unique ID of the merchant associated with the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "owner_user_id": {"name": "owner_user_id", "description": "Unique identifier of the owner user.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_time": {"name": "updated_time", "description": "Timestamp of when a record was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"advertiser_history_data\"", "created_at": 1686087007.337829}, "source.pinterest_source.pinterest_ads.advertiser_report": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "advertiser_report", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.advertiser_report", "fqn": ["pinterest_source", "pinterest_ads", "advertiser_report"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "advertiser_report_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents the daily performance of a Pinterest advertiser.", "columns": {"date": {"name": "date", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_1": {"name": "impression_1", "description": "The number of paid pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_2": {"name": "impression_2", "description": "The number of earned pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_1": {"name": "clickthrough_1", "description": "The number of paid pin clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_2": {"name": "clickthrough_2", "description": "The number of earned outbound clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "description": "The amount of spend in micro dollars that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"advertiser_report_data\"", "created_at": 1686087007.337944}, "source.pinterest_source.pinterest_ads.campaign_report": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "campaign_report", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.campaign_report", "fqn": ["pinterest_source", "pinterest_ads", "campaign_report"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "campaign_report_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents the daily performance of a Pinterest campaign.", "columns": {"date": {"name": "date", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_1": {"name": "impression_1", "description": "The number of paid pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_2": {"name": "impression_2", "description": "The number of earned pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_1": {"name": "clickthrough_1", "description": "The number of paid pin clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_2": {"name": "clickthrough_2", "description": "The number of earned outbound clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "description": "The amount of spend in micro dollars that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"campaign_report_data\"", "created_at": 1686087007.338054}, "source.pinterest_source.pinterest_ads.keyword_history": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "keyword_history", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.keyword_history", "fqn": ["pinterest_source", "pinterest_ads", "keyword_history"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "keyword_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a version of a Pinterest keyword.", "columns": {"id": {"name": "id", "description": "Unique identifier of the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "value": {"name": "value", "description": "The text value that makes upd the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_id": {"name": "_fivetran_id", "description": "The unique identifier of the record within the Fivetran synced table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "archived": {"name": "archived", "description": "Boolean indicating if the keyword is archived.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "bid": {"name": "bid", "description": "Bid amount set for the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "match_type": {"name": "match_type", "description": "Type of match the keyword is tied to. Either Exact or Broad.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_type": {"name": "parent_type", "description": "Identifier of what grain the parent type is. Ad group or campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"keyword_history_data\"", "created_at": 1686087007.3382158}, "source.pinterest_source.pinterest_ads.keyword_report": {"database": "postgres", "schema": "pinterest_integration_tests_3", "name": "keyword_report", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.keyword_report", "fqn": ["pinterest_source", "pinterest_ads", "keyword_report"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "keyword_report_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents the daily performance of a Pinterest key word.", "columns": {"date": {"name": "date", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "keyword_id": {"name": "keyword_id", "description": "Unique identifier of the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_1": {"name": "impression_1", "description": "The number of paid pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_2": {"name": "impression_2", "description": "The number of earned pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_1": {"name": "clickthrough_1", "description": "The number of paid pin clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_2": {"name": "clickthrough_2", "description": "The number of earned outbound clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "description": "The amount of spend in micro dollars that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"pinterest_integration_tests_3\".\"keyword_report_data\"", "created_at": 1686087007.3383338}}, "macros": {"macro.dbt_postgres.postgres__current_timestamp": {"name": "postgres__current_timestamp", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp", "macro_sql": "{% macro postgres__current_timestamp() -%}\n now()\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.3781629, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_string_as_time": {"name": "postgres__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_string_as_time", "macro_sql": "{% macro postgres__snapshot_string_as_time(timestamp) -%}\n {%- set result = \"'\" ~ timestamp ~ \"'::timestamp without time zone\" -%}\n {{ return(result) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.378392, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_get_time": {"name": "postgres__snapshot_get_time", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_get_time", "macro_sql": "{% macro postgres__snapshot_get_time() -%}\n {{ current_timestamp() }}::timestamp without time zone\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.378507, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_backcompat": {"name": "postgres__current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp_backcompat", "macro_sql": "{% macro postgres__current_timestamp_backcompat() %}\n current_timestamp::{{ type_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.378613, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat": {"name": "postgres__current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat", "macro_sql": "{% macro postgres__current_timestamp_in_utc_backcompat() %}\n (current_timestamp at time zone 'utc')::{{ type_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.378721, "supported_languages": null}, "macro.dbt_postgres.postgres__get_catalog": {"name": "postgres__get_catalog", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "unique_id": "macro.dbt_postgres.postgres__get_catalog", "macro_sql": "{% macro postgres__get_catalog(information_schema, schemas) -%}\n\n {%- call statement('catalog', fetch_result=True) -%}\n {#\n If the user has multiple databases set and the first one is wrong, this will fail.\n But we won't fail in the case where there are multiple quoting-difference-only dbs, which is better.\n #}\n {% set database = information_schema.database %}\n {{ adapter.verify_database(database) }}\n\n select\n '{{ database }}' as table_database,\n sch.nspname as table_schema,\n tbl.relname as table_name,\n case tbl.relkind\n when 'v' then 'VIEW'\n else 'BASE TABLE'\n end as table_type,\n tbl_desc.description as table_comment,\n col.attname as column_name,\n col.attnum as column_index,\n pg_catalog.format_type(col.atttypid, col.atttypmod) as column_type,\n col_desc.description as column_comment,\n pg_get_userbyid(tbl.relowner) as table_owner\n\n from pg_catalog.pg_namespace sch\n join pg_catalog.pg_class tbl on tbl.relnamespace = sch.oid\n join pg_catalog.pg_attribute col on col.attrelid = tbl.oid\n left outer join pg_catalog.pg_description tbl_desc on (tbl_desc.objoid = tbl.oid and tbl_desc.objsubid = 0)\n left outer join pg_catalog.pg_description col_desc on (col_desc.objoid = tbl.oid and col_desc.objsubid = col.attnum)\n\n where (\n {%- for schema in schemas -%}\n upper(sch.nspname) = upper('{{ schema }}'){%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n )\n and not pg_is_other_temp_schema(sch.oid) -- not a temporary schema belonging to another session\n and tbl.relpersistence in ('p', 'u') -- [p]ermanent table or [u]nlogged table. Exclude [t]emporary tables\n and tbl.relkind in ('r', 'v', 'f', 'p') -- o[r]dinary table, [v]iew, [f]oreign table, [p]artitioned table. Other values are [i]ndex, [S]equence, [c]omposite type, [t]OAST table, [m]aterialized view\n and col.attnum > 0 -- negative numbers are used for system columns such as oid\n and not col.attisdropped -- column as not been dropped\n\n order by\n sch.nspname,\n tbl.relname,\n col.attnum\n\n {%- endcall -%}\n\n {{ return(load_result('catalog').table) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.379791, "supported_languages": null}, "macro.dbt_postgres.postgres_get_relations": {"name": "postgres_get_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "unique_id": "macro.dbt_postgres.postgres_get_relations", "macro_sql": "{% macro postgres_get_relations () -%}\n\n {#\n -- in pg_depend, objid is the dependent, refobjid is the referenced object\n -- > a pg_depend entry indicates that the referenced object cannot be\n -- > dropped without also dropping the dependent object.\n #}\n\n {%- call statement('relations', fetch_result=True) -%}\n with relation as (\n select\n pg_rewrite.ev_class as class,\n pg_rewrite.oid as id\n from pg_rewrite\n ),\n class as (\n select\n oid as id,\n relname as name,\n relnamespace as schema,\n relkind as kind\n from pg_class\n ),\n dependency as (\n select distinct\n pg_depend.objid as id,\n pg_depend.refobjid as ref\n from pg_depend\n ),\n schema as (\n select\n pg_namespace.oid as id,\n pg_namespace.nspname as name\n from pg_namespace\n where nspname != 'information_schema' and nspname not like 'pg\\_%'\n ),\n referenced as (\n select\n relation.id AS id,\n referenced_class.name ,\n referenced_class.schema ,\n referenced_class.kind\n from relation\n join class as referenced_class on relation.class=referenced_class.id\n where referenced_class.kind in ('r', 'v')\n ),\n relationships as (\n select\n referenced.name as referenced_name,\n referenced.schema as referenced_schema_id,\n dependent_class.name as dependent_name,\n dependent_class.schema as dependent_schema_id,\n referenced.kind as kind\n from referenced\n join dependency on referenced.id=dependency.id\n join class as dependent_class on dependency.ref=dependent_class.id\n where\n (referenced.name != dependent_class.name or\n referenced.schema != dependent_class.schema)\n )\n\n select\n referenced_schema.name as referenced_schema,\n relationships.referenced_name as referenced_name,\n dependent_schema.name as dependent_schema,\n relationships.dependent_name as dependent_name\n from relationships\n join schema as dependent_schema on relationships.dependent_schema_id=dependent_schema.id\n join schema as referenced_schema on relationships.referenced_schema_id=referenced_schema.id\n group by referenced_schema, referenced_name, dependent_schema, dependent_name\n order by referenced_schema, referenced_name, dependent_schema, dependent_name;\n\n {%- endcall -%}\n\n {{ return(load_result('relations').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.380407, "supported_languages": null}, "macro.dbt_postgres.postgres__create_table_as": {"name": "postgres__create_table_as", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__create_table_as", "macro_sql": "{% macro postgres__create_table_as(temporary, relation, sql) -%}\n {%- set unlogged = config.get('unlogged', default=false) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n\n create {% if temporary -%}\n temporary\n {%- elif unlogged -%}\n unlogged\n {%- endif %} table {{ relation }}\n as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.385872, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_index_sql": {"name": "postgres__get_create_index_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_create_index_sql", "macro_sql": "{% macro postgres__get_create_index_sql(relation, index_dict) -%}\n {%- set index_config = adapter.parse_index(index_dict) -%}\n {%- set comma_separated_columns = \", \".join(index_config.columns) -%}\n {%- set index_name = index_config.render(relation) -%}\n\n create {% if index_config.unique -%}\n unique\n {%- endif %} index if not exists\n \"{{ index_name }}\"\n on {{ relation }} {% if index_config.type -%}\n using {{ index_config.type }}\n {%- endif %}\n ({{ comma_separated_columns }});\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.386372, "supported_languages": null}, "macro.dbt_postgres.postgres__create_schema": {"name": "postgres__create_schema", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__create_schema", "macro_sql": "{% macro postgres__create_schema(relation) -%}\n {% if relation.database -%}\n {{ adapter.verify_database(relation.database) }}\n {%- endif -%}\n {%- call statement('create_schema') -%}\n create schema if not exists {{ relation.without_identifier().include(database=False) }}\n {%- endcall -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.386694, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_schema": {"name": "postgres__drop_schema", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__drop_schema", "macro_sql": "{% macro postgres__drop_schema(relation) -%}\n {% if relation.database -%}\n {{ adapter.verify_database(relation.database) }}\n {%- endif -%}\n {%- call statement('drop_schema') -%}\n drop schema if exists {{ relation.without_identifier().include(database=False) }} cascade\n {%- endcall -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.387008, "supported_languages": null}, "macro.dbt_postgres.postgres__get_columns_in_relation": {"name": "postgres__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_columns_in_relation", "macro_sql": "{% macro postgres__get_columns_in_relation(relation) -%}\n {% call statement('get_columns_in_relation', fetch_result=True) %}\n select\n column_name,\n data_type,\n character_maximum_length,\n numeric_precision,\n numeric_scale\n\n from {{ relation.information_schema('columns') }}\n where table_name = '{{ relation.identifier }}'\n {% if relation.schema %}\n and table_schema = '{{ relation.schema }}'\n {% endif %}\n order by ordinal_position\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.statement", "macro.dbt.sql_convert_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.3875, "supported_languages": null}, "macro.dbt_postgres.postgres__list_relations_without_caching": {"name": "postgres__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__list_relations_without_caching", "macro_sql": "{% macro postgres__list_relations_without_caching(schema_relation) %}\n {% call statement('list_relations_without_caching', fetch_result=True) -%}\n select\n '{{ schema_relation.database }}' as database,\n tablename as name,\n schemaname as schema,\n 'table' as type\n from pg_tables\n where schemaname ilike '{{ schema_relation.schema }}'\n union all\n select\n '{{ schema_relation.database }}' as database,\n viewname as name,\n schemaname as schema,\n 'view' as type\n from pg_views\n where schemaname ilike '{{ schema_relation.schema }}'\n {% endcall %}\n {{ return(load_result('list_relations_without_caching').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.387887, "supported_languages": null}, "macro.dbt_postgres.postgres__information_schema_name": {"name": "postgres__information_schema_name", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__information_schema_name", "macro_sql": "{% macro postgres__information_schema_name(database) -%}\n {% if database_name -%}\n {{ adapter.verify_database(database_name) }}\n {%- endif -%}\n information_schema\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.388053, "supported_languages": null}, "macro.dbt_postgres.postgres__list_schemas": {"name": "postgres__list_schemas", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__list_schemas", "macro_sql": "{% macro postgres__list_schemas(database) %}\n {% if database -%}\n {{ adapter.verify_database(database) }}\n {%- endif -%}\n {% call statement('list_schemas', fetch_result=True, auto_begin=False) %}\n select distinct nspname from pg_namespace\n {% endcall %}\n {{ return(load_result('list_schemas').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.388386, "supported_languages": null}, "macro.dbt_postgres.postgres__check_schema_exists": {"name": "postgres__check_schema_exists", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__check_schema_exists", "macro_sql": "{% macro postgres__check_schema_exists(information_schema, schema) -%}\n {% if information_schema.database -%}\n {{ adapter.verify_database(information_schema.database) }}\n {%- endif -%}\n {% call statement('check_schema_exists', fetch_result=True, auto_begin=False) %}\n select count(*) from pg_namespace where nspname = '{{ schema }}'\n {% endcall %}\n {{ return(load_result('check_schema_exists').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.3887858, "supported_languages": null}, "macro.dbt_postgres.postgres__make_relation_with_suffix": {"name": "postgres__make_relation_with_suffix", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_relation_with_suffix", "macro_sql": "{% macro postgres__make_relation_with_suffix(base_relation, suffix, dstring) %}\n {% if dstring %}\n {% set dt = modules.datetime.datetime.now() %}\n {% set dtstring = dt.strftime(\"%H%M%S%f\") %}\n {% set suffix = suffix ~ dtstring %}\n {% endif %}\n {% set suffix_length = suffix|length %}\n {% set relation_max_name_length = base_relation.relation_max_name_length() %}\n {% if suffix_length > relation_max_name_length %}\n {% do exceptions.raise_compiler_error('Relation suffix is too long (' ~ suffix_length ~ ' characters). Maximum length is ' ~ relation_max_name_length ~ ' characters.') %}\n {% endif %}\n {% set identifier = base_relation.identifier[:relation_max_name_length - suffix_length] ~ suffix %}\n\n {{ return(base_relation.incorporate(path={\"identifier\": identifier })) }}\n\n {% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.389709, "supported_languages": null}, "macro.dbt_postgres.postgres__make_intermediate_relation": {"name": "postgres__make_intermediate_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_intermediate_relation", "macro_sql": "{% macro postgres__make_intermediate_relation(base_relation, suffix) %}\n {{ return(postgres__make_relation_with_suffix(base_relation, suffix, dstring=False)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.389908, "supported_languages": null}, "macro.dbt_postgres.postgres__make_temp_relation": {"name": "postgres__make_temp_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_temp_relation", "macro_sql": "{% macro postgres__make_temp_relation(base_relation, suffix) %}\n {% set temp_relation = postgres__make_relation_with_suffix(base_relation, suffix, dstring=True) %}\n {{ return(temp_relation.incorporate(path={\"schema\": none,\n \"database\": none})) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.390218, "supported_languages": null}, "macro.dbt_postgres.postgres__make_backup_relation": {"name": "postgres__make_backup_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_backup_relation", "macro_sql": "{% macro postgres__make_backup_relation(base_relation, backup_relation_type, suffix) %}\n {% set backup_relation = postgres__make_relation_with_suffix(base_relation, suffix, dstring=False) %}\n {{ return(backup_relation.incorporate(type=backup_relation_type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.390482, "supported_languages": null}, "macro.dbt_postgres.postgres_escape_comment": {"name": "postgres_escape_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres_escape_comment", "macro_sql": "{% macro postgres_escape_comment(comment) -%}\n {% if comment is not string %}\n {% do exceptions.raise_compiler_error('cannot escape a non-string: ' ~ comment) %}\n {% endif %}\n {%- set magic = '$dbt_comment_literal_block$' -%}\n {%- if magic in comment -%}\n {%- do exceptions.raise_compiler_error('The string ' ~ magic ~ ' is not allowed in comments.') -%}\n {%- endif -%}\n {{ magic }}{{ comment }}{{ magic }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.3908968, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_relation_comment": {"name": "postgres__alter_relation_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__alter_relation_comment", "macro_sql": "{% macro postgres__alter_relation_comment(relation, comment) %}\n {% set escaped_comment = postgres_escape_comment(comment) %}\n comment on {{ relation.type }} {{ relation }} is {{ escaped_comment }};\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.3911119, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_column_comment": {"name": "postgres__alter_column_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__alter_column_comment", "macro_sql": "{% macro postgres__alter_column_comment(relation, column_dict) %}\n {% set existing_columns = adapter.get_columns_in_relation(relation) | map(attribute=\"name\") | list %}\n {% for column_name in column_dict if (column_name in existing_columns) %}\n {% set comment = column_dict[column_name]['description'] %}\n {% set escaped_comment = postgres_escape_comment(comment) %}\n comment on column {{ relation }}.{{ adapter.quote(column_name) if column_dict[column_name]['quote'] else column_name }} is {{ escaped_comment }};\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.3917031, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_grant_sql": {"name": "postgres__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_show_grant_sql", "macro_sql": "\n\n{%- macro postgres__get_show_grant_sql(relation) -%}\n select grantee, privilege_type\n from {{ relation.information_schema('role_table_grants') }}\n where grantor = current_role\n and grantee != current_role\n and table_schema = '{{ relation.schema }}'\n and table_name = '{{ relation.identifier }}'\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.391913, "supported_languages": null}, "macro.dbt_postgres.postgres__copy_grants": {"name": "postgres__copy_grants", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__copy_grants", "macro_sql": "{% macro postgres__copy_grants() %}\n {{ return(False) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.392029, "supported_languages": null}, "macro.dbt_postgres.postgres__get_incremental_default_sql": {"name": "postgres__get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/incremental_strategies.sql", "original_file_path": "macros/materializations/incremental_strategies.sql", "unique_id": "macro.dbt_postgres.postgres__get_incremental_default_sql", "macro_sql": "{% macro postgres__get_incremental_default_sql(arg_dict) %}\n\n {% if arg_dict[\"unique_key\"] %}\n {% do return(get_incremental_delete_insert_sql(arg_dict)) %}\n {% else %}\n {% do return(get_incremental_append_sql(arg_dict)) %}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_delete_insert_sql", "macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.39242, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_merge_sql": {"name": "postgres__snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshot_merge.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_merge_sql", "macro_sql": "{% macro postgres__snapshot_merge_sql(target, source, insert_cols) -%}\n {%- set insert_cols_csv = insert_cols | join(', ') -%}\n\n update {{ target }}\n set dbt_valid_to = DBT_INTERNAL_SOURCE.dbt_valid_to\n from {{ source }} as DBT_INTERNAL_SOURCE\n where DBT_INTERNAL_SOURCE.dbt_scd_id::text = {{ target }}.dbt_scd_id::text\n and DBT_INTERNAL_SOURCE.dbt_change_type::text in ('update'::text, 'delete'::text)\n and {{ target }}.dbt_valid_to is null;\n\n insert into {{ target }} ({{ insert_cols_csv }})\n select {% for column in insert_cols -%}\n DBT_INTERNAL_SOURCE.{{ column }} {%- if not loop.last %}, {%- endif %}\n {%- endfor %}\n from {{ source }} as DBT_INTERNAL_SOURCE\n where DBT_INTERNAL_SOURCE.dbt_change_type::text = 'insert'::text;\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.3931289, "supported_languages": null}, "macro.dbt_postgres.postgres__dateadd": {"name": "postgres__dateadd", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt_postgres.postgres__dateadd", "macro_sql": "{% macro postgres__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {{ from_date_or_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.3933399, "supported_languages": null}, "macro.dbt_postgres.postgres__listagg": {"name": "postgres__listagg", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt_postgres.postgres__listagg", "macro_sql": "{% macro postgres__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n {% if limit_num -%}\n array_to_string(\n (array_agg(\n {{ measure }}\n {% if order_by_clause -%}\n {{ order_by_clause }}\n {%- endif %}\n ))[1:{{ limit_num }}],\n {{ delimiter_text }}\n )\n {%- else %}\n string_agg(\n {{ measure }},\n {{ delimiter_text }}\n {% if order_by_clause -%}\n {{ order_by_clause }}\n {%- endif %}\n )\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.393934, "supported_languages": null}, "macro.dbt_postgres.postgres__datediff": {"name": "postgres__datediff", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt_postgres.postgres__datediff", "macro_sql": "{% macro postgres__datediff(first_date, second_date, datepart) -%}\n\n {% if datepart == 'year' %}\n (date_part('year', ({{second_date}})::date) - date_part('year', ({{first_date}})::date))\n {% elif datepart == 'quarter' %}\n ({{ datediff(first_date, second_date, 'year') }} * 4 + date_part('quarter', ({{second_date}})::date) - date_part('quarter', ({{first_date}})::date))\n {% elif datepart == 'month' %}\n ({{ datediff(first_date, second_date, 'year') }} * 12 + date_part('month', ({{second_date}})::date) - date_part('month', ({{first_date}})::date))\n {% elif datepart == 'day' %}\n (({{second_date}})::date - ({{first_date}})::date)\n {% elif datepart == 'week' %}\n ({{ datediff(first_date, second_date, 'day') }} / 7 + case\n when date_part('dow', ({{first_date}})::timestamp) <= date_part('dow', ({{second_date}})::timestamp) then\n case when {{first_date}} <= {{second_date}} then 0 else -1 end\n else\n case when {{first_date}} <= {{second_date}} then 1 else 0 end\n end)\n {% elif datepart == 'hour' %}\n ({{ datediff(first_date, second_date, 'day') }} * 24 + date_part('hour', ({{second_date}})::timestamp) - date_part('hour', ({{first_date}})::timestamp))\n {% elif datepart == 'minute' %}\n ({{ datediff(first_date, second_date, 'hour') }} * 60 + date_part('minute', ({{second_date}})::timestamp) - date_part('minute', ({{first_date}})::timestamp))\n {% elif datepart == 'second' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60 + floor(date_part('second', ({{second_date}})::timestamp)) - floor(date_part('second', ({{first_date}})::timestamp)))\n {% elif datepart == 'millisecond' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60000 + floor(date_part('millisecond', ({{second_date}})::timestamp)) - floor(date_part('millisecond', ({{first_date}})::timestamp)))\n {% elif datepart == 'microsecond' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60000000 + floor(date_part('microsecond', ({{second_date}})::timestamp)) - floor(date_part('microsecond', ({{first_date}})::timestamp)))\n {% else %}\n {{ exceptions.raise_compiler_error(\"Unsupported datepart for macro datediff in postgres: {!r}\".format(datepart)) }}\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.397011, "supported_languages": null}, "macro.dbt_postgres.postgres__any_value": {"name": "postgres__any_value", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt_postgres.postgres__any_value", "macro_sql": "{% macro postgres__any_value(expression) -%}\n\n min({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.397163, "supported_languages": null}, "macro.dbt_postgres.postgres__last_day": {"name": "postgres__last_day", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt_postgres.postgres__last_day", "macro_sql": "{% macro postgres__last_day(date, datepart) -%}\n\n {%- if datepart == 'quarter' -%}\n -- postgres dateadd does not support quarter interval.\n cast(\n {{dbt.dateadd('day', '-1',\n dbt.dateadd('month', '3', dbt.date_trunc(datepart, date))\n )}}\n as date)\n {%- else -%}\n {{dbt.default_last_day(date, datepart)}}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc", "macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.397654, "supported_languages": null}, "macro.dbt_postgres.postgres__split_part": {"name": "postgres__split_part", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt_postgres.postgres__split_part", "macro_sql": "{% macro postgres__split_part(string_text, delimiter_text, part_number) %}\n\n {% if part_number >= 0 %}\n {{ dbt.default__split_part(string_text, delimiter_text, part_number) }}\n {% else %}\n {{ dbt._split_part_negative(string_text, delimiter_text, part_number) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__split_part", "macro.dbt._split_part_negative"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.398041, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.399117, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.399328, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.399473, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.399615, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.399758, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.400126, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.400526, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4008288, "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_postgres.postgres__snapshot_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.4012601, "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 merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on DBT_INTERNAL_SOURCE.dbt_scd_id = DBT_INTERNAL_DEST.dbt_scd_id\n\n when matched\n and DBT_INTERNAL_DEST.dbt_valid_to is null\n and DBT_INTERNAL_SOURCE.dbt_change_type in ('update', 'delete')\n then update\n set dbt_valid_to = DBT_INTERNAL_SOURCE.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": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.401525, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4048178, "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.default__snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.404989, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.405215, "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, config, target_exists) %}\n {% set primary_key = config['unique_key'] %}\n {% set updated_at = config['updated_at'] %}\n {% set invalidate_hard_deletes = config.get('invalidate_hard_deletes', false) %}\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 }}.dbt_valid_from < {{ current_rel }}.{{ updated_at }})\n {%- endset %}\n\n {% set scd_id_expr = snapshot_hash_arguments([primary_key, updated_at]) %}\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 }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.40594, "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_postgres.postgres__snapshot_string_as_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.4061031, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.406272, "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 select {{ check_cols_config | join(', ') }} from ({{ node['compiled_code'] }}) 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}, "patch_path": null, "arguments": [], "created_at": 1686087006.407617, "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, config, target_exists) %}\n {% set check_cols_config = config['check_cols'] %}\n {% set primary_key = config['unique_key'] %}\n {% set invalidate_hard_deletes = config.get('invalidate_hard_deletes', false) %}\n {% set updated_at = config.get('updated_at', 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_id_expr = snapshot_hash_arguments([primary_key, updated_at]) %}\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 }) %}\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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4089909, "supported_languages": null}, "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.default__create_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.412736, "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 }} add column \"{{ column.name }}\" {{ column.data_type }};\n {% endcall %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.413017, "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.default__post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.413182, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.413267, "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.default__get_true_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.413409, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4135199, "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.default__snapshot_staging_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.4137259, "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\n with snapshot_query as (\n\n {{ source_sql }}\n\n ),\n\n snapshotted_data as (\n\n select *,\n {{ strategy.unique_key }} as dbt_unique_key\n\n from {{ target_relation }}\n where dbt_valid_to is null\n\n ),\n\n insertions_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_unique_key,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}) as dbt_valid_to,\n {{ strategy.scd_id }} as dbt_scd_id\n\n from snapshot_query\n ),\n\n updates_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_unique_key,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n {{ strategy.updated_at }} as dbt_valid_to\n\n from snapshot_query\n ),\n\n {%- if strategy.invalidate_hard_deletes %}\n\n deletes_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_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\n from insertions_source_data as source_data\n left outer join snapshotted_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where snapshotted_data.dbt_unique_key is null\n or (\n snapshotted_data.dbt_unique_key is not null\n and (\n {{ strategy.row_changed }}\n )\n )\n\n ),\n\n updates as (\n\n select\n 'update' as dbt_change_type,\n source_data.*,\n snapshotted_data.dbt_scd_id\n\n from updates_source_data as source_data\n join snapshotted_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where (\n {{ strategy.row_changed }}\n )\n )\n\n {%- if strategy.invalidate_hard_deletes -%}\n ,\n\n deletes as (\n\n select\n 'delete' as dbt_change_type,\n source_data.*,\n {{ snapshot_get_time() }} as dbt_valid_from,\n {{ snapshot_get_time() }} as dbt_updated_at,\n {{ snapshot_get_time() }} as dbt_valid_to,\n snapshotted_data.dbt_scd_id\n\n from snapshotted_data\n left join deletes_source_data as source_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where source_data.dbt_unique_key is null\n )\n {%- endif %}\n\n select * from insertions\n union all\n select * from updates\n {%- if strategy.invalidate_hard_deletes %}\n union all\n select * from deletes\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.414565, "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.default__build_snapshot_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.414749, "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\n select *,\n {{ strategy.scd_id }} as dbt_scd_id,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}) as dbt_valid_to\n from (\n {{ sql }}\n ) sbq\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.414995, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.415403, "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 {%- set config = model['config'] -%}\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 {% set strategy = strategy_macro(model, \"snapshotted_data\", \"source_data\", 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 final_sql = create_table_as(False, target_relation, build_sql) %}\n\n {% else %}\n\n {{ adapter.valid_snapshot_target(target_relation) }}\n\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 missing_columns = adapter.get_missing_columns(staging_table, target_relation)\n | rejectattr('name', 'equalto', 'dbt_change_type')\n | rejectattr('name', 'equalto', 'DBT_CHANGE_TYPE')\n | rejectattr('name', 'equalto', 'dbt_unique_key')\n | rejectattr('name', 'equalto', 'DBT_UNIQUE_KEY')\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', 'equalto', 'dbt_change_type')\n | rejectattr('name', 'equalto', 'DBT_CHANGE_TYPE')\n | rejectattr('name', 'equalto', 'dbt_unique_key')\n | rejectattr('name', 'equalto', 'DBT_UNIQUE_KEY')\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 {% 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.build_snapshot_staging_table", "macro.dbt.create_columns", "macro.dbt.snapshot_merge_sql", "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.421273, "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\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 {% set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database, type='table') -%} %}\n\n {% if old_relation %}\n {% do adapter.drop_relation(old_relation) %}\n {% endif %}\n\n {% call statement(auto_begin=True) %}\n {{ create_table_as(False, target_relation, sql) }}\n {% endcall %}\n\n {% do relations.append(target_relation) %}\n\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 %}\n\n {% endif %}\n\n {% set limit = config.get('limit') %}\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 {{ get_test_sql(main_sql, fail_calc, warn_if, error_if, limit)}}\n\n {%- endcall %}\n\n {{ return({'relations': relations}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.should_store_failures", "macro.dbt.statement", "macro.dbt.create_table_as", "macro.dbt.get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.423291, "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.default__get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.423733, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.424051, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4244008, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.424769, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4262028, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.42674, "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\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.data_type != tc.data_type and not sc.can_expand_to(other_column=tc) %}\n {{ result.append( { 'column_name': tc.name, 'new_type': sc.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}, "patch_path": null, "arguments": [], "created_at": 1686087006.427402, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.427644, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.428341, "supported_languages": null}, "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.default__get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.4340742, "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 unique_key_match %}\n DBT_INTERNAL_SOURCE.{{ unique_key }} = DBT_INTERNAL_DEST.{{ unique_key }}\n {% endset %}\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"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.435751, "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.default__get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.4360168, "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 sequence and unique_key is not string %}\n delete from {{target }}\n using {{ source }}\n where (\n {% for key in unique_key %}\n {{ source }}.{{ key }} = {{ target }}.{{ key }}\n {{ \"and \" if not loop.last}}\n {% endfor %}\n {% if incremental_predicates %}\n {% for predicate in incremental_predicates %}\n and {{ predicate }}\n {% endfor %}\n {% endif %}\n );\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\n {% endif %}\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}, "patch_path": null, "arguments": [], "created_at": 1686087006.437016, "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.default__get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.4372869, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4379342, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.438561, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.439393, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.439632, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4398222, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.44011, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.440288, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4405792, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.440759, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4410229, "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_postgres.postgres__get_incremental_default_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.44122, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4413671, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.441638, "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 {% 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 {% do run_query(get_create_table_as_sql(True, temp_relation, sql)) %}\n {% do adapter.expand_target_column_types(\n from_relation=temp_relation,\n to_relation=target_relation) %}\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 {% 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}, "patch_path": null, "arguments": [], "created_at": 1686087006.446444, "supported_languages": ["sql"]}, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.451543, "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\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}, "patch_path": null, "arguments": [], "created_at": 1686087006.452745, "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\n {%- set add_to_target_arr = schema_changes_dict['source_not_in_target'] -%}\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 {%- 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 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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4539468, "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\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}, "patch_path": null, "arguments": [], "created_at": 1686087006.454784, "supported_languages": null}, "macro.dbt.materialization_table_default": {"name": "materialization_table_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table/table.sql", "original_file_path": "macros/materializations/models/table/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 -- cleanup\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\n {% do create_indexes(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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4573739, "supported_languages": ["sql"]}, "macro.dbt.get_create_table_as_sql": {"name": "get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.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}, "patch_path": null, "arguments": [], "created_at": 1686087006.457908, "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/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.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}, "patch_path": null, "arguments": [], "created_at": 1686087006.458103, "supported_languages": null}, "macro.dbt.create_table_as": {"name": "create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.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_postgres.postgres__create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.458534, "supported_languages": null}, "macro.dbt.default__create_table_as": {"name": "default__create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.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 as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.458936, "supported_languages": null}, "macro.dbt.materialization_view_default": {"name": "materialization_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/view.sql", "original_file_path": "macros/materializations/models/view/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 {{ adapter.rename_relation(existing_relation, backup_relation) }}\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}, "patch_path": null, "arguments": [], "created_at": 1686087006.461406, "supported_languages": ["sql"]}, "macro.dbt.handle_existing_table": {"name": "handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4617112, "supported_languages": null}, "macro.dbt.default__handle_existing_table": {"name": "default__handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.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 ~ \" 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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4619331, "supported_languages": null}, "macro.dbt.create_or_replace_view": {"name": "create_or_replace_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/create_or_replace_view.sql", "original_file_path": "macros/materializations/models/view/create_or_replace_view.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=True) %}\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}, "patch_path": null, "arguments": [], "created_at": 1686087006.463395, "supported_languages": null}, "macro.dbt.get_create_view_as_sql": {"name": "get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.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}, "patch_path": null, "arguments": [], "created_at": 1686087006.463752, "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/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.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}, "patch_path": null, "arguments": [], "created_at": 1686087006.463924, "supported_languages": null}, "macro.dbt.create_view_as": {"name": "create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.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.default__create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.464104, "supported_languages": null}, "macro.dbt.default__create_view_as": {"name": "default__create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.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 }} as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.464364, "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 comparision 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)) }}\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}, "patch_path": null, "arguments": [], "created_at": 1686087006.467555, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.472091, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.473027, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.473269, "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 %}\n {% endif %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.473758, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.473953, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4740832, "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.default__get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.47422, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4743302, "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.default__get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.474485, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.474598, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.47505, "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.default__load_csv_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.475233, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.476464, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.476853, "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 is none -%}\n\n {{ node.name }}\n\n {%- else -%}\n\n {{ custom_alias_name | trim }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.477083, "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.default__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.4775932, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.477849, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.478131, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.478513, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.478762, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.479101, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4793909, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.479637, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.480196, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.48161, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4821818, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.482477, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.484239, "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 Partiton 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}, "patch_path": null, "arguments": [], "created_at": 1686087006.485483, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.48624, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.486478, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4867158, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4867961, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.487124, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4872909, "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.default__concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.487534, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.48766, "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.default__length"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.487914, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4880152, "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_postgres.postgres__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.488349, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.488508, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4887328, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.488808, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.48908, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.489235, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4895182, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.489648, "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_postgres.postgres__listagg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.490249, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.490719, "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_postgres.postgres__datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.4910321, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.491185, "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.default__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.49146, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.491594, "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.default__hash"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.4918349, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4919848, "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.default__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.492216, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.492367, "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_postgres.postgres__any_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.492606, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.492707, "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.default__position"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.492984, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.493118, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.493357, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4934568, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.49431, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.494453, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.494611, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.494762, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.494923, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.495138, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4953039, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.495483, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.495643, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4957929, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.495954, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.496094, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.496248, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.496387, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4966578, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4967911, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.497043, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.497152, "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_postgres.postgres__last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.49748, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4977422, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.497889, "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_postgres.postgres__split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.498388, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.49855, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.4987662, "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.default__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.4990358, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.499168, "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.default__array_construct"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.4995468, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.499865, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.50014, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.500273, "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_postgres.postgres__create_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.500632, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5008168, "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_postgres.postgres__drop_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5009768, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.501163, "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_postgres.postgres__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5016232, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.501771, "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_postgres.postgres__snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.501911, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5020108, "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_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.502177, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.502249, "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_postgres.postgres__current_timestamp_in_utc_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.502413, "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_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.502576, "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_postgres.postgres__get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.503017, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5031528, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.503305, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5036979, "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_postgres.postgres__make_intermediate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.506729, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.50696, "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 {{ return(adapter.dispatch('make_temp_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5071738, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.507466, "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_postgres.postgres__make_backup_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5077188, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5080352, "supported_languages": null}, "macro.dbt.drop_relation": {"name": "drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.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}, "patch_path": null, "arguments": [], "created_at": 1686087006.508207, "supported_languages": null}, "macro.dbt.default__drop_relation": {"name": "default__drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__drop_relation", "macro_sql": "{% macro default__drop_relation(relation) -%}\n {% call statement('drop_relation', auto_begin=False) -%}\n drop {{ relation.type }} if exists {{ relation }} cascade\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.508408, "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.default__truncate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5085819, "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 }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.508733, "supported_languages": null}, "macro.dbt.rename_relation": {"name": "rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.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.default__rename_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5089762, "supported_languages": null}, "macro.dbt.default__rename_relation": {"name": "default__rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.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 }} rename to {{ target_name }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5092769, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.509523, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5100532, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.510277, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.510411, "supported_languages": null}, "macro.dbt.drop_relation_if_exists": {"name": "drop_relation_if_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.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}, "patch_path": null, "arguments": [], "created_at": 1686087006.510596, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5110028, "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').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.511408, "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_postgres.postgres__copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.513015, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.513131, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.513296, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.513411, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.513824, "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_postgres.postgres__get_show_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.514009, "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 }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5141098, "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.default__get_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.514333, "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 }} to {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5145202, "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.default__get_revoke_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.514745, "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 }} from {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.514935, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5151649, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.515831, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.516018, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.516257, "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.default__apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5164852, "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 ~': 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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5176141, "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_postgres.postgres__alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5182579, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5184221, "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_postgres.postgres__alter_relation_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.518618, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5187871, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.519061, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.51953, "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_postgres.postgres__get_catalog"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.520909, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.521162, "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_postgres.postgres__information_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5213509, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5217469, "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_postgres.postgres__list_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5219252, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5221682, "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_postgres.postgres__check_schema_exists"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.522366, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5226681, "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_postgres.postgres__list_relations_without_caching"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5228548, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.523016, "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_postgres.postgres__get_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.524699, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5248818, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.525202, "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.default__get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5253801, "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 select * from (\n {{ select_sql }}\n ) as __dbt_sbq\n where false\n limit 0\n {% endcall %}\n\n {{ return(load_result('get_columns_in_query').table.columns | map(attribute='name') | list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.525706, "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.default__alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.525929, "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 }} add column {{ adapter.quote(tmp_column) }} {{ new_column_type }};\n update {{ relation }} set {{ adapter.quote(tmp_column) }} = {{ adapter.quote(column_name) }};\n alter table {{ relation }} drop column {{ adapter.quote(column_name) }} cascade;\n alter table {{ relation }} 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}, "patch_path": null, "arguments": [], "created_at": 1686087006.526504, "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.default__alter_relation_add_remove_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.5267541, "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 }}\n\n {% for column in add_columns %}\n add column {{ column.name }} {{ column.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.name }}{{ ',' 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}, "patch_path": null, "arguments": [], "created_at": 1686087006.527497, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.528769, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5289202, "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 resolved = ref(*_ref) -%}\n {%- do ref_dict.update({_ref | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef ref(*args,dbt_load_df_function):\n refs = {{ ref_dict | tojson }}\n key = '.'.join(args)\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}, "patch_path": null, "arguments": [], "created_at": 1686087006.529313, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.529781, "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 -%}\nconfig_dict = {{ config_dict }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.53035, "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\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: ref(*args, 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}, "patch_path": null, "arguments": [], "created_at": 1686087006.530818, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.530889, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.531358, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.531589, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.531874, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5321531, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5325031, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.532992, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5334558, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5341141, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.534427, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.534749, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5357819, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.536798, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.537633, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.538785, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.539454, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5398011, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.540498, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.541322, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.54176, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5422158, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.542809, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.543282, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.543821, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5442061, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.544838, "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 where {{ column_name }} is not null\n limit 1\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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5456371, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5462148, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.546838, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.547385, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.547719, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.548092, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.548436, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5490339, "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 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": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.549929, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.550796, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.551692, "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) %}\n {{ return(adapter.dispatch('test_equality', 'dbt_utils')(model, compare_model, compare_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.552413, "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) %}\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-- setup\n{%- do dbt_utils._is_relation(model, 'test_equality') -%}\n\n{#-\nIf the compare_cols arg is provided, we can run this test without querying the\ninformation schema\u00a0\u2014 this allows the model to be an ephemeral model\n-#}\n\n{%- if not compare_columns -%}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set compare_columns = adapter.get_columns_in_relation(model) | map(attribute='quoted') -%}\n{%- endif -%}\n\n{% set compare_cols_csv = compare_columns | join(', ') %}\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.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.553291, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.553782, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.554076, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5574248, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.558895, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.559171, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.559341, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.559781, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5600598, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.560259, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.560509, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.560678, "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{#- 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}, "patch_path": null, "arguments": [], "created_at": 1686087006.561287, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5620859, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.562756, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.563433, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.563658, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.564009, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.564381, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.564907, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5652008, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.56554, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5661922, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.567032, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.567819, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.568237, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.568425, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.568925, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5695722, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.570411, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.570805, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.571083, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.572277, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.573714, "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') -%}\n {{ return(adapter.dispatch('unpivot', 'dbt_utils')(relation, cast_to, exclude, remove, field_name, value_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__unpivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.575, "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') -%}\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 select\n {%- for exclude_col in exclude %}\n {{ exclude_col }},\n {%- endfor %}\n\n cast('{{ col.column }}' as {{ dbt.type_string() }}) as {{ field_name }},\n cast( {% if col.data_type == 'boolean' %}\n {{ dbt.cast_bool_to_text(col.column) }}\n {% else %}\n {{ col.column }}\n {% endif %}\n as {{ cast_to }}) as {{ 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}, "patch_path": null, "arguments": [], "created_at": 1686087006.57659, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.576888, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.577024, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.579957, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.583343, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5836558, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.583908, "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.postgres__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.584645, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.584862, "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 {{ return(dbt_utils.default__deduplicate(relation, partition_by, order_by=order_by)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.585064, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5852559, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.585418, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5855849, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5859652, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.586195, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5865579, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.587095, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.587423, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.587755, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.58935, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5897028, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.590533, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.59104, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5921001, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.593566, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5945878, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.595409, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.595854, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5965781, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.59731, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.597754, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.59794, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.59831, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.5989041, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.599344, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.599969, "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.postgres__get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.60048, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.600617, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.600749, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.6008818, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.6013749, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.602186, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.603192, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.603468, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.604021, "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}, "patch_path": null, "arguments": [], "created_at": 1686087006.604814, "supported_languages": null}, "macro.spark_utils.get_tables": {"name": "get_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_tables", "macro_sql": "{% macro get_tables(table_regex_pattern='.*') %}\n\n {% set tables = [] %}\n {% for database in spark__list_schemas('not_used') %}\n {% for table in spark__list_relations_without_caching(database[0]) %}\n {% set db_tablename = database[0] ~ \".\" ~ table[1] %}\n {% set is_match = modules.re.match(table_regex_pattern, db_tablename) %}\n {% if is_match %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('type', 'TYPE', 'Type'))|first %}\n {% if table_type[1]|lower != 'view' %}\n {{ tables.append(db_tablename) }}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% endfor %}\n {{ return(tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6096482, "supported_languages": null}, "macro.spark_utils.get_delta_tables": {"name": "get_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_delta_tables", "macro_sql": "{% macro get_delta_tables(table_regex_pattern='.*') %}\n\n {% set delta_tables = [] %}\n {% for db_tablename in get_tables(table_regex_pattern) %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('provider', 'PROVIDER', 'Provider'))|first %}\n {% if table_type[1]|lower == 'delta' %}\n {{ delta_tables.append(db_tablename) }}\n {% endif %}\n {% endfor %}\n {{ return(delta_tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.61034, "supported_languages": null}, "macro.spark_utils.get_statistic_columns": {"name": "get_statistic_columns", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_statistic_columns", "macro_sql": "{% macro get_statistic_columns(table) %}\n\n {% call statement('input_columns', fetch_result=True) %}\n SHOW COLUMNS IN {{ table }}\n {% endcall %}\n {% set input_columns = load_result('input_columns').table %}\n\n {% set output_columns = [] %}\n {% for column in input_columns %}\n {% call statement('column_information', fetch_result=True) %}\n DESCRIBE TABLE {{ table }} `{{ column[0] }}`\n {% endcall %}\n {% if not load_result('column_information').table[1][1].startswith('struct') and not load_result('column_information').table[1][1].startswith('array') %}\n {{ output_columns.append('`' ~ column[0] ~ '`') }}\n {% endif %}\n {% endfor %}\n {{ return(output_columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.611222, "supported_languages": null}, "macro.spark_utils.spark_optimize_delta_tables": {"name": "spark_optimize_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_optimize_delta_tables", "macro_sql": "{% macro spark_optimize_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Optimizing \" ~ table) }}\n {% do run_query(\"optimize \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.611956, "supported_languages": null}, "macro.spark_utils.spark_vacuum_delta_tables": {"name": "spark_vacuum_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_vacuum_delta_tables", "macro_sql": "{% macro spark_vacuum_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Vacuuming \" ~ table) }}\n {% do run_query(\"vacuum \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.612731, "supported_languages": null}, "macro.spark_utils.spark_analyze_tables": {"name": "spark_analyze_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_analyze_tables", "macro_sql": "{% macro spark_analyze_tables(table_regex_pattern='.*') %}\n\n {% for table in get_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set columns = get_statistic_columns(table) | join(',') %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Analyzing \" ~ table) }}\n {% if columns != '' %}\n {% do run_query(\"analyze table \" ~ table ~ \" compute statistics for columns \" ~ columns) %}\n {% endif %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.spark_utils.get_statistic_columns", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.613715, "supported_languages": null}, "macro.spark_utils.spark__concat": {"name": "spark__concat", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/concat.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/concat.sql", "unique_id": "macro.spark_utils.spark__concat", "macro_sql": "{% macro spark__concat(fields) -%}\n concat({{ fields|join(', ') }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.613908, "supported_languages": null}, "macro.spark_utils.spark__type_numeric": {"name": "spark__type_numeric", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "unique_id": "macro.spark_utils.spark__type_numeric", "macro_sql": "{% macro spark__type_numeric() %}\n decimal(28, 6)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6140192, "supported_languages": null}, "macro.spark_utils.spark__dateadd": {"name": "spark__dateadd", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "unique_id": "macro.spark_utils.spark__dateadd", "macro_sql": "{% macro spark__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {%- set clock_component -%}\n {# make sure the dates + timestamps are real, otherwise raise an error asap #}\n to_unix_timestamp({{ spark_utils.assert_not_null('to_timestamp', from_date_or_timestamp) }})\n - to_unix_timestamp({{ spark_utils.assert_not_null('date', from_date_or_timestamp) }})\n {%- endset -%}\n\n {%- if datepart in ['day', 'week'] -%}\n \n {%- set multiplier = 7 if datepart == 'week' else 1 -%}\n\n to_timestamp(\n to_unix_timestamp(\n date_add(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ['month', 'quarter', 'year'] -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'month' -%} 1\n {%- elif datepart == 'quarter' -%} 3\n {%- elif datepart == 'year' -%} 12\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n to_unix_timestamp(\n add_months(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n {{ spark_utils.assert_not_null('to_unix_timestamp', from_date_or_timestamp) }}\n + cast({{interval}} * {{multiplier}} as int)\n )\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro dateadd not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.616734, "supported_languages": null}, "macro.spark_utils.spark__datediff": {"name": "spark__datediff", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datediff.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datediff.sql", "unique_id": "macro.spark_utils.spark__datediff", "macro_sql": "{% macro spark__datediff(first_date, second_date, datepart) %}\n\n {%- if datepart in ['day', 'week', 'month', 'quarter', 'year'] -%}\n \n {# make sure the dates are real, otherwise raise an error asap #}\n {% set first_date = spark_utils.assert_not_null('date', first_date) %}\n {% set second_date = spark_utils.assert_not_null('date', second_date) %}\n \n {%- endif -%}\n \n {%- if datepart == 'day' -%}\n \n datediff({{second_date}}, {{first_date}})\n \n {%- elif datepart == 'week' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(datediff({{second_date}}, {{first_date}})/7)\n else ceil(datediff({{second_date}}, {{first_date}})/7)\n end\n \n -- did we cross a week boundary (Sunday)?\n + case\n when {{first_date}} < {{second_date}} and dayofweek({{second_date}}) < dayofweek({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofweek({{second_date}}) > dayofweek({{first_date}}) then -1\n else 0 end\n\n {%- elif datepart == 'month' -%}\n\n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}})))\n else ceil(months_between(date({{second_date}}), date({{first_date}})))\n end\n \n -- did we cross a month boundary?\n + case\n when {{first_date}} < {{second_date}} and dayofmonth({{second_date}}) < dayofmonth({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofmonth({{second_date}}) > dayofmonth({{first_date}}) then -1\n else 0 end\n \n {%- elif datepart == 'quarter' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}}))/3)\n else ceil(months_between(date({{second_date}}), date({{first_date}}))/3)\n end\n \n -- did we cross a quarter boundary?\n + case\n when {{first_date}} < {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n < (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then 1\n when {{first_date}} > {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n > (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then -1\n else 0 end\n\n {%- elif datepart == 'year' -%}\n \n year({{second_date}}) - year({{first_date}})\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set divisor -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n case when {{first_date}} < {{second_date}}\n then ceil((\n {# make sure the timestamps are real, otherwise raise an error asap #}\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n else floor((\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n end\n \n {% if datepart == 'millisecond' %}\n + cast(date_format({{second_date}}, 'SSS') as int)\n - cast(date_format({{first_date}}, 'SSS') as int)\n {% endif %}\n \n {% if datepart == 'microsecond' %} \n {% set capture_str = '[0-9]{4}-[0-9]{2}-[0-9]{2}.[0-9]{2}:[0-9]{2}:[0-9]{2}.([0-9]{6})' %}\n -- Spark doesn't really support microseconds, so this is a massive hack!\n -- It will only work if the timestamp-string is of the format\n -- 'yyyy-MM-dd-HH mm.ss.SSSSSS'\n + cast(regexp_extract({{second_date}}, '{{capture_str}}', 1) as int)\n - cast(regexp_extract({{first_date}}, '{{capture_str}}', 1) as int) \n {% endif %}\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro datediff not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.623866, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp": {"name": "spark__current_timestamp", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp", "macro_sql": "{% macro spark__current_timestamp() %}\n current_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.624005, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp_in_utc": {"name": "spark__current_timestamp_in_utc", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp_in_utc", "macro_sql": "{% macro spark__current_timestamp_in_utc() %}\n unix_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.624078, "supported_languages": null}, "macro.spark_utils.spark__split_part": {"name": "spark__split_part", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/split_part.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/split_part.sql", "unique_id": "macro.spark_utils.spark__split_part", "macro_sql": "{% macro spark__split_part(string_text, delimiter_text, part_number) %}\n\n {% set delimiter_expr %}\n \n -- escape if starts with a special character\n case when regexp_extract({{ delimiter_text }}, '([^A-Za-z0-9])(.*)', 1) != '_'\n then concat('\\\\', {{ delimiter_text }})\n else {{ delimiter_text }} end\n \n {% endset %}\n\n {% set split_part_expr %}\n \n split(\n {{ string_text }},\n {{ delimiter_expr }}\n )[({{ part_number - 1 }})]\n \n {% endset %}\n \n {{ return(split_part_expr) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.624622, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_pattern": {"name": "spark__get_relations_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_pattern", "macro_sql": "{% macro spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n show table extended in {{ schema_pattern }} like '{{ table_pattern }}'\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=None,\n schema=row[0],\n identifier=row[1],\n type=('view' if 'Type: VIEW' in row[3] else 'table')\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"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.626163, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_prefix": {"name": "spark__get_relations_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_prefix", "macro_sql": "{% macro spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {% set table_pattern = table_pattern ~ '*' %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6265018, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_pattern": {"name": "spark__get_tables_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_pattern", "macro_sql": "{% macro spark__get_tables_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6267788, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_prefix": {"name": "spark__get_tables_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_prefix", "macro_sql": "{% macro spark__get_tables_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6270561, "supported_languages": null}, "macro.spark_utils.assert_not_null": {"name": "assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.assert_not_null", "macro_sql": "{% macro assert_not_null(function, arg) -%}\n {{ return(adapter.dispatch('assert_not_null', 'spark_utils')(function, arg)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.spark_utils.default__assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.627372, "supported_languages": null}, "macro.spark_utils.default__assert_not_null": {"name": "default__assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.default__assert_not_null", "macro_sql": "{% macro default__assert_not_null(function, arg) %}\n\n coalesce({{function}}({{arg}}), nvl2({{function}}({{arg}}), assert_true({{function}}({{arg}}) is not null), null))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.627616, "supported_languages": null}, "macro.spark_utils.spark__convert_timezone": {"name": "spark__convert_timezone", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/snowplow/convert_timezone.sql", "original_file_path": "macros/snowplow/convert_timezone.sql", "unique_id": "macro.spark_utils.spark__convert_timezone", "macro_sql": "{% macro spark__convert_timezone(in_tz, out_tz, in_timestamp) %}\n from_utc_timestamp(to_utc_timestamp({{in_timestamp}}, {{in_tz}}), {{out_tz}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.627836, "supported_languages": null}, "macro.fivetran_utils.enabled_vars": {"name": "enabled_vars", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars.sql", "original_file_path": "macros/enabled_vars.sql", "unique_id": "macro.fivetran_utils.enabled_vars", "macro_sql": "{% macro enabled_vars(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, True) == False %}\n {{ return(False) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(True) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.628233, "supported_languages": null}, "macro.fivetran_utils.percentile": {"name": "percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.percentile", "macro_sql": "{% macro percentile(percentile_field, partition_field, percent) -%}\n\n{{ adapter.dispatch('percentile', 'fivetran_utils') (percentile_field, partition_field, percent) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__percentile"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6291149, "supported_languages": null}, "macro.fivetran_utils.default__percentile": {"name": "default__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.default__percentile", "macro_sql": "{% macro default__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6292758, "supported_languages": null}, "macro.fivetran_utils.redshift__percentile": {"name": "redshift__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.redshift__percentile", "macro_sql": "{% macro redshift__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.629431, "supported_languages": null}, "macro.fivetran_utils.bigquery__percentile": {"name": "bigquery__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.bigquery__percentile", "macro_sql": "{% macro bigquery__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.629589, "supported_languages": null}, "macro.fivetran_utils.postgres__percentile": {"name": "postgres__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.postgres__percentile", "macro_sql": "{% macro postgres__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n /* have to group by partition field */\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.629733, "supported_languages": null}, "macro.fivetran_utils.spark__percentile": {"name": "spark__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.spark__percentile", "macro_sql": "{% macro spark__percentile(percentile_field, partition_field, percent) %}\n\n percentile( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.629896, "supported_languages": null}, "macro.fivetran_utils.pivot_json_extract": {"name": "pivot_json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/pivot_json_extract.sql", "original_file_path": "macros/pivot_json_extract.sql", "unique_id": "macro.fivetran_utils.pivot_json_extract", "macro_sql": "{% macro pivot_json_extract(string, list_of_properties) %}\n\n{%- for property in list_of_properties -%}\n{%- if property is mapping -%}\nreplace( {{ fivetran_utils.json_extract(string, property.name) }}, '\"', '') as {{ property.alias if property.alias else property.name | replace(' ', '_') | replace('.', '_') | lower }}\n\n{%- else -%}\nreplace( {{ fivetran_utils.json_extract(string, property) }}, '\"', '') as {{ property | replace(' ', '_') | lower }}\n\n{%- endif -%}\n{%- if not loop.last -%},{%- endif %}\n{% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.630662, "supported_languages": null}, "macro.fivetran_utils.persist_pass_through_columns": {"name": "persist_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/persist_pass_through_columns.sql", "original_file_path": "macros/persist_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.persist_pass_through_columns", "macro_sql": "{% macro persist_pass_through_columns(pass_through_variable, identifier=none, transform='') %}\n\n{% if var(pass_through_variable, none) %}\n {% for field in var(pass_through_variable) %}\n , {{ transform ~ '(' ~ (identifier ~ '.' if identifier else '') ~ (field.alias if field.alias else field.name) ~ ')' }} as {{ field.alias if field.alias else field.name }}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.63135, "supported_languages": null}, "macro.fivetran_utils.json_parse": {"name": "json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.json_parse", "macro_sql": "{% macro json_parse(string, string_path) -%}\n\n{{ adapter.dispatch('json_parse', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_parse"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6323352, "supported_languages": null}, "macro.fivetran_utils.default__json_parse": {"name": "default__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.default__json_parse", "macro_sql": "{% macro default__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.632589, "supported_languages": null}, "macro.fivetran_utils.redshift__json_parse": {"name": "redshift__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.redshift__json_parse", "macro_sql": "{% macro redshift__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.63283, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_parse": {"name": "bigquery__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.bigquery__json_parse", "macro_sql": "{% macro bigquery__json_parse(string, string_path) %}\n\n \n json_extract_scalar({{string}}, '$.{%- for s in string_path -%}{{ s }}{%- if not loop.last -%}.{%- endif -%}{%- endfor -%} ')\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.63306, "supported_languages": null}, "macro.fivetran_utils.postgres__json_parse": {"name": "postgres__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.postgres__json_parse", "macro_sql": "{% macro postgres__json_parse(string, string_path) %}\n\n {{string}}::json #>> '{ {%- for s in string_path -%}{{ s }}{%- if not loop.last -%},{%- endif -%}{%- endfor -%} }'\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6332889, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_parse": {"name": "snowflake__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.snowflake__json_parse", "macro_sql": "{% macro snowflake__json_parse(string, string_path) %}\n\n parse_json( {{string}} ) {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6335402, "supported_languages": null}, "macro.fivetran_utils.spark__json_parse": {"name": "spark__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.spark__json_parse", "macro_sql": "{% macro spark__json_parse(string, string_path) %}\n\n {{string}} : {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.633792, "supported_languages": null}, "macro.fivetran_utils.max_bool": {"name": "max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.max_bool", "macro_sql": "{% macro max_bool(boolean_field) -%}\n\n{{ adapter.dispatch('max_bool', 'fivetran_utils') (boolean_field) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__max_bool"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.634092, "supported_languages": null}, "macro.fivetran_utils.default__max_bool": {"name": "default__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.default__max_bool", "macro_sql": "{% macro default__max_bool(boolean_field) %}\n\n bool_or( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.634191, "supported_languages": null}, "macro.fivetran_utils.snowflake__max_bool": {"name": "snowflake__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.snowflake__max_bool", "macro_sql": "{% macro snowflake__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6342862, "supported_languages": null}, "macro.fivetran_utils.bigquery__max_bool": {"name": "bigquery__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.bigquery__max_bool", "macro_sql": "{% macro bigquery__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.63438, "supported_languages": null}, "macro.fivetran_utils.calculated_fields": {"name": "calculated_fields", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/calculated_fields.sql", "original_file_path": "macros/calculated_fields.sql", "unique_id": "macro.fivetran_utils.calculated_fields", "macro_sql": "{% macro calculated_fields(variable) -%}\n\n{% if var(variable, none) %}\n {% for field in var(variable) %}\n , {{ field.transform_sql }} as {{ field.name }} \n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.634727, "supported_languages": null}, "macro.fivetran_utils.drop_schemas_automation": {"name": "drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.drop_schemas_automation", "macro_sql": "{% macro drop_schemas_automation(drop_target_schema=true) %}\n {{ return(adapter.dispatch('drop_schemas_automation', 'fivetran_utils')(drop_target_schema)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__drop_schemas_automation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.635361, "supported_languages": null}, "macro.fivetran_utils.default__drop_schemas_automation": {"name": "default__drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.default__drop_schemas_automation", "macro_sql": "{% macro default__drop_schemas_automation(drop_target_schema=true) %}\n\n{% set fetch_list_sql %}\n {% if target.type not in ('databricks', 'spark') %}\n select schema_name\n from \n {{ wrap_in_quotes(target.database) }}.INFORMATION_SCHEMA.SCHEMATA\n where lower(schema_name) like '{{ target.schema | lower }}{%- if not drop_target_schema -%}_{%- endif -%}%'\n {% else %}\n SHOW SCHEMAS LIKE '{{ target.schema }}{%- if not drop_target_schema -%}_{%- endif -%}*'\n {% endif %}\n{% endset %}\n\n{% set results = run_query(fetch_list_sql) %}\n\n{% if execute %}\n {% set results_list = results.columns[0].values() %}\n{% else %}\n {% set results_list = [] %}\n{% endif %}\n\n{% for schema_to_drop in results_list %}\n {% do adapter.drop_schema(api.Relation.create(database=target.database, schema=schema_to_drop)) %}\n {{ print('Schema ' ~ schema_to_drop ~ ' successfully dropped from the ' ~ target.database ~ ' database.\\n')}}\n{% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.wrap_in_quotes", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.636565, "supported_languages": null}, "macro.fivetran_utils.seed_data_helper": {"name": "seed_data_helper", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/seed_data_helper.sql", "original_file_path": "macros/seed_data_helper.sql", "unique_id": "macro.fivetran_utils.seed_data_helper", "macro_sql": "{% macro seed_data_helper(seed_name, warehouses) %}\n\n{% if target.type in warehouses %}\n {% for w in warehouses %}\n {% if target.type == w %}\n {{ return(ref(seed_name ~ \"_\" ~ w ~ \"\")) }}\n {% endif %}\n {% endfor %}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.637144, "supported_languages": null}, "macro.fivetran_utils.fill_pass_through_columns": {"name": "fill_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_pass_through_columns.sql", "original_file_path": "macros/fill_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.fill_pass_through_columns", "macro_sql": "{% macro fill_pass_through_columns(pass_through_variable) %}\n\n{% if var(pass_through_variable) %}\n {% for field in var(pass_through_variable) %}\n {% if field is mapping %}\n {% if field.transform_sql %}\n , {{ field.transform_sql }} as {{ field.alias if field.alias else field.name }}\n {% else %}\n , {{ field.alias if field.alias else field.name }}\n {% endif %}\n {% else %}\n , {{ field }}\n {% endif %}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.637912, "supported_languages": null}, "macro.fivetran_utils.string_agg": {"name": "string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.string_agg", "macro_sql": "{% macro string_agg(field_to_agg, delimiter) -%}\n\n{{ adapter.dispatch('string_agg', 'fivetran_utils') (field_to_agg, delimiter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__string_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.638379, "supported_languages": null}, "macro.fivetran_utils.default__string_agg": {"name": "default__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.default__string_agg", "macro_sql": "{% macro default__string_agg(field_to_agg, delimiter) %}\n string_agg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6385121, "supported_languages": null}, "macro.fivetran_utils.snowflake__string_agg": {"name": "snowflake__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.snowflake__string_agg", "macro_sql": "{% macro snowflake__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6386409, "supported_languages": null}, "macro.fivetran_utils.redshift__string_agg": {"name": "redshift__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.redshift__string_agg", "macro_sql": "{% macro redshift__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.638766, "supported_languages": null}, "macro.fivetran_utils.spark__string_agg": {"name": "spark__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.spark__string_agg", "macro_sql": "{% macro spark__string_agg(field_to_agg, delimiter) %}\n -- collect set will remove duplicates\n replace(replace(replace(cast( collect_set({{ field_to_agg }}) as string), '[', ''), ']', ''), ', ', {{ delimiter }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6388962, "supported_languages": null}, "macro.fivetran_utils.timestamp_diff": {"name": "timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.timestamp_diff", "macro_sql": "{% macro timestamp_diff(first_date, second_date, datepart) %}\n {{ adapter.dispatch('timestamp_diff', 'fivetran_utils')(first_date, second_date, datepart) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_diff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.64164, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_diff": {"name": "default__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.default__timestamp_diff", "macro_sql": "{% macro default__timestamp_diff(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}, "patch_path": null, "arguments": [], "created_at": 1686087006.641803, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_diff": {"name": "redshift__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_diff", "macro_sql": "{% macro redshift__timestamp_diff(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}, "patch_path": null, "arguments": [], "created_at": 1686087006.641957, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_diff": {"name": "bigquery__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_diff", "macro_sql": "{% macro bigquery__timestamp_diff(first_date, second_date, datepart) %}\n\n timestamp_diff(\n {{second_date}},\n {{first_date}},\n {{datepart}}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6421099, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_diff": {"name": "postgres__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_diff", "macro_sql": "{% macro postgres__timestamp_diff(first_date, second_date, datepart) %}\n\n {% if datepart == 'year' %}\n (date_part('year', ({{second_date}})::date) - date_part('year', ({{first_date}})::date))\n {% elif datepart == 'quarter' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 4 + date_part('quarter', ({{second_date}})::date) - date_part('quarter', ({{first_date}})::date))\n {% elif datepart == 'month' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 12 + date_part('month', ({{second_date}})::date) - date_part('month', ({{first_date}})::date))\n {% elif datepart == 'day' %}\n (({{second_date}})::date - ({{first_date}})::date)\n {% elif datepart == 'week' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} / 7 + case\n when date_part('dow', ({{first_date}})::timestamp) <= date_part('dow', ({{second_date}})::timestamp) then\n case when {{first_date}} <= {{second_date}} then 0 else -1 end\n else\n case when {{first_date}} <= {{second_date}} then 1 else 0 end\n end)\n {% elif datepart == 'hour' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} * 24 + date_part('hour', ({{second_date}})::timestamp) - date_part('hour', ({{first_date}})::timestamp))\n {% elif datepart == 'minute' %}\n ({{ dbt.datediff(first_date, second_date, 'hour') }} * 60 + date_part('minute', ({{second_date}})::timestamp) - date_part('minute', ({{first_date}})::timestamp))\n {% elif datepart == 'second' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60 + floor(date_part('second', ({{second_date}})::timestamp)) - floor(date_part('second', ({{first_date}})::timestamp)))\n {% elif datepart == 'millisecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000 + floor(date_part('millisecond', ({{second_date}})::timestamp)) - floor(date_part('millisecond', ({{first_date}})::timestamp)))\n {% elif datepart == 'microsecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000000 + floor(date_part('microsecond', ({{second_date}})::timestamp)) - floor(date_part('microsecond', ({{first_date}})::timestamp)))\n {% else %}\n {{ exceptions.raise_compiler_error(\"Unsupported datepart for macro datediff in postgres: {!r}\".format(datepart)) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.643858, "supported_languages": null}, "macro.fivetran_utils.try_cast": {"name": "try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.try_cast", "macro_sql": "{% macro try_cast(field, type) %}\n {{ adapter.dispatch('try_cast', 'fivetran_utils') (field, type) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__try_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6446662, "supported_languages": null}, "macro.fivetran_utils.default__safe_cast": {"name": "default__safe_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.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}, "patch_path": null, "arguments": [], "created_at": 1686087006.6448069, "supported_languages": null}, "macro.fivetran_utils.redshift__try_cast": {"name": "redshift__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.redshift__try_cast", "macro_sql": "{% macro redshift__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when trim({{field}}) ~ '^(0|[1-9][0-9]*)$' then trim({{field}})\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.645082, "supported_languages": null}, "macro.fivetran_utils.postgres__try_cast": {"name": "postgres__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.postgres__try_cast", "macro_sql": "{% macro postgres__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6453602, "supported_languages": null}, "macro.fivetran_utils.snowflake__try_cast": {"name": "snowflake__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.snowflake__try_cast", "macro_sql": "{% macro snowflake__try_cast(field, type) %}\n try_cast(cast({{field}} as varchar) as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.645491, "supported_languages": null}, "macro.fivetran_utils.bigquery__try_cast": {"name": "bigquery__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.bigquery__try_cast", "macro_sql": "{% macro bigquery__try_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.645615, "supported_languages": null}, "macro.fivetran_utils.spark__try_cast": {"name": "spark__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.spark__try_cast", "macro_sql": "{% macro spark__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6457422, "supported_languages": null}, "macro.fivetran_utils.source_relation": {"name": "source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.source_relation", "macro_sql": "{% macro source_relation(union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('source_relation', 'fivetran_utils') (union_schema_variable, union_database_variable) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.646212, "supported_languages": null}, "macro.fivetran_utils.default__source_relation": {"name": "default__source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.default__source_relation", "macro_sql": "{% macro default__source_relation(union_schema_variable, union_database_variable) %}\n\n{% if var(union_schema_variable, none) %}\n, case\n {% for schema in var(union_schema_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%.{{ schema|lower }}.%' then '{{ schema|lower }}'\n {% endfor %}\n end as source_relation\n{% elif var(union_database_variable, none) %}\n, case\n {% for database in var(union_database_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%{{ database|lower }}.%' then '{{ database|lower }}'\n {% endfor %}\n end as source_relation\n{% else %}\n, cast('' as {{ dbt.type_string() }}) as source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6467772, "supported_languages": null}, "macro.fivetran_utils.first_value": {"name": "first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.first_value", "macro_sql": "{% macro first_value(first_value_field, partition_field, order_by_field, order=\"asc\") -%}\n\n{{ adapter.dispatch('first_value', 'fivetran_utils') (first_value_field, partition_field, order_by_field, order) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__first_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.647305, "supported_languages": null}, "macro.fivetran_utils.default__first_value": {"name": "default__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.default__first_value", "macro_sql": "{% macro default__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6475341, "supported_languages": null}, "macro.fivetran_utils.redshift__first_value": {"name": "redshift__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.redshift__first_value", "macro_sql": "{% macro redshift__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} , {{ partition_field }} rows unbounded preceding )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6477618, "supported_languages": null}, "macro.fivetran_utils.add_dbt_source_relation": {"name": "add_dbt_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_dbt_source_relation.sql", "original_file_path": "macros/add_dbt_source_relation.sql", "unique_id": "macro.fivetran_utils.add_dbt_source_relation", "macro_sql": "{% macro add_dbt_source_relation() %}\n\n{% if var('union_schemas', none) or var('union_databases', none) %}\n, _dbt_source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.648027, "supported_languages": null}, "macro.fivetran_utils.add_pass_through_columns": {"name": "add_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_pass_through_columns.sql", "original_file_path": "macros/add_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.add_pass_through_columns", "macro_sql": "{% macro add_pass_through_columns(base_columns, pass_through_var) %}\n\n {% if pass_through_var %}\n\n {% for column in pass_through_var %}\n\n {% if column is mapping %}\n\n {% if column.alias %}\n\n {% do base_columns.append({ \"name\": column.name, \"alias\": column.alias, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column.name, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n \n {% endif %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column, \"datatype\": dbt.type_string()}) %}\n\n {% endif %}\n\n {% endfor %}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.649088, "supported_languages": null}, "macro.fivetran_utils.union_relations": {"name": "union_relations", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_relations", "macro_sql": "{%- macro union_relations(relations, aliases=none, column_override=none, include=[], exclude=[], source_column_name=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 {%- set source_column_name = source_column_name if source_column_name is not none else '_dbt_source_relation' -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(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 in exclude -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column not in include -%}\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\n {%- for relation in relations %}\n\n (\n select\n\n cast({{ dbt.string_literal(relation) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\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 {{ aliases[loop.index0] if aliases else relation }}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.653003, "supported_languages": null}, "macro.fivetran_utils.union_tables": {"name": "union_tables", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_tables", "macro_sql": "{%- macro union_tables(tables, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_table') -%}\n\n {%- do exceptions.warn(\"Warning: the `union_tables` macro is no longer supported and will be deprecated in a future release of dbt-utils. Use the `union_relations` macro instead\") -%}\n\n {{ return(dbt_utils.union_relations(tables, column_override, include, exclude, source_column_name)) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6533701, "supported_languages": null}, "macro.fivetran_utils.snowflake_seed_data": {"name": "snowflake_seed_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/snowflake_seed_data.sql", "original_file_path": "macros/snowflake_seed_data.sql", "unique_id": "macro.fivetran_utils.snowflake_seed_data", "macro_sql": "{% macro snowflake_seed_data(seed_name) %}\n\n{% if target.type == 'snowflake' %}\n{{ return(ref(seed_name ~ '_snowflake')) }}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.653756, "supported_languages": null}, "macro.fivetran_utils.fill_staging_columns": {"name": "fill_staging_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.fill_staging_columns", "macro_sql": "{% macro fill_staging_columns(source_columns, staging_columns) -%}\n\n{%- set source_column_names = source_columns|map(attribute='name')|map('lower')|list -%}\n\n{%- for column in staging_columns %}\n {% if column.name|lower in source_column_names -%}\n {{ fivetran_utils.quote_column(column) }} as \n {%- if 'alias' in column %} {{ column.alias }} {% else %} {{ fivetran_utils.quote_column(column) }} {%- endif -%}\n {%- else -%}\n cast(null as {{ column.datatype }})\n {%- if 'alias' in column %} as {{ column.alias }} {% else %} as {{ fivetran_utils.quote_column(column) }} {% endif -%}\n {%- endif -%}\n {%- if not loop.last -%} , {% endif -%}\n{% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.quote_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.655343, "supported_languages": null}, "macro.fivetran_utils.quote_column": {"name": "quote_column", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.quote_column", "macro_sql": "{% macro quote_column(column) %}\n {% if 'quote' in column %}\n {% if column.quote %}\n {% if target.type in ('bigquery', 'spark', 'databricks') %}\n `{{ column.name }}`\n {% elif target.type == 'snowflake' %}\n \"{{ column.name | upper }}\"\n {% else %}\n \"{{ column.name }}\"\n {% endif %}\n {% else %}\n {{ column.name }}\n {% endif %}\n {% else %}\n {{ column.name }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6559339, "supported_languages": null}, "macro.fivetran_utils.json_extract": {"name": "json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.json_extract", "macro_sql": "{% macro json_extract(string, string_path) -%}\n\n{{ adapter.dispatch('json_extract', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.656511, "supported_languages": null}, "macro.fivetran_utils.default__json_extract": {"name": "default__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.default__json_extract", "macro_sql": "{% macro default__json_extract(string, string_path) %}\n\n json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} )\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.656671, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_extract": {"name": "snowflake__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.snowflake__json_extract", "macro_sql": "{% macro snowflake__json_extract(string, string_path) %}\n\n json_extract_path_text(try_parse_json( {{string}} ), {{ \"'\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.656825, "supported_languages": null}, "macro.fivetran_utils.redshift__json_extract": {"name": "redshift__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.redshift__json_extract", "macro_sql": "{% macro redshift__json_extract(string, string_path) %}\n\n case when is_valid_json( {{string}} ) then json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} ) else null end\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.656998, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_extract": {"name": "bigquery__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.bigquery__json_extract", "macro_sql": "{% macro bigquery__json_extract(string, string_path) %}\n\n json_extract_scalar({{string}}, {{ \"'$.\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6571531, "supported_languages": null}, "macro.fivetran_utils.postgres__json_extract": {"name": "postgres__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.postgres__json_extract", "macro_sql": "{% macro postgres__json_extract(string, string_path) %}\n\n {{string}}::json->>{{\"'\" ~ string_path ~ \"'\" }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6573062, "supported_languages": null}, "macro.fivetran_utils.collect_freshness": {"name": "collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.collect_freshness", "macro_sql": "{% macro collect_freshness(source, loaded_at_field, filter) %}\n {{ return(adapter.dispatch('collect_freshness')(source, loaded_at_field, filter))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.657994, "supported_languages": null}, "macro.fivetran_utils.default__collect_freshness": {"name": "default__collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.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\n {%- set enabled_array = [] -%}\n {% for node in graph.sources.values() %}\n {% if node.identifier == source.identifier %}\n {% if (node.meta['is_enabled'] | default(true)) %}\n {%- do enabled_array.append(1) -%}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% set is_enabled = (enabled_array != []) %}\n\n select\n {% if is_enabled %}\n max({{ loaded_at_field }})\n {% else %} \n {{ current_timestamp() }} {% endif %} as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n\n {% if is_enabled %}\n from {{ source }}\n {% if filter %}\n where {{ filter }}\n {% endif %}\n {% endif %}\n\n {% endcall %}\n {{ return(load_result('collect_freshness').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.659067, "supported_languages": null}, "macro.fivetran_utils.timestamp_add": {"name": "timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.timestamp_add", "macro_sql": "{% macro timestamp_add(datepart, interval, from_timestamp) -%}\n\n{{ adapter.dispatch('timestamp_add', 'fivetran_utils') (datepart, interval, from_timestamp) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6598148, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_add": {"name": "default__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.default__timestamp_add", "macro_sql": "{% macro default__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestampadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6599848, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_add": {"name": "bigquery__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_add", "macro_sql": "{% macro bigquery__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestamp_add({{ from_timestamp }}, interval {{ interval }} {{ datepart }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.660138, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_add": {"name": "redshift__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_add", "macro_sql": "{% macro redshift__timestamp_add(datepart, interval, from_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.660291, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_add": {"name": "postgres__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_add", "macro_sql": "{% macro postgres__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ from_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.660444, "supported_languages": null}, "macro.fivetran_utils.spark__timestamp_add": {"name": "spark__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.spark__timestamp_add", "macro_sql": "{% macro spark__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ dbt.dateadd(datepart, interval, from_timestamp) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.660612, "supported_languages": null}, "macro.fivetran_utils.ceiling": {"name": "ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.ceiling", "macro_sql": "{% macro ceiling(num) -%}\n\n{{ adapter.dispatch('ceiling', 'fivetran_utils') (num) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__ceiling"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.660863, "supported_languages": null}, "macro.fivetran_utils.default__ceiling": {"name": "default__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.default__ceiling", "macro_sql": "{% macro default__ceiling(num) %}\n ceiling({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.660963, "supported_languages": null}, "macro.fivetran_utils.snowflake__ceiling": {"name": "snowflake__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.snowflake__ceiling", "macro_sql": "{% macro snowflake__ceiling(num) %}\n ceil({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.661058, "supported_languages": null}, "macro.fivetran_utils.remove_prefix_from_columns": {"name": "remove_prefix_from_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/remove_prefix_from_columns.sql", "original_file_path": "macros/remove_prefix_from_columns.sql", "unique_id": "macro.fivetran_utils.remove_prefix_from_columns", "macro_sql": "{% macro remove_prefix_from_columns(columns, prefix='', exclude=[]) %}\n\n {%- for col in columns if col.name not in exclude -%}\n {%- if col.name[:prefix|length]|lower == prefix -%}\n {{ col.name }} as {{ col.name[prefix|length:] }}\n {%- else -%}\n {{ col.name }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.661762, "supported_languages": null}, "macro.fivetran_utils.union_data": {"name": "union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.union_data", "macro_sql": "{%- macro union_data(table_identifier, database_variable, schema_variable, default_database, default_schema, default_variable, union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('union_data', 'fivetran_utils') (\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.default__union_data"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.665289, "supported_languages": null}, "macro.fivetran_utils.default__union_data": {"name": "default__union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.default__union_data", "macro_sql": "{%- macro default__union_data(\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) -%}\n\n{%- if var(union_schema_variable, none) -%}\n\n {%- set relations = [] -%}\n \n {%- if var(union_schema_variable) is string -%}\n {%- set trimmed = var(union_schema_variable)|trim('[')|trim(']') -%}\n {%- set schemas = trimmed.split(',')|map('trim',\" \")|map('trim','\"')|map('trim',\"'\") -%}\n {%- else -%}\n {%- set schemas = var(union_schema_variable) -%}\n {%- endif -%}\n\n {%- for schema in var(union_schema_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else var(database_variable, default_database),\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else schema,\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n \n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n \n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- elif var(union_database_variable, none) -%}\n\n {%- set relations = [] -%}\n\n {%- for database in var(union_database_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else database,\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else var(schema_variable, default_schema),\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n\n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n\n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- else -%}\n {%- set relation=adapter.get_relation(\n database=var(database_variable, default_database),\n schema=var(schema_variable, default_schema),\n identifier=var(default_schema ~ '_' ~ table_identifier ~ '_' ~ 'identifier', table_identifier)) -%}\n\n{%- set table_exists=relation is not none -%}\n\n{%- if table_exists -%}\n select * \n from {{ var(default_variable) }}\n{%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n{%- endif -%}\n{%- endif -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.668855, "supported_languages": null}, "macro.fivetran_utils.dummy_coalesce_value": {"name": "dummy_coalesce_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/dummy_coalesce_value.sql", "original_file_path": "macros/dummy_coalesce_value.sql", "unique_id": "macro.fivetran_utils.dummy_coalesce_value", "macro_sql": "{% macro dummy_coalesce_value(column) %}\n\n{% set coalesce_value = {\n 'STRING': \"'DUMMY_STRING'\",\n 'BOOLEAN': 'null',\n 'INT': 999999999,\n 'FLOAT': 999999999.99,\n 'TIMESTAMP': 'cast(\"2099-12-31\" as timestamp)',\n 'DATE': 'cast(\"2099-12-31\" as date)',\n} %}\n\n{% if column.is_float() %}\n{{ return(coalesce_value['FLOAT']) }}\n\n{% elif column.is_numeric() %}\n{{ return(coalesce_value['INT']) }}\n\n{% elif column.is_string() %}\n{{ return(coalesce_value['STRING']) }}\n\n{% elif column.data_type|lower == 'boolean' %}\n{{ return(coalesce_value['BOOLEAN']) }}\n\n{% elif 'timestamp' in column.data_type|lower %}\n{{ return(coalesce_value['TIMESTAMP']) }}\n\n{% elif 'date' in column.data_type|lower %}\n{{ return(coalesce_value['DATE']) }}\n\n{% elif 'int' in column.data_type|lower %}\n{{ return(coalesce_value['INT']) }}\n\n{% endif %}\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.670295, "supported_languages": null}, "macro.fivetran_utils.wrap_in_quotes": {"name": "wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.wrap_in_quotes", "macro_sql": "{%- macro wrap_in_quotes(object_to_quote) -%}\n\n{{ return(adapter.dispatch('wrap_in_quotes', 'fivetran_utils')(object_to_quote)) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.postgres__wrap_in_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6706429, "supported_languages": null}, "macro.fivetran_utils.default__wrap_in_quotes": {"name": "default__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.default__wrap_in_quotes", "macro_sql": "{%- macro default__wrap_in_quotes(object_to_quote) -%}\n{# bigquery, spark, databricks #}\n `{{ object_to_quote }}`\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6707578, "supported_languages": null}, "macro.fivetran_utils.snowflake__wrap_in_quotes": {"name": "snowflake__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.snowflake__wrap_in_quotes", "macro_sql": "{%- macro snowflake__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote | upper }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6708732, "supported_languages": null}, "macro.fivetran_utils.redshift__wrap_in_quotes": {"name": "redshift__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.redshift__wrap_in_quotes", "macro_sql": "{%- macro redshift__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6709719, "supported_languages": null}, "macro.fivetran_utils.postgres__wrap_in_quotes": {"name": "postgres__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.postgres__wrap_in_quotes", "macro_sql": "{%- macro postgres__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.671069, "supported_languages": null}, "macro.fivetran_utils.array_agg": {"name": "array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.array_agg", "macro_sql": "{% macro array_agg(field_to_agg) -%}\n\n{{ adapter.dispatch('array_agg', 'fivetran_utils') (field_to_agg) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__array_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.671326, "supported_languages": null}, "macro.fivetran_utils.default__array_agg": {"name": "default__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.default__array_agg", "macro_sql": "{% macro default__array_agg(field_to_agg) %}\n array_agg({{ field_to_agg }})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6714308, "supported_languages": null}, "macro.fivetran_utils.redshift__array_agg": {"name": "redshift__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.redshift__array_agg", "macro_sql": "{% macro redshift__array_agg(field_to_agg) %}\n listagg({{ field_to_agg }}, ',')\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.671535, "supported_languages": null}, "macro.fivetran_utils.empty_variable_warning": {"name": "empty_variable_warning", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/empty_variable_warning.sql", "original_file_path": "macros/empty_variable_warning.sql", "unique_id": "macro.fivetran_utils.empty_variable_warning", "macro_sql": "{% macro empty_variable_warning(variable, downstream_model) %}\n\n{% if not var(variable) %}\n{{ log(\n \"\"\"\n Warning: You have passed an empty list to the \"\"\" ~ variable ~ \"\"\".\n As a result, you won't see the history of any columns in the \"\"\" ~ downstream_model ~ \"\"\" model.\n \"\"\",\n info=True\n) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.671953, "supported_languages": null}, "macro.fivetran_utils.enabled_vars_one_true": {"name": "enabled_vars_one_true", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars_one_true.sql", "original_file_path": "macros/enabled_vars_one_true.sql", "unique_id": "macro.fivetran_utils.enabled_vars_one_true", "macro_sql": "{% macro enabled_vars_one_true(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, False) == True %}\n {{ return(True) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(False) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.672331, "supported_languages": null}, "macro.pinterest_source.get_ad_group_history_columns": {"name": "get_ad_group_history_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_ad_group_history_columns.sql", "original_file_path": "macros/get_ad_group_history_columns.sql", "unique_id": "macro.pinterest_source.get_ad_group_history_columns", "macro_sql": "{% macro get_ad_group_history_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"end_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"start_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.673275, "supported_languages": null}, "macro.pinterest_source.get_pin_promotion_history_columns": {"name": "get_pin_promotion_history_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_pin_promotion_history_columns.sql", "original_file_path": "macros/get_pin_promotion_history_columns.sql", "unique_id": "macro.pinterest_source.get_pin_promotion_history_columns", "macro_sql": "{% macro get_pin_promotion_history_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ad_group_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"android_deep_link\", \"datatype\": dbt.type_string()},\n {\"name\": \"click_tracking_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"creative_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"ios_deep_link\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_pin_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"is_removable\", \"datatype\": \"boolean\"},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"pin_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"review_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"view_tracking_url\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6751502, "supported_languages": null}, "macro.pinterest_source.get_keyword_report_columns": {"name": "get_keyword_report_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_keyword_report_columns.sql", "original_file_path": "macros/get_keyword_report_columns.sql", "unique_id": "macro.pinterest_source.get_keyword_report_columns", "macro_sql": "{% macro get_keyword_report_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ad_group_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"ad_group_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"ad_group_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"clickthrough_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"clickthrough_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impression_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"impression_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"keyword_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"pin_promotion_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"spend_in_micro_dollar\", \"datatype\": dbt.type_int()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('pinterest__keyword_report_passthrough_metrics')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6768909, "supported_languages": null}, "macro.pinterest_source.get_pin_promotion_report_columns": {"name": "get_pin_promotion_report_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_pin_promotion_report_columns.sql", "original_file_path": "macros/get_pin_promotion_report_columns.sql", "unique_id": "macro.pinterest_source.get_pin_promotion_report_columns", "macro_sql": "{% macro get_pin_promotion_report_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ad_group_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"clickthrough_1\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"clickthrough_2\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impression_1\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"impression_2\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"pin_promotion_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"spend_in_micro_dollar\", \"datatype\": dbt.type_numeric()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('pinterest__pin_promotion_report_passthrough_metrics')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_numeric", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.678282, "supported_languages": null}, "macro.pinterest_source.get_campaign_report_columns": {"name": "get_campaign_report_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_campaign_report_columns.sql", "original_file_path": "macros/get_campaign_report_columns.sql", "unique_id": "macro.pinterest_source.get_campaign_report_columns", "macro_sql": "{% macro get_campaign_report_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"clickthrough_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"clickthrough_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impression_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"impression_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"spend_in_micro_dollar\", \"datatype\": dbt.type_int()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('pinterest__campaign_report_passthrough_metrics')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.679654, "supported_languages": null}, "macro.pinterest_source.get_campaign_history_columns": {"name": "get_campaign_history_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_campaign_history_columns.sql", "original_file_path": "macros/get_campaign_history_columns.sql", "unique_id": "macro.pinterest_source.get_campaign_history_columns", "macro_sql": "{% macro get_campaign_history_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.680429, "supported_languages": null}, "macro.pinterest_source.get_advertiser_history_columns": {"name": "get_advertiser_history_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_advertiser_history_columns.sql", "original_file_path": "macros/get_advertiser_history_columns.sql", "unique_id": "macro.pinterest_source.get_advertiser_history_columns", "macro_sql": "{% macro get_advertiser_history_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"billing_profile_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"country\", \"datatype\": dbt.type_string()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"merchant_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"owner_user_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated_time\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6817842, "supported_languages": null}, "macro.pinterest_source.get_ad_group_report_columns": {"name": "get_ad_group_report_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_ad_group_report_columns.sql", "original_file_path": "macros/get_ad_group_report_columns.sql", "unique_id": "macro.pinterest_source.get_ad_group_report_columns", "macro_sql": "{% macro get_ad_group_report_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ad_group_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"ad_group_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"ad_group_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"clickthrough_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"clickthrough_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impression_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"impression_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"spend_in_micro_dollar\", \"datatype\": dbt.type_int()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('pinterest__ad_group_report_passthrough_metrics')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.683224, "supported_languages": null}, "macro.pinterest_source.get_keyword_history_columns": {"name": "get_keyword_history_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_keyword_history_columns.sql", "original_file_path": "macros/get_keyword_history_columns.sql", "unique_id": "macro.pinterest_source.get_keyword_history_columns", "macro_sql": "{% macro get_keyword_history_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ad_group_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"archived\", \"datatype\": \"boolean\"},\n {\"name\": \"bid\", \"datatype\": dbt.type_int()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"match_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"parent_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"value\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string", "macro.dbt.type_timestamp", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.6845272, "supported_languages": null}, "macro.pinterest_source.get_advertiser_report_columns": {"name": "get_advertiser_report_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_advertiser_report_columns.sql", "original_file_path": "macros/get_advertiser_report_columns.sql", "unique_id": "macro.pinterest_source.get_advertiser_report_columns", "macro_sql": "{% macro get_advertiser_report_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"clickthrough_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"clickthrough_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impression_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"impression_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"spend_in_micro_dollar\", \"datatype\": dbt.type_int()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('pinterest__advertiser_report_passthrough_metrics')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1686087006.685689, "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"}, "doc.pinterest_source._fivetran_synced": {"name": "_fivetran_synced", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source._fivetran_synced", "block_contents": "Timestamp of when a record was last synced."}, "doc.pinterest_source.is_most_recent_record": {"name": "is_most_recent_record", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.is_most_recent_record", "block_contents": "Boolean representing whether the record is the most recent version of the object."}, "doc.pinterest_source.date_day": {"name": "date_day", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.date_day", "block_contents": "The performance date of the record."}, "doc.pinterest_source.ad_group_id": {"name": "ad_group_id", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.ad_group_id", "block_contents": "The ID of the related Ad group."}, "doc.pinterest_source.pin_promotion_id": {"name": "pin_promotion_id", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.pin_promotion_id", "block_contents": "The ID of the related Pin promotion."}, "doc.pinterest_source.campaign_id": {"name": "campaign_id", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.campaign_id", "block_contents": "The ID of the related Campaign."}, "doc.pinterest_source.advertiser_id": {"name": "advertiser_id", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.advertiser_id", "block_contents": "The ID of the related Advertiser."}, "doc.pinterest_source.impressions": {"name": "impressions", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.impressions", "block_contents": "The number of paid and earned impressions that occurred on the day of the record."}, "doc.pinterest_source.clicks": {"name": "clicks", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.clicks", "block_contents": "The number of paid and earned clicks that occurred on the day of the record."}, "doc.pinterest_source.spend": {"name": "spend", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.spend", "block_contents": "The amount of spend that occurred on the day of the record."}, "doc.pinterest_source.updated_at": {"name": "updated_at", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.updated_at", "block_contents": "Timestamp of when a record was last updated."}, "doc.pinterest_source.created_at": {"name": "created_at", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.created_at", "block_contents": "Timestamp of when a record was created."}, "doc.pinterest_source.spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.spend_in_micro_dollar", "block_contents": "The amount of spend in micro dollars that occurred on the day of the record."}, "doc.pinterest_source.clickthrough_1": {"name": "clickthrough_1", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.clickthrough_1", "block_contents": "The number of paid pin clicks that occurred on the day of the record."}, "doc.pinterest_source.clickthrough_2": {"name": "clickthrough_2", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.clickthrough_2", "block_contents": "The number of earned outbound clicks that occurred on the day of the record."}, "doc.pinterest_source.impression_1": {"name": "impression_1", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.impression_1", "block_contents": "The number of paid pin impressions that occurred on the day of the record."}, "doc.pinterest_source.impression_2": {"name": "impression_2", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.impression_2", "block_contents": "The number of earned pin impressions that occurred on the day of the record."}}, "exposures": {}, "metrics": {}, "selectors": {}, "disabled": {}, "parent_map": {"seed.pinterest_integration_tests.ad_group_report_data": [], "seed.pinterest_integration_tests.keyword_report_data": [], "seed.pinterest_integration_tests.pin_promotion_history_data": [], "seed.pinterest_integration_tests.advertiser_history_data": [], "seed.pinterest_integration_tests.advertiser_report_data": [], "seed.pinterest_integration_tests.ad_group_history_data": [], "seed.pinterest_integration_tests.campaign_history_data": [], "seed.pinterest_integration_tests.campaign_report_data": [], "seed.pinterest_integration_tests.keyword_history_data": [], "seed.pinterest_integration_tests.pin_promotion_report_data": [], "model.pinterest.pinterest_ads__url_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "model.pinterest.pinterest_ads__campaign_report": ["model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__campaign_report"], "model.pinterest.pinterest_ads__keyword_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__keyword_history", "model.pinterest_source.stg_pinterest_ads__keyword_report"], "model.pinterest.pinterest_ads__advertiser_report": ["model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__advertiser_report"], "model.pinterest.pinterest_ads__pin_promotion_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "model.pinterest.pinterest_ads__ad_group_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__ad_group_report", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_history": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp"], "model.pinterest_source.stg_pinterest_ads__keyword_report": ["model.pinterest_source.stg_pinterest_ads__keyword_report_tmp", "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp"], "model.pinterest_source.stg_pinterest_ads__ad_group_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp", "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp"], "model.pinterest_source.stg_pinterest_ads__campaign_history": ["model.pinterest_source.stg_pinterest_ads__campaign_history_tmp", "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp"], "model.pinterest_source.stg_pinterest_ads__advertiser_report": ["model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp", "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp"], "model.pinterest_source.stg_pinterest_ads__advertiser_history": ["model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp", "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp"], "model.pinterest_source.stg_pinterest_ads__campaign_report": ["model.pinterest_source.stg_pinterest_ads__campaign_report_tmp", "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp"], "model.pinterest_source.stg_pinterest_ads__keyword_history": ["model.pinterest_source.stg_pinterest_ads__keyword_history_tmp", "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_report": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp", "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp"], "model.pinterest_source.stg_pinterest_ads__ad_group_history": ["model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp", "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp"], "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp": ["source.pinterest_source.pinterest_ads.advertiser_history"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp": ["source.pinterest_source.pinterest_ads.pin_promotion_report"], "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp": ["source.pinterest_source.pinterest_ads.campaign_report"], "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp": ["source.pinterest_source.pinterest_ads.advertiser_report"], "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp": ["source.pinterest_source.pinterest_ads.keyword_report"], "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp": ["source.pinterest_source.pinterest_ads.ad_group_report"], "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp": ["source.pinterest_source.pinterest_ads.keyword_history"], "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp": ["source.pinterest_source.pinterest_ads.campaign_history"], "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp": ["source.pinterest_source.pinterest_ads.ad_group_history"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp": ["source.pinterest_source.pinterest_ads.pin_promotion_history"], "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e": ["model.pinterest.pinterest_ads__url_report"], "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502": ["model.pinterest.pinterest_ads__url_report"], "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a": ["model.pinterest.pinterest_ads__url_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8": ["model.pinterest.pinterest_ads__url_report"], "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7": ["model.pinterest.pinterest_ads__ad_group_report"], "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2": ["model.pinterest.pinterest_ads__ad_group_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d": ["model.pinterest.pinterest_ads__ad_group_report"], "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf": ["model.pinterest.pinterest_ads__campaign_report"], "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2": ["model.pinterest.pinterest_ads__campaign_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279": ["model.pinterest.pinterest_ads__campaign_report"], "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca": ["model.pinterest.pinterest_ads__advertiser_report"], "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672": ["model.pinterest.pinterest_ads__advertiser_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11": ["model.pinterest.pinterest_ads__advertiser_report"], "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba": ["model.pinterest.pinterest_ads__keyword_report"], "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198": ["model.pinterest.pinterest_ads__keyword_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d": ["model.pinterest.pinterest_ads__keyword_report"], "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd": ["model.pinterest.pinterest_ads__pin_promotion_report"], "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561": ["model.pinterest.pinterest_ads__pin_promotion_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3": ["model.pinterest.pinterest_ads__pin_promotion_report"], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be": ["model.pinterest_source.stg_pinterest_ads__ad_group_history"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339": ["model.pinterest_source.stg_pinterest_ads__ad_group_history"], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341": ["model.pinterest_source.stg_pinterest_ads__campaign_history"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87": ["model.pinterest_source.stg_pinterest_ads__campaign_history"], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history"], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb": ["model.pinterest_source.stg_pinterest_ads__advertiser_history"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b": ["model.pinterest_source.stg_pinterest_ads__advertiser_history"], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238": ["model.pinterest_source.stg_pinterest_ads__campaign_report"], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc": ["model.pinterest_source.stg_pinterest_ads__campaign_report"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc": ["model.pinterest_source.stg_pinterest_ads__campaign_report"], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a": ["model.pinterest_source.stg_pinterest_ads__keyword_history"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877": ["model.pinterest_source.stg_pinterest_ads__keyword_history"], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300": ["model.pinterest_source.stg_pinterest_ads__keyword_report"], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48": ["model.pinterest_source.stg_pinterest_ads__keyword_report"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6": ["model.pinterest_source.stg_pinterest_ads__keyword_report"], "source.pinterest_source.pinterest_ads.pin_promotion_report": [], "source.pinterest_source.pinterest_ads.pin_promotion_history": [], "source.pinterest_source.pinterest_ads.campaign_history": [], "source.pinterest_source.pinterest_ads.ad_group_history": [], "source.pinterest_source.pinterest_ads.ad_group_report": [], "source.pinterest_source.pinterest_ads.advertiser_history": [], "source.pinterest_source.pinterest_ads.advertiser_report": [], "source.pinterest_source.pinterest_ads.campaign_report": [], "source.pinterest_source.pinterest_ads.keyword_history": [], "source.pinterest_source.pinterest_ads.keyword_report": []}, "child_map": {"seed.pinterest_integration_tests.ad_group_report_data": [], "seed.pinterest_integration_tests.keyword_report_data": [], "seed.pinterest_integration_tests.pin_promotion_history_data": [], "seed.pinterest_integration_tests.advertiser_history_data": [], "seed.pinterest_integration_tests.advertiser_report_data": [], "seed.pinterest_integration_tests.ad_group_history_data": [], "seed.pinterest_integration_tests.campaign_history_data": [], "seed.pinterest_integration_tests.campaign_report_data": [], "seed.pinterest_integration_tests.keyword_history_data": [], "seed.pinterest_integration_tests.pin_promotion_report_data": [], "model.pinterest.pinterest_ads__url_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8", "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e", "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502", "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a"], "model.pinterest.pinterest_ads__campaign_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279", "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2", "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf"], "model.pinterest.pinterest_ads__keyword_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d", "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba", "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198"], "model.pinterest.pinterest_ads__advertiser_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11", "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672", "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca"], "model.pinterest.pinterest_ads__pin_promotion_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3", "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd", "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561"], "model.pinterest.pinterest_ads__ad_group_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d", "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2", "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_history": ["model.pinterest.pinterest_ads__pin_promotion_report", "model.pinterest.pinterest_ads__url_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9", "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34"], "model.pinterest_source.stg_pinterest_ads__keyword_report": ["model.pinterest.pinterest_ads__keyword_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6", "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300", "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48"], "model.pinterest_source.stg_pinterest_ads__ad_group_report": ["model.pinterest.pinterest_ads__ad_group_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e", "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471", "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c"], "model.pinterest_source.stg_pinterest_ads__campaign_history": ["model.pinterest.pinterest_ads__ad_group_report", "model.pinterest.pinterest_ads__campaign_report", "model.pinterest.pinterest_ads__keyword_report", "model.pinterest.pinterest_ads__pin_promotion_report", "model.pinterest.pinterest_ads__url_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87", "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341"], "model.pinterest_source.stg_pinterest_ads__advertiser_report": ["model.pinterest.pinterest_ads__advertiser_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0", "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff", "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95"], "model.pinterest_source.stg_pinterest_ads__advertiser_history": ["model.pinterest.pinterest_ads__ad_group_report", "model.pinterest.pinterest_ads__advertiser_report", "model.pinterest.pinterest_ads__campaign_report", "model.pinterest.pinterest_ads__keyword_report", "model.pinterest.pinterest_ads__pin_promotion_report", "model.pinterest.pinterest_ads__url_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b", "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb"], "model.pinterest_source.stg_pinterest_ads__campaign_report": ["model.pinterest.pinterest_ads__campaign_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc", "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc", "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238"], "model.pinterest_source.stg_pinterest_ads__keyword_history": ["model.pinterest.pinterest_ads__keyword_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877", "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_report": ["model.pinterest.pinterest_ads__pin_promotion_report", "model.pinterest.pinterest_ads__url_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024", "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1", "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab"], "model.pinterest_source.stg_pinterest_ads__ad_group_history": ["model.pinterest.pinterest_ads__ad_group_report", "model.pinterest.pinterest_ads__keyword_report", "model.pinterest.pinterest_ads__pin_promotion_report", "model.pinterest.pinterest_ads__url_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339", "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be"], "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp": ["model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report", "model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp": ["model.pinterest_source.stg_pinterest_ads__campaign_report", "model.pinterest_source.stg_pinterest_ads__campaign_report"], "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp": ["model.pinterest_source.stg_pinterest_ads__advertiser_report", "model.pinterest_source.stg_pinterest_ads__advertiser_report"], "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp": ["model.pinterest_source.stg_pinterest_ads__keyword_report", "model.pinterest_source.stg_pinterest_ads__keyword_report"], "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp": ["model.pinterest_source.stg_pinterest_ads__ad_group_report", "model.pinterest_source.stg_pinterest_ads__ad_group_report"], "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp": ["model.pinterest_source.stg_pinterest_ads__keyword_history", "model.pinterest_source.stg_pinterest_ads__keyword_history"], "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp": ["model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__campaign_history"], "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp": ["model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__ad_group_history"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history"], "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e": [], "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502": [], "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8": [], "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7": [], "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d": [], "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf": [], "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279": [], "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca": [], "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11": [], "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba": [], "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d": [], "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd": [], "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3": [], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339": [], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87": [], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9": [], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1": [], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024": [], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c": [], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e": [], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b": [], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95": [], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0": [], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238": [], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc": [], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877": [], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300": [], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6": [], "source.pinterest_source.pinterest_ads.pin_promotion_report": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp"], "source.pinterest_source.pinterest_ads.pin_promotion_history": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp"], "source.pinterest_source.pinterest_ads.campaign_history": ["model.pinterest_source.stg_pinterest_ads__campaign_history_tmp"], "source.pinterest_source.pinterest_ads.ad_group_history": ["model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp"], "source.pinterest_source.pinterest_ads.ad_group_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp"], "source.pinterest_source.pinterest_ads.advertiser_history": ["model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp"], "source.pinterest_source.pinterest_ads.advertiser_report": ["model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp"], "source.pinterest_source.pinterest_ads.campaign_report": ["model.pinterest_source.stg_pinterest_ads__campaign_report_tmp"], "source.pinterest_source.pinterest_ads.keyword_history": ["model.pinterest_source.stg_pinterest_ads__keyword_history_tmp"], "source.pinterest_source.pinterest_ads.keyword_report": ["model.pinterest_source.stg_pinterest_ads__keyword_report_tmp"]}} \ No newline at end of file +{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v8.json", "dbt_version": "1.4.5", "generated_at": "2023-07-26T14:34:37.006699Z", "invocation_id": "a8e7ad3b-45b1-4962-ba03-4f15fdffe4f8", "env": {}, "project_id": "a19ea622182c63ddc19bb22cde982b82", "user_id": "e607f749-4294-4b15-833b-0ae4a87d4d24", "send_anonymous_usage_stats": true, "adapter_type": "bigquery"}, "nodes": {"model.pinterest.pinterest_ads__url_report": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__url_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__url_report.sql", "original_file_path": "models/pinterest_ads__url_report.sql", "unique_id": "model.pinterest.pinterest_ads__url_report", "fqn": ["pinterest", "pinterest_ads__url_report"], "alias": "pinterest_ads__url_report", "checksum": {"name": "sha256", "checksum": "1ee4b8fc3fdecf9aa27336f1939c1d5f78ee9ca877f4b85e5054f077ed9f12c2"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the advertiser, campaign, ad group, and url level.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "destination_url": {"name": "destination_url", "description": "Pin destination URL.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_name": {"name": "pin_name", "description": "Pin promotion name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_status": {"name": "pin_status", "description": "The status of the Pin promotion. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "creative_type": {"name": "creative_type", "description": "The creative type. \nOne of \"APP\", \"APP_VIDEO\", \"BOARD\", \"CAROUSEL\", \"CINEMATIC\", \"COMMERCE\", \"MAX_VIDEO\", \"NATIVE_VIDEO\", \"REGULAR\", \n\"SEARCH_PROMINENCE\", \"SEARCH_PROMINENCE_CAROUSEL\", \"SHOPPING\", \"SHOP_THE_PIN\", \"THIRD_PARTY\", or \"VIDEO\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "base_url": {"name": "base_url", "description": "The base URL of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "url_host": {"name": "url_host", "description": "The URL host of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "url_path": {"name": "url_path", "description": "The URL path of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_source": {"name": "utm_source", "description": "The utm_source parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_medium": {"name": "utm_medium", "description": "The utm_medium parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_campaign": {"name": "utm_campaign", "description": "The utm_campaign parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_content": {"name": "utm_content", "description": "The utm_content parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_term": {"name": "utm_term", "description": "The utm_term parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "The name of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "The name of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1690382051.6425269, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__url_report`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith report as (\n\n select *\n from {{ var('pin_promotion_report') }}\n), \n\npins as (\n\n select *\n from {{ var('pin_promotion_history') }}\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from {{ var('ad_group_history') }}\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from {{ var('campaign_history') }}\n where is_most_recent_record = True\n),\n\nadvertisers as (\n\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n), \n\njoined as (\n\n select\n report.date_day,\n campaigns.advertiser_id,\n advertisers.advertiser_name,\n report.campaign_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n report.ad_group_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_status,\n pins.destination_url,\n pins.creative_type,\n report.pin_promotion_id,\n pins.pin_name,\n pins.pin_status,\n pins.base_url,\n pins.url_host,\n pins.url_path,\n pins.utm_source,\n pins.utm_medium,\n pins.utm_campaign,\n pins.utm_content,\n pins.utm_term,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions,\n sum(report.spend) as spend\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__pin_promotion_report_passthrough_metrics', transform = 'sum') }}\n\n from report \n left join pins \n on report.pin_promotion_id = pins.pin_promotion_id\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns \n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n\n {% if var('ad_reporting__url_report__using_null_filter', True) %}\n where pins.destination_url is not null\n {% endif %}\n\n {{ dbt_utils.group_by(22) }}\n)\n\nselect * \nfrom joined", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report"], ["stg_pinterest_ads__pin_promotion_history"], ["stg_pinterest_ads__ad_group_history"], ["stg_pinterest_ads__campaign_history"], ["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__url_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_report`\n), \n\npins as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_history`\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_history`\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_history`\n where is_most_recent_record = True\n),\n\nadvertisers as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_history`\n where is_most_recent_record = True\n), \n\njoined as (\n\n select\n report.date_day,\n campaigns.advertiser_id,\n advertisers.advertiser_name,\n report.campaign_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n report.ad_group_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_status,\n pins.destination_url,\n pins.creative_type,\n report.pin_promotion_id,\n pins.pin_name,\n pins.pin_status,\n pins.base_url,\n pins.url_host,\n pins.url_path,\n pins.utm_source,\n pins.utm_medium,\n pins.utm_campaign,\n pins.utm_content,\n pins.utm_term,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions,\n sum(report.spend) as spend\n\n \n\n\n\n\n\n from report \n left join pins \n on report.pin_promotion_id = pins.pin_promotion_id\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns \n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n\n \n where pins.destination_url is not null\n \n\n group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22\n)\n\nselect * \nfrom joined", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest.pinterest_ads__campaign_report": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__campaign_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__campaign_report.sql", "original_file_path": "models/pinterest_ads__campaign_report.sql", "unique_id": "model.pinterest.pinterest_ads__campaign_report", "fqn": ["pinterest", "pinterest_ads__campaign_report"], "alias": "pinterest_ads__campaign_report", "checksum": {"name": "sha256", "checksum": "80ef7572b29ea31a7e5866ad9a6e6bf99fc0055ef64e527a9173fa440acbdcbd"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the advertiser and campaign level.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "The name of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1690382051.655402, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__campaign_report`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith report as (\n select *\n from {{ var('campaign_report') }}\n),\n\ncampaigns as (\n\n select *\n from {{ var('campaign_history') }}\n where is_most_recent_record = True\n),\n\nadvertisers as (\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n),\n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n report.campaign_id,\n campaigns.campaign_status,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__campaign_report_passthrough_metrics', transform = 'sum') }}\n\n from report\n left join campaigns\n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n {{ dbt_utils.group_by(6) }}\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [["stg_pinterest_ads__campaign_report"], ["stg_pinterest_ads__campaign_history"], ["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_report", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__campaign_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_report`\n),\n\ncampaigns as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_history`\n where is_most_recent_record = True\n),\n\nadvertisers as (\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_history`\n where is_most_recent_record = True\n),\n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n report.campaign_id,\n campaigns.campaign_status,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n \n\n\n\n\n\n from report\n left join campaigns\n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n group by 1,2,3,4,5,6\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest.pinterest_ads__keyword_report": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__keyword_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__keyword_report.sql", "original_file_path": "models/pinterest_ads__keyword_report.sql", "unique_id": "model.pinterest.pinterest_ads__keyword_report", "fqn": ["pinterest", "pinterest_ads__keyword_report"], "alias": "pinterest_ads__keyword_report", "checksum": {"name": "sha256", "checksum": "ef11c0e760baab06e0be626de588e4973f52a33bca41761faf39f3b590a6fbab"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of a keyword at the advertiser, campaign, ad group, and keyword level.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "keyword_id": {"name": "keyword_id", "description": "Unique identifier of the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "match_type": {"name": "match_type", "description": "Type of match the keyword is tied to. Either Exact or Broad.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_type": {"name": "parent_type", "description": "Identifier of what grain the parent type is. Ad group or campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "keyword_value": {"name": "keyword_value", "description": "The text value that makes upd the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1690382051.666608, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__keyword_report`", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['ad_reporting__pinterest_ads_enabled','pinterest__using_keywords'])) }}\n\nwith report as (\n\n select *\n from {{ var('keyword_report') }}\n), \n\nadvertisers as (\n\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n),\n\ncampaigns as (\n\n select *\n from {{ var('campaign_history') }}\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from {{ var('ad_group_history') }}\n where is_most_recent_record = True\n), \n\nkeywords as (\n\n select *\n from {{ var('keyword_history') }}\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n campaigns.campaign_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_id,\n report.keyword_id,\n keywords.match_type,\n keywords.parent_type,\n keywords.keyword_value,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__keyword_report_passthrough_metrics', transform = 'sum') }}\n\n from report\n left join keywords\n on report.keyword_id = keywords.keyword_id\n left join ad_groups\n on keywords.ad_group_id = ad_groups.ad_group_id\n left join campaigns\n on ad_groups.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n {{ dbt_utils.group_by(11) }}\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [["stg_pinterest_ads__keyword_report"], ["stg_pinterest_ads__advertiser_history"], ["stg_pinterest_ads__campaign_history"], ["stg_pinterest_ads__ad_group_history"], ["stg_pinterest_ads__keyword_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_report", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__keyword_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__keyword_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_report`\n), \n\nadvertisers as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_history`\n where is_most_recent_record = True\n),\n\ncampaigns as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_history`\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_history`\n where is_most_recent_record = True\n), \n\nkeywords as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_history`\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n campaigns.campaign_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_id,\n report.keyword_id,\n keywords.match_type,\n keywords.parent_type,\n keywords.keyword_value,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n \n\n\n\n\n\n from report\n left join keywords\n on report.keyword_id = keywords.keyword_id\n left join ad_groups\n on keywords.ad_group_id = ad_groups.ad_group_id\n left join campaigns\n on ad_groups.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n group by 1,2,3,4,5,6,7,8,9,10,11\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest.pinterest_ads__advertiser_report": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__advertiser_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__advertiser_report.sql", "original_file_path": "models/pinterest_ads__advertiser_report.sql", "unique_id": "model.pinterest.pinterest_ads__advertiser_report", "fqn": ["pinterest", "pinterest_ads__advertiser_report"], "alias": "pinterest_ads__advertiser_report", "checksum": {"name": "sha256", "checksum": "a7f0719c95a11bcfb6a42a236b40a841430fe8b81711277d8d15bc69d1888781"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of an advertiser on the Pinterest Ads platform.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_code": {"name": "currency_code", "description": "The currency code which the advertiser is set up using.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "The country code where the advertiser is located.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1690382051.6595871, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__advertiser_report`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith report as (\n\n select *\n from {{ var('advertiser_report') }}\n), \n\nadvertisers as (\n\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n report.advertiser_id,\n advertisers.currency_code,\n advertisers.country,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__advertiser_report_passthrough_metrics', transform = 'sum') }}\n\n from report\n left join advertisers\n on report.advertiser_id = advertisers.advertiser_id\n {{ dbt_utils.group_by(5) }}\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_report"], ["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_report", "model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__advertiser_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_report`\n), \n\nadvertisers as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_history`\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n report.advertiser_id,\n advertisers.currency_code,\n advertisers.country,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n \n\n\n\n\n\n from report\n left join advertisers\n on report.advertiser_id = advertisers.advertiser_id\n group by 1,2,3,4,5\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest.pinterest_ads__pin_promotion_report": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__pin_promotion_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__pin_promotion_report.sql", "original_file_path": "models/pinterest_ads__pin_promotion_report.sql", "unique_id": "model.pinterest.pinterest_ads__pin_promotion_report", "fqn": ["pinterest", "pinterest_ads__pin_promotion_report"], "alias": "pinterest_ads__pin_promotion_report", "checksum": {"name": "sha256", "checksum": "2784c143da7bdc10c3f26c175533bf2a6b688624492925b0d95ebdded2a6c873"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the advertiser, campaign, ad group, and pin level.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "creative_type": {"name": "creative_type", "description": "The creative type. \nOne of \"APP\", \"APP_VIDEO\", \"BOARD\", \"CAROUSEL\", \"CINEMATIC\", \"COMMERCE\", \"MAX_VIDEO\", \"NATIVE_VIDEO\", \"REGULAR\", \n\"SEARCH_PROMINENCE\", \"SEARCH_PROMINENCE_CAROUSEL\", \"SHOPPING\", \"SHOP_THE_PIN\", \"THIRD_PARTY\", or \"VIDEO\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_name": {"name": "pin_name", "description": "Name of the pin.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_status": {"name": "pin_status", "description": "Status of the pin.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "destination_url": {"name": "destination_url", "description": "Pin destination URL.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "base_url": {"name": "base_url", "description": "The base URL of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1690382051.67677, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__pin_promotion_report`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith report as (\n\n select *\n from {{ var('pin_promotion_report') }}\n), \n\npins as (\n\n select *\n from {{ var('pin_promotion_history') }}\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from {{ var('ad_group_history') }}\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from {{ var('campaign_history') }}\n where is_most_recent_record = True\n),\n\nadvertisers as (\n\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n), \n\njoined as (\n\n select\n report.date_day,\n campaigns.advertiser_id,\n advertisers.advertiser_name,\n report.campaign_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n report.ad_group_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_status,\n pins.creative_type,\n report.pin_promotion_id,\n pins.pin_name,\n pins.pin_status,\n pins.destination_url,\n pins.base_url,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions,\n sum(report.spend) as spend\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__pin_promotion_report_passthrough_metrics', transform = 'sum') }}\n\n from report \n left join pins \n on report.pin_promotion_id = pins.pin_promotion_id\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns \n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n\n {{ dbt_utils.group_by(15) }}\n)\n\nselect * \nfrom joined", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report"], ["stg_pinterest_ads__pin_promotion_history"], ["stg_pinterest_ads__ad_group_history"], ["stg_pinterest_ads__campaign_history"], ["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__pin_promotion_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_report`\n), \n\npins as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_history`\n where is_most_recent_record = True\n), \n\nad_groups as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_history`\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_history`\n where is_most_recent_record = True\n),\n\nadvertisers as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_history`\n where is_most_recent_record = True\n), \n\njoined as (\n\n select\n report.date_day,\n campaigns.advertiser_id,\n advertisers.advertiser_name,\n report.campaign_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n report.ad_group_id,\n ad_groups.ad_group_name,\n ad_groups.ad_group_status,\n pins.creative_type,\n report.pin_promotion_id,\n pins.pin_name,\n pins.pin_status,\n pins.destination_url,\n pins.base_url,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions,\n sum(report.spend) as spend\n\n \n\n\n\n\n\n from report \n left join pins \n on report.pin_promotion_id = pins.pin_promotion_id\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns \n on report.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n\n group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15\n)\n\nselect * \nfrom joined", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest.pinterest_ads__ad_group_report": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest", "name": "pinterest_ads__ad_group_report", "resource_type": "model", "package_name": "pinterest", "path": "pinterest_ads__ad_group_report.sql", "original_file_path": "models/pinterest_ads__ad_group_report.sql", "unique_id": "model.pinterest.pinterest_ads__ad_group_report", "fqn": ["pinterest", "pinterest_ads__ad_group_report"], "alias": "pinterest_ads__ad_group_report", "checksum": {"name": "sha256", "checksum": "d1304e8b32bec7251d7873aae88ed9f0bdbd754eda4fb64133ad79c8124906f6"}, "config": {"enabled": true, "alias": null, "schema": "pinterest", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the campaign, advertiser, and ad group level.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "The name of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "The name of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Ad group creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "start_time": {"name": "start_time", "description": "Ad group start time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "end_time": {"name": "end_time", "description": "Ad group end time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest://models/pinterest.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest", "materialized": "table", "enabled": true}, "created_at": 1690382051.6504161, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__ad_group_report`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith report as (\n\n select *\n from {{ var('ad_group_report') }}\n), \n\nadvertisers as (\n\n select *\n from {{ var('advertiser_history') }}\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from {{ var('campaign_history') }}\n where is_most_recent_record = True\n),\n\nad_groups as (\n\n select *\n from {{ var('ad_group_history') }}\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n campaigns.campaign_id,\n ad_groups.ad_group_name,\n report.ad_group_id,\n ad_groups.created_at,\n ad_groups.start_time,\n ad_groups.end_time,\n ad_groups.ad_group_status,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n {{ fivetran_utils.persist_pass_through_columns(pass_through_variable='pinterest__ad_group_report_passthrough_metrics', transform = 'sum') }}\n\n from report\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns\n on ad_groups.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n {{ dbt_utils.group_by(12) }}\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_report"], ["stg_pinterest_ads__advertiser_history"], ["stg_pinterest_ads__campaign_history"], ["stg_pinterest_ads__ad_group_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.persist_pass_through_columns", "macro.dbt_utils.group_by"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_report", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__ad_group_history"]}, "compiled_path": "target/compiled/pinterest/models/pinterest_ads__ad_group_report.sql", "compiled": true, "compiled_code": "\n\nwith report as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_report`\n), \n\nadvertisers as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_history`\n where is_most_recent_record = True\n), \n\ncampaigns as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_history`\n where is_most_recent_record = True\n),\n\nad_groups as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_history`\n where is_most_recent_record = True\n), \n\nfields as (\n\n select\n report.date_day,\n advertisers.advertiser_name,\n advertisers.advertiser_id,\n campaigns.campaign_name,\n campaigns.campaign_status,\n campaigns.campaign_id,\n ad_groups.ad_group_name,\n report.ad_group_id,\n ad_groups.created_at,\n ad_groups.start_time,\n ad_groups.end_time,\n ad_groups.ad_group_status,\n sum(report.spend) as spend,\n sum(report.clicks) as clicks,\n sum(report.impressions) as impressions\n\n \n\n\n\n\n\n from report\n left join ad_groups\n on report.ad_group_id = ad_groups.ad_group_id\n left join campaigns\n on ad_groups.campaign_id = campaigns.campaign_id\n left join advertisers\n on campaigns.advertiser_id = advertisers.advertiser_id\n group by 1,2,3,4,5,6,7,8,9,10,11,12\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_history": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_history", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__pin_promotion_history.sql", "original_file_path": "models/stg_pinterest_ads__pin_promotion_history.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "fqn": ["pinterest_source", "stg_pinterest_ads__pin_promotion_history"], "alias": "stg_pinterest_ads__pin_promotion_history", "checksum": {"name": "sha256", "checksum": "e24e7b799bab5b8e676d2cd221c948f13063c4ac00fe3a6bdfe459413bb1a404"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents a version of a Pinterest Pin promotion.", "columns": {"pin_promotion_id": {"name": "pin_promotion_id", "description": "Pin promotion ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "Pin promotion ad group ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Pin creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "destination_url": {"name": "destination_url", "description": "Pin destination URL.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_name": {"name": "pin_name", "description": "Pin promotion name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_id": {"name": "pin_id", "description": "Original pin ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_status": {"name": "pin_status", "description": "The status of the Pin promotion. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "creative_type": {"name": "creative_type", "description": "The creative type. \nOne of \"APP\", \"APP_VIDEO\", \"BOARD\", \"CAROUSEL\", \"CINEMATIC\", \"COMMERCE\", \"MAX_VIDEO\", \"NATIVE_VIDEO\", \"REGULAR\", \n\"SEARCH_PROMINENCE\", \"SEARCH_PROMINENCE_CAROUSEL\", \"SHOPPING\", \"SHOP_THE_PIN\", \"THIRD_PARTY\", or \"VIDEO\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_most_recent_record": {"name": "is_most_recent_record", "description": "Boolean representing whether the record is the most recent version of the object.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "base_url": {"name": "base_url", "description": "The base URL of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "url_host": {"name": "url_host", "description": "The URL host of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "url_path": {"name": "url_path", "description": "The URL path of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_source": {"name": "utm_source", "description": "The utm_source parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_medium": {"name": "utm_medium", "description": "The utm_medium parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_campaign": {"name": "utm_campaign", "description": "The utm_campaign parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_content": {"name": "utm_content", "description": "The utm_content parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "utm_term": {"name": "utm_term", "description": "The utm_term parameter of the ad, extracted from the `destination_url`.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1690382051.804835, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_history`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_pinterest_ads__pin_promotion_history_tmp') }}\n), \n\nfields as (\n\n select\n\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__pin_promotion_history_tmp')),\n staging_columns=get_pin_promotion_history_columns()\n )\n }}\n from base\n), \n\nfinal as (\n\n select\n id as pin_promotion_id,\n ad_group_id,\n created_time as created_at,\n destination_url,\n {{ dbt.split_part('destination_url', \"'?'\", 1) }} as base_url,\n {{ dbt_utils.get_url_host('destination_url') }} as url_host,\n '/' || {{ dbt_utils.get_url_path('destination_url') }} as url_path,\n {{ dbt_utils.get_url_parameter('destination_url', 'utm_source') }} as utm_source,\n {{ dbt_utils.get_url_parameter('destination_url', 'utm_medium') }} as utm_medium,\n {{ dbt_utils.get_url_parameter('destination_url', 'utm_campaign') }} as utm_campaign,\n {{ dbt_utils.get_url_parameter('destination_url', 'utm_content') }} as utm_content,\n {{ dbt_utils.get_url_parameter('destination_url', 'utm_term') }} as utm_term,\n name as pin_name,\n pin_id,\n status as pin_status,\n creative_type,\n _fivetran_synced,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_history_tmp"], ["stg_pinterest_ads__pin_promotion_history_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_pin_promotion_history_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.split_part", "macro.dbt_utils.get_url_host", "macro.dbt_utils.get_url_path", "macro.dbt_utils.get_url_parameter"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__pin_promotion_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_history_tmp`\n), \n\nfields as (\n\n select\n\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n ad_group_id\n \n as \n \n ad_group_id\n \n, \n \n \n android_deep_link\n \n as \n \n android_deep_link\n \n, \n \n \n click_tracking_url\n \n as \n \n click_tracking_url\n \n, \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n creative_type\n \n as \n \n creative_type\n \n, \n \n \n destination_url\n \n as \n \n destination_url\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n ios_deep_link\n \n as \n \n ios_deep_link\n \n, \n \n \n is_pin_deleted\n \n as \n \n is_pin_deleted\n \n, \n \n \n is_removable\n \n as \n \n is_removable\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n pin_id\n \n as \n \n pin_id\n \n, \n \n \n review_status\n \n as \n \n review_status\n \n, \n \n \n status\n \n as \n \n status\n \n, \n \n \n updated_time\n \n as \n \n updated_time\n \n, \n \n \n view_tracking_url\n \n as \n \n view_tracking_url\n \n\n\n\n from base\n), \n\nfinal as (\n\n select\n id as pin_promotion_id,\n ad_group_id,\n created_time as created_at,\n destination_url,\n \n\n \n split(\n destination_url,\n '?'\n )[safe_offset(0)]\n \n\n as base_url,\n \n safe_cast(\n\n \n split(\n \n\n \n split(\n \n\n replace(\n \n\n replace(\n \n\n replace(\n destination_url,\n 'android-app://',\n ''\n )\n\n\n,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n '/'\n )[safe_offset(0)]\n \n\n,\n '?'\n )[safe_offset(0)]\n \n\n as STRING)\n as url_host,\n '/' || \n safe_cast(\n\n \n split(\n \n\n case when \n\n length(\n \n\n replace(\n \n\n replace(\n destination_url,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n )-coalesce(\n nullif(\n\n strpos(\n \n\n replace(\n \n\n replace(\n destination_url,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n '/'\n\n ), 0),\n \n\n strpos(\n \n\n replace(\n \n\n replace(\n destination_url,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n '?'\n\n ) - 1\n ) = 0\n then ''\n else\n substr(\n \n\n replace(\n \n\n replace(\n destination_url,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n -1 * (\n\n length(\n \n\n replace(\n \n\n replace(\n destination_url,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n )-coalesce(\n nullif(\n\n strpos(\n \n\n replace(\n \n\n replace(\n destination_url,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n '/'\n\n ), 0),\n \n\n strpos(\n \n\n replace(\n \n\n replace(\n destination_url,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n '?'\n\n ) - 1\n ))\n )\n end,\n '?'\n )[safe_offset(0)]\n \n\n as STRING)\n as url_path,\n nullif(\n\n \n split(\n \n\n \n split(\n destination_url,\n 'utm_source='\n )[safe_offset(1)]\n \n\n,\n '&'\n )[safe_offset(0)]\n \n\n,'') as utm_source,\n nullif(\n\n \n split(\n \n\n \n split(\n destination_url,\n 'utm_medium='\n )[safe_offset(1)]\n \n\n,\n '&'\n )[safe_offset(0)]\n \n\n,'') as utm_medium,\n nullif(\n\n \n split(\n \n\n \n split(\n destination_url,\n 'utm_campaign='\n )[safe_offset(1)]\n \n\n,\n '&'\n )[safe_offset(0)]\n \n\n,'') as utm_campaign,\n nullif(\n\n \n split(\n \n\n \n split(\n destination_url,\n 'utm_content='\n )[safe_offset(1)]\n \n\n,\n '&'\n )[safe_offset(0)]\n \n\n,'') as utm_content,\n nullif(\n\n \n split(\n \n\n \n split(\n destination_url,\n 'utm_term='\n )[safe_offset(1)]\n \n\n,\n '&'\n )[safe_offset(0)]\n \n\n,'') as utm_term,\n name as pin_name,\n pin_id,\n status as pin_status,\n creative_type,\n _fivetran_synced,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__keyword_report": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__keyword_report", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__keyword_report.sql", "original_file_path": "models/stg_pinterest_ads__keyword_report.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_report", "fqn": ["pinterest_source", "stg_pinterest_ads__keyword_report"], "alias": "stg_pinterest_ads__keyword_report", "checksum": {"name": "sha256", "checksum": "a4767f60aa09feaa4871ca86f7b6e4c7ca5527aa4eda6d6681ee33f84c023cff"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of Keywords by ad group, campaign, and advertiser.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "keyword_id": {"name": "keyword_id", "description": "Unique identifier of the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1690382051.83653, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_report`", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['ad_reporting__pinterest_ads_enabled','pinterest__using_keywords'])) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__keyword_report_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__keyword_report_tmp')),\n staging_columns=get_keyword_report_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select\n {{ dbt.date_trunc('day', 'date') }} as date_day,\n keyword_id,\n pin_promotion_id,\n ad_group_id,\n ad_group_name,\n ad_group_status,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n {{ fivetran_utils.fill_pass_through_columns('pinterest__keyword_report_passthrough_metrics') }}\n\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__keyword_report_tmp"], ["stg_pinterest_ads__keyword_report_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.pinterest_source.get_keyword_report_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.date_trunc", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_report_tmp", "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__keyword_report.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_report_tmp`\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n ad_group_id\n \n as \n \n ad_group_id\n \n, \n \n \n ad_group_name\n \n as \n \n ad_group_name\n \n, \n \n \n ad_group_status\n \n as \n \n ad_group_status\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n clickthrough_1\n \n as \n \n clickthrough_1\n \n, \n cast(null as INT64) as \n \n clickthrough_2\n \n , \n \n \n date\n \n as \n \n date\n \n, \n \n \n impression_1\n \n as \n \n impression_1\n \n, \n cast(null as INT64) as \n \n impression_2\n \n , \n \n \n keyword_id\n \n as \n \n keyword_id\n \n, \n \n \n pin_promotion_id\n \n as \n \n pin_promotion_id\n \n, \n \n \n spend_in_micro_dollar\n \n as \n \n spend_in_micro_dollar\n \n\n\n\n from base\n),\n\nfinal as (\n \n select\n timestamp_trunc(\n cast(date as timestamp),\n day\n ) as date_day,\n keyword_id,\n pin_promotion_id,\n ad_group_id,\n ad_group_name,\n ad_group_status,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n \n\n\n\n\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__ad_group_report": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__ad_group_report", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__ad_group_report.sql", "original_file_path": "models/stg_pinterest_ads__ad_group_report.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_report", "fqn": ["pinterest_source", "stg_pinterest_ads__ad_group_report"], "alias": "stg_pinterest_ads__ad_group_report", "checksum": {"name": "sha256", "checksum": "9617b510c122f03795bf8c8e2978d343fd8ea7a3bc11d4d687c91869e309143f"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of a Pinterest Ad Groups by campaign and advertiser.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1690382051.813524, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_report`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__ad_group_report_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__ad_group_report_tmp')),\n staging_columns=get_ad_group_report_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select \n {{ dbt.date_trunc('day', 'date') }} as date_day,\n ad_group_id,\n ad_group_name,\n ad_group_status,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n {{ fivetran_utils.fill_pass_through_columns('pinterest__ad_group_report_passthrough_metrics') }}\n\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_report_tmp"], ["stg_pinterest_ads__ad_group_report_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_ad_group_report_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.date_trunc", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp", "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__ad_group_report.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_report_tmp`\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n ad_group_id\n \n as \n \n ad_group_id\n \n, \n \n \n ad_group_name\n \n as \n \n ad_group_name\n \n, \n \n \n ad_group_status\n \n as \n \n ad_group_status\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n clickthrough_1\n \n as \n \n clickthrough_1\n \n, \n cast(null as INT64) as \n \n clickthrough_2\n \n , \n \n \n date\n \n as \n \n date\n \n, \n \n \n impression_1\n \n as \n \n impression_1\n \n, \n cast(null as INT64) as \n \n impression_2\n \n , \n \n \n spend_in_micro_dollar\n \n as \n \n spend_in_micro_dollar\n \n\n\n\n from base\n),\n\nfinal as (\n \n select \n timestamp_trunc(\n cast(date as timestamp),\n day\n ) as date_day,\n ad_group_id,\n ad_group_name,\n ad_group_status,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n \n\n\n\n\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__campaign_history": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__campaign_history", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__campaign_history.sql", "original_file_path": "models/stg_pinterest_ads__campaign_history.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_history", "fqn": ["pinterest_source", "stg_pinterest_ads__campaign_history"], "alias": "stg_pinterest_ads__campaign_history", "checksum": {"name": "sha256", "checksum": "945f535a560d134e94225647469d1cfbe295ed547b84be7af6575b9d86d4baa0"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents a version of a Pinterest Campaign.", "columns": {"campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Campaign creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Campaign name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "The status of the Campaign. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_most_recent_record": {"name": "is_most_recent_record", "description": "Boolean representing whether the record is the most recent version of the object.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1690382051.7964559, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_history`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_pinterest_ads__campaign_history_tmp') }}\n), \n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__campaign_history_tmp')),\n staging_columns=get_campaign_history_columns()\n )\n }}\n from base\n), \n\nfinal as (\n\n select \n id as campaign_id,\n name as campaign_name,\n advertiser_id,\n status as campaign_status,\n _fivetran_synced,\n created_time as created_at,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__campaign_history_tmp"], ["stg_pinterest_ads__campaign_history_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_campaign_history_columns", "macro.fivetran_utils.fill_staging_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_history_tmp", "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__campaign_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_history_tmp`\n), \n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n status\n \n as \n \n status\n \n\n\n\n from base\n), \n\nfinal as (\n\n select \n id as campaign_id,\n name as campaign_name,\n advertiser_id,\n status as campaign_status,\n _fivetran_synced,\n created_time as created_at,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__advertiser_report": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__advertiser_report", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__advertiser_report.sql", "original_file_path": "models/stg_pinterest_ads__advertiser_report.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_report", "fqn": ["pinterest_source", "stg_pinterest_ads__advertiser_report"], "alias": "stg_pinterest_ads__advertiser_report", "checksum": {"name": "sha256", "checksum": "870b2eac0c7dc5686b5b7cc39c6d07f31f8d6f9d6cbc84ae0ee4cf6c2f5b20b8"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of an Advertiser.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1690382051.8221078, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_report`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__advertiser_report_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__advertiser_report_tmp')),\n staging_columns=get_advertiser_report_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select \n {{ dbt.date_trunc('day', 'date') }} as date_day,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n {{ fivetran_utils.fill_pass_through_columns('pinterest__advertiser_report_passthrough_metrics') }}\n\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_report_tmp"], ["stg_pinterest_ads__advertiser_report_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_advertiser_report_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.date_trunc", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp", "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__advertiser_report.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_report_tmp`\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n clickthrough_1\n \n as \n \n clickthrough_1\n \n, \n cast(null as INT64) as \n \n clickthrough_2\n \n , \n \n \n date\n \n as \n \n date\n \n, \n \n \n impression_1\n \n as \n \n impression_1\n \n, \n cast(null as INT64) as \n \n impression_2\n \n , \n \n \n spend_in_micro_dollar\n \n as \n \n spend_in_micro_dollar\n \n\n\n\n from base\n),\n\nfinal as (\n \n select \n timestamp_trunc(\n cast(date as timestamp),\n day\n ) as date_day,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n \n\n\n\n\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__advertiser_history": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__advertiser_history", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__advertiser_history.sql", "original_file_path": "models/stg_pinterest_ads__advertiser_history.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_history", "fqn": ["pinterest_source", "stg_pinterest_ads__advertiser_history"], "alias": "stg_pinterest_ads__advertiser_history", "checksum": {"name": "sha256", "checksum": "c373922dcac412d7b7290ec100cdf341ca19176968c29f240be32e7acd0ca7d9"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents a version of an advertiser.", "columns": {"advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_name": {"name": "advertiser_name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_status": {"name": "advertiser_status", "description": "Status of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_profile_status": {"name": "billing_profile_status", "description": "Status of the billing profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_type": {"name": "billing_type", "description": "The billing type of the advertiser. Will typically be CREDIT_CARD or INVOICE.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "The country code where the advertiser is located.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when a record was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_code": {"name": "currency_code", "description": "The currency code which the advertiser is set up using.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "merchant_id": {"name": "merchant_id", "description": "Unique ID of the merchant associated with the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "owner_user_id": {"name": "owner_user_id", "description": "Unique identifier of the owner user.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when a record was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_most_recent_record": {"name": "is_most_recent_record", "description": "Boolean representing whether the record is the most recent version of the object.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1690382051.819298, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_history`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__advertiser_history_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__advertiser_history_tmp')),\n staging_columns=get_advertiser_history_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select \n id as advertiser_id,\n name as advertiser_name,\n status as advertiser_status,\n billing_profile_status,\n billing_type,\n country,\n created_time as created_at,\n currency as currency_code,\n merchant_id,\n owner_user_id,\n updated_time as updated_at,\n row_number() over (partition by id order by updated_time desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_history_tmp"], ["stg_pinterest_ads__advertiser_history_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_advertiser_history_columns", "macro.fivetran_utils.fill_staging_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp", "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__advertiser_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_history_tmp`\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n billing_profile_status\n \n as \n \n billing_profile_status\n \n, \n \n \n billing_type\n \n as \n \n billing_type\n \n, \n \n \n country\n \n as \n \n country\n \n, \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n merchant_id\n \n as \n \n merchant_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n owner_user_id\n \n as \n \n owner_user_id\n \n, \n \n \n status\n \n as \n \n status\n \n, \n \n \n updated_time\n \n as \n \n updated_time\n \n\n\n\n from base\n),\n\nfinal as (\n \n select \n id as advertiser_id,\n name as advertiser_name,\n status as advertiser_status,\n billing_profile_status,\n billing_type,\n country,\n created_time as created_at,\n currency as currency_code,\n merchant_id,\n owner_user_id,\n updated_time as updated_at,\n row_number() over (partition by id order by updated_time desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__campaign_report": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__campaign_report", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__campaign_report.sql", "original_file_path": "models/stg_pinterest_ads__campaign_report.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_report", "fqn": ["pinterest_source", "stg_pinterest_ads__campaign_report"], "alias": "stg_pinterest_ads__campaign_report", "checksum": {"name": "sha256", "checksum": "d329a85922efac69ec814a21b6650f97f0c4658550fb9d345d38c7ba5bfa69bc"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of Campaigns by advertiser.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1690382051.826241, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_report`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__campaign_report_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__campaign_report_tmp')),\n staging_columns=get_campaign_report_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select \n {{ dbt.date_trunc('day', 'date') }} as date_day,\n campaign_id,\n campaign_name,\n campaign_status,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n {{ fivetran_utils.fill_pass_through_columns('pinterest__campaign_report_passthrough_metrics') }}\n\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__campaign_report_tmp"], ["stg_pinterest_ads__campaign_report_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_campaign_report_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.date_trunc", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_report_tmp", "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__campaign_report.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_report_tmp`\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n campaign_name\n \n as \n \n campaign_name\n \n, \n \n \n campaign_status\n \n as \n \n campaign_status\n \n, \n \n \n clickthrough_1\n \n as \n \n clickthrough_1\n \n, \n cast(null as INT64) as \n \n clickthrough_2\n \n , \n \n \n date\n \n as \n \n date\n \n, \n \n \n impression_1\n \n as \n \n impression_1\n \n, \n cast(null as INT64) as \n \n impression_2\n \n , \n \n \n spend_in_micro_dollar\n \n as \n \n spend_in_micro_dollar\n \n\n\n\n from base\n),\n\nfinal as (\n \n select \n timestamp_trunc(\n cast(date as timestamp),\n day\n ) as date_day,\n campaign_id,\n campaign_name,\n campaign_status,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n \n\n\n\n\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__keyword_history": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__keyword_history", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__keyword_history.sql", "original_file_path": "models/stg_pinterest_ads__keyword_history.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_history", "fqn": ["pinterest_source", "stg_pinterest_ads__keyword_history"], "alias": "stg_pinterest_ads__keyword_history", "checksum": {"name": "sha256", "checksum": "5fa0b876a19dec2d8b7c78a1fcd57679481f6ce68fb00781c57fe4b147ef511e"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of a Keyword.", "columns": {"keyword_id": {"name": "keyword_id", "description": "Unique identifier of the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "keyword_value": {"name": "keyword_value", "description": "The text value that makes upd the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_id": {"name": "_fivetran_id", "description": "The unique identifier of the record within the Fivetran synced table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "archived": {"name": "archived", "description": "Boolean indicating if the keyword is archived.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "bid": {"name": "bid", "description": "Bid amount set for the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "match_type": {"name": "match_type", "description": "Type of match the keyword is tied to. Either Exact or Broad.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_type": {"name": "parent_type", "description": "Identifier of what grain the parent type is. Ad group or campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_most_recent_record": {"name": "is_most_recent_record", "description": "Boolean representing whether the record is the most recent version of the object.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1690382051.831427, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_history`", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['ad_reporting__pinterest_ads_enabled','pinterest__using_keywords'])) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_pinterest_ads__keyword_history_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__keyword_history_tmp')),\n staging_columns=get_keyword_history_columns()\n )\n }}\n from base\n),\n\nfinal as (\n \n select\n id as keyword_id,\n value as keyword_value,\n _fivetran_id,\n _fivetran_synced,\n ad_group_id,\n advertiser_id,\n archived,\n bid,\n campaign_id,\n match_type,\n parent_type,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__keyword_history_tmp"], ["stg_pinterest_ads__keyword_history_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.pinterest_source.get_keyword_history_columns", "macro.fivetran_utils.fill_staging_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_history_tmp", "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__keyword_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_history_tmp`\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_id\n \n as \n \n _fivetran_id\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n ad_group_id\n \n as \n \n ad_group_id\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n archived\n \n as \n \n archived\n \n, \n \n \n bid\n \n as \n \n bid\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n match_type\n \n as \n \n match_type\n \n, \n \n \n parent_type\n \n as \n \n parent_type\n \n, \n \n \n value\n \n as \n \n value\n \n\n\n\n from base\n),\n\nfinal as (\n \n select\n id as keyword_id,\n value as keyword_value,\n _fivetran_id,\n _fivetran_synced,\n ad_group_id,\n advertiser_id,\n archived,\n bid,\n campaign_id,\n match_type,\n parent_type,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_report": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_report", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__pin_promotion_report.sql", "original_file_path": "models/stg_pinterest_ads__pin_promotion_report.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_report", "fqn": ["pinterest_source", "stg_pinterest_ads__pin_promotion_report"], "alias": "stg_pinterest_ads__pin_promotion_report", "checksum": {"name": "sha256", "checksum": "8399848dccc00c25a8bc40f817330fe92ac295b3afdb9742d663200a25a0fdc0"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents the daily performance of a Pinterest Pin promotion by ad group, campaign, and advertiser.", "columns": {"date_day": {"name": "date_day", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "The number of paid and earned impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The number of paid and earned clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend": {"name": "spend", "description": "The amount of spend that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1690382051.808917, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_report`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_pinterest_ads__pin_promotion_report_tmp') }}\n), \n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__pin_promotion_report_tmp')),\n staging_columns=get_pin_promotion_report_columns()\n )\n }}\n from base\n), \n\nfinal as (\n\n select \n {{ dbt.date_trunc('day', 'date') }} as date_day,\n pin_promotion_id,\n ad_group_id,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n {{ fivetran_utils.fill_pass_through_columns('pinterest__pin_promotion_report_passthrough_metrics') }}\n\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report_tmp"], ["stg_pinterest_ads__pin_promotion_report_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_pin_promotion_report_columns", "macro.fivetran_utils.fill_staging_columns", "macro.dbt.date_trunc", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp", "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__pin_promotion_report.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_report_tmp`\n), \n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n ad_group_id\n \n as \n \n ad_group_id\n \n, \n \n \n advertiser_id\n \n as \n \n advertiser_id\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n clickthrough_1\n \n as \n \n clickthrough_1\n \n, \n cast(null as numeric) as \n \n clickthrough_2\n \n , \n \n \n date\n \n as \n \n date\n \n, \n \n \n impression_1\n \n as \n \n impression_1\n \n, \n cast(null as numeric) as \n \n impression_2\n \n , \n \n \n pin_promotion_id\n \n as \n \n pin_promotion_id\n \n, \n \n \n spend_in_micro_dollar\n \n as \n \n spend_in_micro_dollar\n \n\n\n\n from base\n), \n\nfinal as (\n\n select \n timestamp_trunc(\n cast(date as timestamp),\n day\n ) as date_day,\n pin_promotion_id,\n ad_group_id,\n campaign_id,\n advertiser_id,\n coalesce(impression_1,0) + coalesce(impression_2,0) as impressions,\n coalesce(clickthrough_1,0) + coalesce(clickthrough_2,0) as clicks,\n spend_in_micro_dollar / 1000000.0 as spend\n\n \n\n\n\n\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__ad_group_history": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__ad_group_history", "resource_type": "model", "package_name": "pinterest_source", "path": "stg_pinterest_ads__ad_group_history.sql", "original_file_path": "models/stg_pinterest_ads__ad_group_history.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_history", "fqn": ["pinterest_source", "stg_pinterest_ads__ad_group_history"], "alias": "stg_pinterest_ads__ad_group_history", "checksum": {"name": "sha256", "checksum": "3fc611eb025a550beebacb144b8fd5b95070cc7d212cdc73029b5e2132272902"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "Each record represents a version of a Pinterest Ad Group.", "columns": {"ad_group_id": {"name": "ad_group_id", "description": "Ad group ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Parent Campaign ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Ad group creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Ad group name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "The status of the Ad group. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "start_time": {"name": "start_time", "description": "Ad group start time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "end_time": {"name": "end_time", "description": "Ad group end time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_most_recent_record": {"name": "is_most_recent_record", "description": "Boolean representing whether the record is the most recent version of the object.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "pinterest_source://models/stg_pinterest_ads.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "table", "enabled": true}, "created_at": 1690382051.792585, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_history`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_pinterest_ads__ad_group_history_tmp') }}\n), \n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_pinterest_ads__ad_group_history_tmp')),\n staging_columns=get_ad_group_history_columns()\n )\n }}\n from base\n), \n\nfinal as (\n\n select \n id as ad_group_id,\n name as ad_group_name,\n status as ad_group_status,\n _fivetran_synced,\n campaign_id,\n created_time as created_at,\n end_time,\n start_time,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_history_tmp"], ["stg_pinterest_ads__ad_group_history_tmp"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.pinterest_source.get_ad_group_history_columns", "macro.fivetran_utils.fill_staging_columns"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp", "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads__ad_group_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_history_tmp`\n), \n\nfields as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n end_time\n \n as \n \n end_time\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n start_time\n \n as \n \n start_time\n \n, \n \n \n status\n \n as \n \n status\n \n\n\n\n from base\n), \n\nfinal as (\n\n select \n id as ad_group_id,\n name as ad_group_name,\n status as ad_group_status,\n _fivetran_synced,\n campaign_id,\n created_time as created_at,\n end_time,\n start_time,\n row_number() over (partition by id order by _fivetran_synced desc) = 1 as is_most_recent_record\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__advertiser_history_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__advertiser_history_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__advertiser_history_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__advertiser_history_tmp"], "alias": "stg_pinterest_ads__advertiser_history_tmp", "checksum": {"name": "sha256", "checksum": "30228e737c74f3502de539edf195e6ac0f1bc20d81b4625f2a7d38b7b444e025"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1690382051.527647, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_history_tmp`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect * \nfrom {{ var('advertiser_history') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "advertiser_history"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.advertiser_history"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__advertiser_history_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom `dbt-package-testing`.`pinterest_ads_joe`.`advertiser_history`", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_report_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__pin_promotion_report_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__pin_promotion_report_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__pin_promotion_report_tmp"], "alias": "stg_pinterest_ads__pin_promotion_report_tmp", "checksum": {"name": "sha256", "checksum": "055e6b22a0ebf3ae5ebc592a2d59fde23e9c4aa97307e7bc9d07fdd564d29318"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1690382051.538066, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_report_tmp`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect *\nfrom {{ var('pin_promotion_report') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "pin_promotion_report"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__pin_promotion_report_tmp.sql", "compiled": true, "compiled_code": "\n\nselect *\nfrom `dbt-package-testing`.`pinterest_ads_joe`.`pin_promotion_report`", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__campaign_report_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__campaign_report_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__campaign_report_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__campaign_report_tmp"], "alias": "stg_pinterest_ads__campaign_report_tmp", "checksum": {"name": "sha256", "checksum": "297b62832ce1e1cf4ec432c98f64696ae82b6d5461ba9a6991f9143d8680600e"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1690382051.545534, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_report_tmp`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect * \nfrom {{ var('campaign_report') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "campaign_report"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.campaign_report"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__campaign_report_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom `dbt-package-testing`.`pinterest_ads_joe`.`campaign_report`", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__advertiser_report_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__advertiser_report_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__advertiser_report_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__advertiser_report_tmp"], "alias": "stg_pinterest_ads__advertiser_report_tmp", "checksum": {"name": "sha256", "checksum": "51f6279568da2b328c230e1141b82a8d4cf23f0db1d71797da244ba0f850f80c"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1690382051.553626, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_report_tmp`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect * \nfrom {{ var('advertiser_report') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "advertiser_report"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.advertiser_report"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__advertiser_report_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom `dbt-package-testing`.`pinterest_ads_joe`.`advertiser_report`", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__keyword_report_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__keyword_report_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__keyword_report_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__keyword_report_tmp"], "alias": "stg_pinterest_ads__keyword_report_tmp", "checksum": {"name": "sha256", "checksum": "a603d5856a7cc1507026d2353343160d142d4f3e5f3aad65b9913481fb376e62"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1690382051.561972, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_report_tmp`", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['ad_reporting__pinterest_ads_enabled','pinterest__using_keywords'])) }}\n\nselect * \nfrom {{ var('keyword_report') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "keyword_report"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["source.pinterest_source.pinterest_ads.keyword_report"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__keyword_report_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom `dbt-package-testing`.`pinterest_ads_joe`.`keyword_report`", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__ad_group_report_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__ad_group_report_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__ad_group_report_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__ad_group_report_tmp"], "alias": "stg_pinterest_ads__ad_group_report_tmp", "checksum": {"name": "sha256", "checksum": "416b2ba76c7422ae9d0cc9027cfda76b1461ead0158a8cc3d7bcec5765fa7fa4"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1690382051.570184, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_report_tmp`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect * \nfrom {{ var('ad_group_report') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "ad_group_report"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.ad_group_report"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__ad_group_report_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom `dbt-package-testing`.`pinterest_ads_joe`.`ad_group_report`", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__keyword_history_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__keyword_history_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__keyword_history_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__keyword_history_tmp"], "alias": "stg_pinterest_ads__keyword_history_tmp", "checksum": {"name": "sha256", "checksum": "86ecdeb7b346c99cdef8a6c1ba967e38021c0c2197dcf1e414fa783a7ae39637"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1690382051.5780962, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_history_tmp`", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['ad_reporting__pinterest_ads_enabled','pinterest__using_keywords'])) }}\n\nselect * \nfrom {{ var('keyword_history') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "keyword_history"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["source.pinterest_source.pinterest_ads.keyword_history"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__keyword_history_tmp.sql", "compiled": true, "compiled_code": "\n\nselect * \nfrom `dbt-package-testing`.`pinterest_ads_joe`.`keyword_history`", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__campaign_history_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__campaign_history_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__campaign_history_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__campaign_history_tmp"], "alias": "stg_pinterest_ads__campaign_history_tmp", "checksum": {"name": "sha256", "checksum": "6b6e9567363f5912e8f6c2f8547e79e160a7e998dbfb2ac6fe193c73949b9163"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1690382051.5883331, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_history_tmp`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect *\nfrom {{ var('campaign_history') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "campaign_history"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.campaign_history"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__campaign_history_tmp.sql", "compiled": true, "compiled_code": "\n\nselect *\nfrom `dbt-package-testing`.`pinterest_ads_joe`.`campaign_history`", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__ad_group_history_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__ad_group_history_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__ad_group_history_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__ad_group_history_tmp"], "alias": "stg_pinterest_ads__ad_group_history_tmp", "checksum": {"name": "sha256", "checksum": "781c3dac60c7fc9e9f08f8ad4fce2e5fec42b09036486e24814e717cec4b4ce3"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1690382051.596739, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_history_tmp`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect *\nfrom {{ var('ad_group_history') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "ad_group_history"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.ad_group_history"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__ad_group_history_tmp.sql", "compiled": true, "compiled_code": "\n\nselect *\nfrom `dbt-package-testing`.`pinterest_ads_joe`.`ad_group_history`", "extra_ctes_injected": true, "extra_ctes": []}, "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp": {"database": "dbt-package-testing", "schema": "zz_dbt_renee_pinterest_source", "name": "stg_pinterest_ads__pin_promotion_history_tmp", "resource_type": "model", "package_name": "pinterest_source", "path": "tmp/stg_pinterest_ads__pin_promotion_history_tmp.sql", "original_file_path": "models/tmp/stg_pinterest_ads__pin_promotion_history_tmp.sql", "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp", "fqn": ["pinterest_source", "tmp", "stg_pinterest_ads__pin_promotion_history_tmp"], "alias": "stg_pinterest_ads__pin_promotion_history_tmp", "checksum": {"name": "sha256", "checksum": "268ac897534336c397f3c313861c98d0a47f3022d3fc2aefcc201fb3d1db81b9"}, "config": {"enabled": true, "alias": null, "schema": "pinterest_source", "database": null, "tags": [], "meta": {}, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "post-hook": [], "pre-hook": []}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "pinterest_source", "materialized": "view", "enabled": true}, "created_at": 1690382051.6049018, "relation_name": "`dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_history_tmp`", "raw_code": "{{ config(enabled=var('ad_reporting__pinterest_ads_enabled', True)) }}\n\nselect *\nfrom {{ var('pin_promotion_history') }}", "language": "sql", "refs": [], "sources": [["pinterest_ads", "pin_promotion_history"]], "metrics": [], "depends_on": {"macros": [], "nodes": ["source.pinterest_source.pinterest_ads.pin_promotion_history"]}, "compiled_path": "target/compiled/pinterest_source/models/tmp/stg_pinterest_ads__pin_promotion_history_tmp.sql", "compiled": true, "compiled_code": "\n\nselect *\nfrom `dbt-package-testing`.`pinterest_ads_joe`.`pin_promotion_history`", "extra_ctes_injected": true, "extra_ctes": []}, "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__url_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__url_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__url_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e", "fqn": ["pinterest", "not_null_pinterest_ads__url_report_date_day"], "alias": "not_null_pinterest_ads__url_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.6873002, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__url_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__url_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__url_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__url_report`\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__url_report"}, "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "destination_url", "model": "{{ get_where_subquery(ref('pinterest_ads__url_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__url_report_destination_url", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__url_report_destination_url.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502", "fqn": ["pinterest", "not_null_pinterest_ads__url_report_destination_url"], "alias": "not_null_pinterest_ads__url_report_destination_url", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"enabled": true}, "created_at": 1690382051.6908329, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(enabled=True) }}", "language": "sql", "refs": [["pinterest_ads__url_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__url_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__url_report_destination_url.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect destination_url\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__url_report`\nwhere destination_url is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "destination_url", "file_key_name": "models.pinterest_ads__url_report"}, "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "pin_promotion_id", "model": "{{ get_where_subquery(ref('pinterest_ads__url_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__url_report_pin_promotion_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__url_report_pin_promotion_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a", "fqn": ["pinterest", "not_null_pinterest_ads__url_report_pin_promotion_id"], "alias": "not_null_pinterest_ads__url_report_pin_promotion_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.693315, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__url_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__url_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__url_report_pin_promotion_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect pin_promotion_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__url_report`\nwhere pin_promotion_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "pin_promotion_id", "file_key_name": "models.pinterest_ads__url_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["pin_promotion_id", "ad_group_id", "campaign_id", "advertiser_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__url_report')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day"], "alias": "dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4"}, "created_at": 1690382051.696852, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(enabled=True,alias=\"dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4\") }}", "language": "sql", "refs": [["pinterest_ads__url_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__url_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_21473120856be0adc6b82e83f018c3a4.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n pin_promotion_id, ad_group_id, campaign_id, advertiser_id, date_day\n from `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__url_report`\n group by pin_promotion_id, ad_group_id, campaign_id, advertiser_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__url_report"}, "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__ad_group_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__ad_group_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__ad_group_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7", "fqn": ["pinterest", "not_null_pinterest_ads__ad_group_report_date_day"], "alias": "not_null_pinterest_ads__ad_group_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.716361, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__ad_group_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__ad_group_report`\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__ad_group_report"}, "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "ad_group_id", "model": "{{ get_where_subquery(ref('pinterest_ads__ad_group_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__ad_group_report_ad_group_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__ad_group_report_ad_group_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2", "fqn": ["pinterest", "not_null_pinterest_ads__ad_group_report_ad_group_id"], "alias": "not_null_pinterest_ads__ad_group_report_ad_group_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.7187898, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__ad_group_report_ad_group_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect ad_group_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__ad_group_report`\nwhere ad_group_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "ad_group_id", "file_key_name": "models.pinterest_ads__ad_group_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["ad_group_id", "advertiser_id", "campaign_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__ad_group_report')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day"], "alias": "dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506"}, "created_at": 1690382051.721215, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506\") }}", "language": "sql", "refs": [["pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_54d3e3ee8528adecb1b6bc6aef476506.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n ad_group_id, advertiser_id, campaign_id, date_day\n from `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__ad_group_report`\n group by ad_group_id, advertiser_id, campaign_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__ad_group_report"}, "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__campaign_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__campaign_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__campaign_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf", "fqn": ["pinterest", "not_null_pinterest_ads__campaign_report_date_day"], "alias": "not_null_pinterest_ads__campaign_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.72869, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__campaign_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__campaign_report`\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__campaign_report"}, "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('pinterest_ads__campaign_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__campaign_report_campaign_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__campaign_report_campaign_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2", "fqn": ["pinterest", "not_null_pinterest_ads__campaign_report_campaign_id"], "alias": "not_null_pinterest_ads__campaign_report_campaign_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.731473, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__campaign_report_campaign_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__campaign_report`\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "campaign_id", "file_key_name": "models.pinterest_ads__campaign_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_id", "advertiser_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__campaign_report')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day"], "alias": "dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334"}, "created_at": 1690382051.734272, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334\") }}", "language": "sql", "refs": [["pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_87addc13a4108165c61e6604961b7334.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_id, advertiser_id, date_day\n from `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__campaign_report`\n group by campaign_id, advertiser_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__campaign_report"}, "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__advertiser_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__advertiser_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__advertiser_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca", "fqn": ["pinterest", "not_null_pinterest_ads__advertiser_report_date_day"], "alias": "not_null_pinterest_ads__advertiser_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.7429938, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__advertiser_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__advertiser_report`\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__advertiser_report"}, "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "advertiser_id", "model": "{{ get_where_subquery(ref('pinterest_ads__advertiser_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__advertiser_report_advertiser_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__advertiser_report_advertiser_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672", "fqn": ["pinterest", "not_null_pinterest_ads__advertiser_report_advertiser_id"], "alias": "not_null_pinterest_ads__advertiser_report_advertiser_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.745395, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__advertiser_report_advertiser_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect advertiser_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__advertiser_report`\nwhere advertiser_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "advertiser_id", "file_key_name": "models.pinterest_ads__advertiser_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["advertiser_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__advertiser_report')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day"], "alias": "dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f"}, "created_at": 1690382051.7478888, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f\") }}", "language": "sql", "refs": [["pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_262423074d5ab98a7cfbb922eecfa81f.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n advertiser_id, date_day\n from `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__advertiser_report`\n group by advertiser_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__advertiser_report"}, "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__keyword_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__keyword_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__keyword_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba", "fqn": ["pinterest", "not_null_pinterest_ads__keyword_report_date_day"], "alias": "not_null_pinterest_ads__keyword_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.754376, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__keyword_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__keyword_report`\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__keyword_report"}, "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "keyword_id", "model": "{{ get_where_subquery(ref('pinterest_ads__keyword_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__keyword_report_keyword_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__keyword_report_keyword_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198", "fqn": ["pinterest", "not_null_pinterest_ads__keyword_report_keyword_id"], "alias": "not_null_pinterest_ads__keyword_report_keyword_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.7567701, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__keyword_report_keyword_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect keyword_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__keyword_report`\nwhere keyword_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "keyword_id", "file_key_name": "models.pinterest_ads__keyword_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["keyword_id", "ad_group_id", "campaign_id", "advertiser_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__keyword_report')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day"], "alias": "dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f"}, "created_at": 1690382051.759239, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f\") }}", "language": "sql", "refs": [["pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_5ffb6b9c10d3e5615e425ea53e66643f.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n keyword_id, ad_group_id, campaign_id, advertiser_id, date_day\n from `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__keyword_report`\n group by keyword_id, ad_group_id, campaign_id, advertiser_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__keyword_report"}, "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('pinterest_ads__pin_promotion_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__pin_promotion_report_date_day", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__pin_promotion_report_date_day.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd", "fqn": ["pinterest", "not_null_pinterest_ads__pin_promotion_report_date_day"], "alias": "not_null_pinterest_ads__pin_promotion_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.767555, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__pin_promotion_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__pin_promotion_report`\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.pinterest_ads__pin_promotion_report"}, "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "pin_promotion_id", "model": "{{ get_where_subquery(ref('pinterest_ads__pin_promotion_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_pinterest_ads__pin_promotion_report_pin_promotion_id", "resource_type": "test", "package_name": "pinterest", "path": "not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561", "fqn": ["pinterest", "not_null_pinterest_ads__pin_promotion_report_pin_promotion_id"], "alias": "not_null_pinterest_ads__pin_promotion_report_pin_promotion_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.771073, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect pin_promotion_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__pin_promotion_report`\nwhere pin_promotion_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "pin_promotion_id", "file_key_name": "models.pinterest_ads__pin_promotion_report"}, "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["pin_promotion_id", "ad_group_id", "campaign_id", "advertiser_id", "date_day"], "model": "{{ get_where_subquery(ref('pinterest_ads__pin_promotion_report')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day", "resource_type": "test", "package_name": "pinterest", "path": "dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c.sql", "original_file_path": "models/pinterest.yml", "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3", "fqn": ["pinterest", "dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day"], "alias": "dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c"}, "created_at": 1690382051.774095, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c\") }}", "language": "sql", "refs": [["pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest.pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest/models/pinterest.yml/dbt_utils_unique_combination_o_2f4efa18af7508110970522dca80a52c.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n pin_promotion_id, ad_group_id, campaign_id, advertiser_id, date_day\n from `dbt-package-testing`.`zz_dbt_renee_pinterest`.`pinterest_ads__pin_promotion_report`\n group by pin_promotion_id, ad_group_id, campaign_id, advertiser_id, date_day\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.pinterest_ads__pin_promotion_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "ad_group_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__ad_group_history')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__ad_group_history_ad_group_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__ad_group_history_ad_group_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__ad_group_history_ad_group_id"], "alias": "not_null_stg_pinterest_ads__ad_group_history_ad_group_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.837589, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__ad_group_history_ad_group_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect ad_group_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_history`\nwhere ad_group_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "ad_group_id", "file_key_name": "models.stg_pinterest_ads__ad_group_history"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["ad_group_id", "_fivetran_synced"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__ad_group_history')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced"], "alias": "dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7"}, "created_at": 1690382051.840066, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7\") }}", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_14ec492421aa290adbd40aba9f38efa7.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n ad_group_id, _fivetran_synced\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_history`\n group by ad_group_id, _fivetran_synced\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__ad_group_history"}, "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__campaign_history')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__campaign_history_campaign_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__campaign_history_campaign_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__campaign_history_campaign_id"], "alias": "not_null_stg_pinterest_ads__campaign_history_campaign_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.846278, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__campaign_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__campaign_history_campaign_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_history`\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "campaign_id", "file_key_name": "models.stg_pinterest_ads__campaign_history"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_id", "_fivetran_synced"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__campaign_history')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced"], "alias": "dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b"}, "created_at": 1690382051.848723, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b\") }}", "language": "sql", "refs": [["stg_pinterest_ads__campaign_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_0f71f27ed6b0ce2d4940b4361559871b.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_id, _fivetran_synced\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_history`\n group by campaign_id, _fivetran_synced\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__campaign_history"}, "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "pin_promotion_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__pin_promotion_history')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id"], "alias": "not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f"}, "created_at": 1690382051.8547578, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(alias=\"not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f\") }}", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__pi_5cf03dfc3d2615f9d68ae62d55aa2b8f.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect pin_promotion_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_history`\nwhere pin_promotion_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "pin_promotion_id", "file_key_name": "models.stg_pinterest_ads__pin_promotion_history"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["_fivetran_synced", "pin_promotion_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__pin_promotion_history')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id"], "alias": "dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175"}, "created_at": 1690382051.8568408, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175\") }}", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_e0501de9c3316348957b42725bcba175.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n _fivetran_synced, pin_promotion_id\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_history`\n group by _fivetran_synced, pin_promotion_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__pin_promotion_history"}, "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__pin_promotion_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__pin_promotion_report_date_day", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__pin_promotion_report_date_day.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__pin_promotion_report_date_day"], "alias": "not_null_stg_pinterest_ads__pin_promotion_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.861965, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__pin_promotion_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_report`\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.stg_pinterest_ads__pin_promotion_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "pin_promotion_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__pin_promotion_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id"], "alias": "not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b"}, "created_at": 1690382051.864629, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(alias=\"not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b\") }}", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__pi_d0985f4b7b2bc6d5ec7f384cc03d6f4b.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect pin_promotion_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_report`\nwhere pin_promotion_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "pin_promotion_id", "file_key_name": "models.stg_pinterest_ads__pin_promotion_report"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "pin_promotion_id", "ad_group_id", "campaign_id", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__pin_promotion_report')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id"], "alias": "dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19"}, "created_at": 1690382051.866924, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19\") }}", "language": "sql", "refs": [["stg_pinterest_ads__pin_promotion_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_b200b80456022485be650ebe0c64fc19.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, pin_promotion_id, ad_group_id, campaign_id, advertiser_id\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__pin_promotion_report`\n group by date_day, pin_promotion_id, ad_group_id, campaign_id, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__pin_promotion_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__ad_group_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__ad_group_report_date_day", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__ad_group_report_date_day.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__ad_group_report_date_day"], "alias": "not_null_stg_pinterest_ads__ad_group_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.875765, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__ad_group_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_report`\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.stg_pinterest_ads__ad_group_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "ad_group_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__ad_group_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__ad_group_report_ad_group_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__ad_group_report_ad_group_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__ad_group_report_ad_group_id"], "alias": "not_null_stg_pinterest_ads__ad_group_report_ad_group_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.878371, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__ad_group_report_ad_group_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect ad_group_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_report`\nwhere ad_group_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "ad_group_id", "file_key_name": "models.stg_pinterest_ads__ad_group_report"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "ad_group_id", "campaign_id", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__ad_group_report')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id"], "alias": "dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8"}, "created_at": 1690382051.8807611, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8\") }}", "language": "sql", "refs": [["stg_pinterest_ads__ad_group_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_e8f9cd4890106f736fbaf772885876c8.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, ad_group_id, campaign_id, advertiser_id\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__ad_group_report`\n group by date_day, ad_group_id, campaign_id, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__ad_group_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "advertiser_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__advertiser_history')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__advertiser_history_advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__advertiser_history_advertiser_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__advertiser_history_advertiser_id"], "alias": "not_null_stg_pinterest_ads__advertiser_history_advertiser_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.8878012, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__advertiser_history_advertiser_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect advertiser_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_history`\nwhere advertiser_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "advertiser_id", "file_key_name": "models.stg_pinterest_ads__advertiser_history"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["updated_at", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__advertiser_history')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id"], "alias": "dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733"}, "created_at": 1690382051.8898938, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733\") }}", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_ac571a135eb9bbe6db1401c33b830733.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n updated_at, advertiser_id\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_history`\n group by updated_at, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__advertiser_history"}, "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__advertiser_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__advertiser_report_date_day", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__advertiser_report_date_day.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__advertiser_report_date_day"], "alias": "not_null_stg_pinterest_ads__advertiser_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.895067, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__advertiser_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_report`\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.stg_pinterest_ads__advertiser_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "advertiser_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__advertiser_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__advertiser_report_advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__advertiser_report_advertiser_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__advertiser_report_advertiser_id"], "alias": "not_null_stg_pinterest_ads__advertiser_report_advertiser_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.897085, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__advertiser_report_advertiser_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect advertiser_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_report`\nwhere advertiser_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "advertiser_id", "file_key_name": "models.stg_pinterest_ads__advertiser_report"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__advertiser_report')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id"], "alias": "dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de"}, "created_at": 1690382051.8992488, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de\") }}", "language": "sql", "refs": [["stg_pinterest_ads__advertiser_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_7440d10d36ca9b555b1bb533d442c6de.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, advertiser_id\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__advertiser_report`\n group by date_day, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__advertiser_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__campaign_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__campaign_report_date_day", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__campaign_report_date_day.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__campaign_report_date_day"], "alias": "not_null_stg_pinterest_ads__campaign_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.9057689, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__campaign_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_report`\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.stg_pinterest_ads__campaign_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__campaign_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__campaign_report_campaign_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__campaign_report_campaign_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__campaign_report_campaign_id"], "alias": "not_null_stg_pinterest_ads__campaign_report_campaign_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.908142, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__campaign_report_campaign_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_report`\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "campaign_id", "file_key_name": "models.stg_pinterest_ads__campaign_report"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "campaign_id", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__campaign_report')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id"], "alias": "dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf"}, "created_at": 1690382051.9104152, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf\") }}", "language": "sql", "refs": [["stg_pinterest_ads__campaign_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__campaign_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_ea5276bb765474198ad51f22f75fccbf.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, campaign_id, advertiser_id\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__campaign_report`\n group by date_day, campaign_id, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__campaign_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "keyword_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__keyword_history')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__keyword_history_keyword_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__keyword_history_keyword_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__keyword_history_keyword_id"], "alias": "not_null_stg_pinterest_ads__keyword_history_keyword_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.917502, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__keyword_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__keyword_history_keyword_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect keyword_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_history`\nwhere keyword_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "keyword_id", "file_key_name": "models.stg_pinterest_ads__keyword_history"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["keyword_id", "ad_group_id", "_fivetran_synced"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__keyword_history')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced"], "alias": "dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628"}, "created_at": 1690382051.9198809, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628\") }}", "language": "sql", "refs": [["stg_pinterest_ads__keyword_history"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_history"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_ed0c009a9ff1bbb46e1ea2a210b25628.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n keyword_id, ad_group_id, _fivetran_synced\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_history`\n group by keyword_id, ad_group_id, _fivetran_synced\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__keyword_history"}, "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__keyword_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__keyword_report_date_day", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__keyword_report_date_day.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__keyword_report_date_day"], "alias": "not_null_stg_pinterest_ads__keyword_report_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.9261281, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__keyword_report_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_report`\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "date_day", "file_key_name": "models.stg_pinterest_ads__keyword_report"}, "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "keyword_id", "model": "{{ get_where_subquery(ref('stg_pinterest_ads__keyword_report')) }}"}, "namespace": null}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "not_null_stg_pinterest_ads__keyword_report_keyword_id", "resource_type": "test", "package_name": "pinterest_source", "path": "not_null_stg_pinterest_ads__keyword_report_keyword_id.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48", "fqn": ["pinterest_source", "not_null_stg_pinterest_ads__keyword_report_keyword_id"], "alias": "not_null_stg_pinterest_ads__keyword_report_keyword_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1690382051.928108, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [["stg_pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/not_null_stg_pinterest_ads__keyword_report_keyword_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect keyword_id\nfrom `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_report`\nwhere keyword_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": "keyword_id", "file_key_name": "models.stg_pinterest_ads__keyword_report"}, "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "keyword_id", "pin_promotion_id", "ad_group_id", "campaign_id", "advertiser_id"], "model": "{{ get_where_subquery(ref('stg_pinterest_ads__keyword_report')) }}"}, "namespace": "dbt_utils"}, "database": "dbt-package-testing", "schema": "zz_dbt_renee_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id", "resource_type": "test", "package_name": "pinterest_source", "path": "dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236.sql", "original_file_path": "models/stg_pinterest_ads.yml", "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6", "fqn": ["pinterest_source", "dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id"], "alias": "dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "ERROR", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236"}, "created_at": 1690382051.9303732, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236\") }}", "language": "sql", "refs": [["stg_pinterest_ads__keyword_report"]], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.pinterest_source.stg_pinterest_ads__keyword_report"]}, "compiled_path": "target/compiled/pinterest_source/models/stg_pinterest_ads.yml/dbt_utils_unique_combination_o_b825b00d7629c7441a3daa35cf249236.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, keyword_id, pin_promotion_id, ad_group_id, campaign_id, advertiser_id\n from `dbt-package-testing`.`zz_dbt_renee_pinterest_source`.`stg_pinterest_ads__keyword_report`\n group by date_day, keyword_id, pin_promotion_id, ad_group_id, campaign_id, advertiser_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "column_name": null, "file_key_name": "models.stg_pinterest_ads__keyword_report"}}, "sources": {"source.pinterest_source.pinterest_ads.pin_promotion_report": {"database": "dbt-package-testing", "schema": "pinterest_ads_joe", "name": "pin_promotion_report", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.pin_promotion_report", "fqn": ["pinterest_source", "pinterest_ads", "pin_promotion_report"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "pin_promotion_report", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents the daily performance of a Pinterest Pin promotion.", "columns": {"date": {"name": "date", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_1": {"name": "impression_1", "description": "The number of paid pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_2": {"name": "impression_2", "description": "The number of earned pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_1": {"name": "clickthrough_1", "description": "The number of paid pin clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_2": {"name": "clickthrough_2", "description": "The number of earned outbound clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "description": "The amount of spend in micro dollars that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "`dbt-package-testing`.`pinterest_ads_joe`.`pin_promotion_report`", "created_at": 1690382052.077089}, "source.pinterest_source.pinterest_ads.pin_promotion_history": {"database": "dbt-package-testing", "schema": "pinterest_ads_joe", "name": "pin_promotion_history", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.pin_promotion_history", "fqn": ["pinterest_source", "pinterest_ads", "pin_promotion_history"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "pin_promotion_history", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a version of a Pinterest Pin promotion.", "columns": {"id": {"name": "id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "Pin creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "destination_url": {"name": "destination_url", "description": "Pin destination URL.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Pin promotion name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_id": {"name": "pin_id", "description": "Original pin ID.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the Pin promotion. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "creative_type": {"name": "creative_type", "description": "The creative type. \nOne of \"APP\", \"APP_VIDEO\", \"BOARD\", \"CAROUSEL\", \"CINEMATIC\", \"COMMERCE\", \"MAX_VIDEO\", \"NATIVE_VIDEO\", \"REGULAR\", \n\"SEARCH_PROMINENCE\", \"SEARCH_PROMINENCE_CAROUSEL\", \"SHOPPING\", \"SHOP_THE_PIN\", \"THIRD_PARTY\", or \"VIDEO\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "`dbt-package-testing`.`pinterest_ads_joe`.`pin_promotion_history`", "created_at": 1690382052.0775082}, "source.pinterest_source.pinterest_ads.campaign_history": {"database": "dbt-package-testing", "schema": "pinterest_ads_joe", "name": "campaign_history", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.campaign_history", "fqn": ["pinterest_source", "pinterest_ads", "campaign_history"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "campaign_history", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a version of a Pinterest Campaign.", "columns": {"id": {"name": "id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "Campaign creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Campaign name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the Campaign. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "`dbt-package-testing`.`pinterest_ads_joe`.`campaign_history`", "created_at": 1690382052.077872}, "source.pinterest_source.pinterest_ads.ad_group_history": {"database": "dbt-package-testing", "schema": "pinterest_ads_joe", "name": "ad_group_history", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.ad_group_history", "fqn": ["pinterest_source", "pinterest_ads", "ad_group_history"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "ad_group_history", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a version of a Pinterest Ad Group.", "columns": {"id": {"name": "id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "Ad group creation time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Ad group name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the Ad group. One of \"ACTIVE\", \"ARCHIVED\", \"PAUSED\"", "meta": {}, "data_type": null, "quote": null, "tags": []}, "start_time": {"name": "start_time", "description": "Ad group start time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "end_time": {"name": "end_time", "description": "Ad group end time.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "`dbt-package-testing`.`pinterest_ads_joe`.`ad_group_history`", "created_at": 1690382052.078238}, "source.pinterest_source.pinterest_ads.ad_group_report": {"database": "dbt-package-testing", "schema": "pinterest_ads_joe", "name": "ad_group_report", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.ad_group_report", "fqn": ["pinterest_source", "pinterest_ads", "ad_group_report"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "ad_group_report", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents the daily performance of a Pinterest ad group.", "columns": {"date": {"name": "date", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_1": {"name": "impression_1", "description": "The number of paid pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_2": {"name": "impression_2", "description": "The number of earned pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_1": {"name": "clickthrough_1", "description": "The number of paid pin clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_2": {"name": "clickthrough_2", "description": "The number of earned outbound clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "description": "The amount of spend in micro dollars that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "`dbt-package-testing`.`pinterest_ads_joe`.`ad_group_report`", "created_at": 1690382052.078618}, "source.pinterest_source.pinterest_ads.advertiser_history": {"database": "dbt-package-testing", "schema": "pinterest_ads_joe", "name": "advertiser_history", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.advertiser_history", "fqn": ["pinterest_source", "pinterest_ads", "advertiser_history"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "advertiser_history", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a version of a Pinterest advertiser.", "columns": {"id": {"name": "id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Status of the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_profile_status": {"name": "billing_profile_status", "description": "Status of the billing profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_type": {"name": "billing_type", "description": "The billing type of the advertiser. Will typically be CREDIT_CARD or INVOICE.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "The country code where the advertiser is located.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "Timestamp of when a record was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The currency code which the a", "meta": {}, "data_type": null, "quote": null, "tags": []}, "merchant_id": {"name": "merchant_id", "description": "Unique ID of the merchant associated with the advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "owner_user_id": {"name": "owner_user_id", "description": "Unique identifier of the owner user.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_time": {"name": "updated_time", "description": "Timestamp of when a record was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "`dbt-package-testing`.`pinterest_ads_joe`.`advertiser_history`", "created_at": 1690382052.0789928}, "source.pinterest_source.pinterest_ads.advertiser_report": {"database": "dbt-package-testing", "schema": "pinterest_ads_joe", "name": "advertiser_report", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.advertiser_report", "fqn": ["pinterest_source", "pinterest_ads", "advertiser_report"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "advertiser_report", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents the daily performance of a Pinterest advertiser.", "columns": {"date": {"name": "date", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_1": {"name": "impression_1", "description": "The number of paid pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_2": {"name": "impression_2", "description": "The number of earned pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_1": {"name": "clickthrough_1", "description": "The number of paid pin clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_2": {"name": "clickthrough_2", "description": "The number of earned outbound clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "description": "The amount of spend in micro dollars that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "`dbt-package-testing`.`pinterest_ads_joe`.`advertiser_report`", "created_at": 1690382052.0794492}, "source.pinterest_source.pinterest_ads.campaign_report": {"database": "dbt-package-testing", "schema": "pinterest_ads_joe", "name": "campaign_report", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.campaign_report", "fqn": ["pinterest_source", "pinterest_ads", "campaign_report"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "campaign_report", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents the daily performance of a Pinterest campaign.", "columns": {"date": {"name": "date", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_status": {"name": "campaign_status", "description": "Status of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_1": {"name": "impression_1", "description": "The number of paid pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_2": {"name": "impression_2", "description": "The number of earned pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_1": {"name": "clickthrough_1", "description": "The number of paid pin clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_2": {"name": "clickthrough_2", "description": "The number of earned outbound clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "description": "The amount of spend in micro dollars that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "`dbt-package-testing`.`pinterest_ads_joe`.`campaign_report`", "created_at": 1690382052.079836}, "source.pinterest_source.pinterest_ads.keyword_history": {"database": "dbt-package-testing", "schema": "pinterest_ads_joe", "name": "keyword_history", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.keyword_history", "fqn": ["pinterest_source", "pinterest_ads", "keyword_history"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "keyword_history", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a version of a Pinterest keyword.", "columns": {"id": {"name": "id", "description": "Unique identifier of the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "value": {"name": "value", "description": "The text value that makes upd the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_id": {"name": "_fivetran_id", "description": "The unique identifier of the record within the Fivetran synced table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "archived": {"name": "archived", "description": "Boolean indicating if the keyword is archived.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "bid": {"name": "bid", "description": "Bid amount set for the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "match_type": {"name": "match_type", "description": "Type of match the keyword is tied to. Either Exact or Broad.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_type": {"name": "parent_type", "description": "Identifier of what grain the parent type is. Ad group or campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "`dbt-package-testing`.`pinterest_ads_joe`.`keyword_history`", "created_at": 1690382052.0802171}, "source.pinterest_source.pinterest_ads.keyword_report": {"database": "dbt-package-testing", "schema": "pinterest_ads_joe", "name": "keyword_report", "resource_type": "source", "package_name": "pinterest_source", "path": "models/src_pinterest_ads.yml", "original_file_path": "models/src_pinterest_ads.yml", "unique_id": "source.pinterest_source.pinterest_ads.keyword_report", "fqn": ["pinterest_source", "pinterest_ads", "keyword_report"], "source_name": "pinterest_ads", "source_description": "", "loader": "Fivetran", "identifier": "keyword_report", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents the daily performance of a Pinterest key word.", "columns": {"date": {"name": "date", "description": "The performance date of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "keyword_id": {"name": "keyword_id", "description": "Unique identifier of the keyword.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pin_promotion_id": {"name": "pin_promotion_id", "description": "The ID of the related Pin promotion.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_id": {"name": "ad_group_id", "description": "The ID of the related Ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_name": {"name": "ad_group_name", "description": "Name of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "ad_group_status": {"name": "ad_group_status", "description": "Status of the ad group.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related Campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "advertiser_id": {"name": "advertiser_id", "description": "The ID of the related Advertiser.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of when a record was last synced.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_1": {"name": "impression_1", "description": "The number of paid pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "impression_2": {"name": "impression_2", "description": "The number of earned pin impressions that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_1": {"name": "clickthrough_1", "description": "The number of paid pin clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "clickthrough_2": {"name": "clickthrough_2", "description": "The number of earned outbound clicks that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "description": "The amount of spend in micro dollars that occurred on the day of the record.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "`dbt-package-testing`.`pinterest_ads_joe`.`keyword_report`", "created_at": 1690382052.080595}}, "macros": {"macro.dbt_bigquery.date_sharded_table": {"name": "date_sharded_table", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/etc.sql", "original_file_path": "macros/etc.sql", "unique_id": "macro.dbt_bigquery.date_sharded_table", "macro_sql": "{% macro date_sharded_table(base_name) %}\n {{ return(base_name ~ \"[DBT__PARTITION_DATE]\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.820777, "supported_languages": null}, "macro.dbt_bigquery.grant_access_to": {"name": "grant_access_to", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/etc.sql", "original_file_path": "macros/etc.sql", "unique_id": "macro.dbt_bigquery.grant_access_to", "macro_sql": "{% macro grant_access_to(entity, entity_type, role, grant_target_dict) -%}\n {% do adapter.grant_access_to(entity, entity_type, role, grant_target_dict) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.821286, "supported_languages": null}, "macro.dbt_bigquery.get_partitions_metadata": {"name": "get_partitions_metadata", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/etc.sql", "original_file_path": "macros/etc.sql", "unique_id": "macro.dbt_bigquery.get_partitions_metadata", "macro_sql": "\n\n{%- macro get_partitions_metadata(table) -%}\n {%- if execute -%}\n {%- set res = adapter.get_partitions_metadata(table) -%}\n {{- return(res) -}}\n {%- endif -%}\n {{- return(None) -}}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8218958, "supported_languages": null}, "macro.dbt_bigquery.bigquery__get_catalog": {"name": "bigquery__get_catalog", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "unique_id": "macro.dbt_bigquery.bigquery__get_catalog", "macro_sql": "{% macro bigquery__get_catalog(information_schema, schemas) -%}\n\n {%- if (schemas | length) == 0 -%}\n {# Hopefully nothing cares about the columns we return when there are no rows #}\n {%- set query = \"select 1 as id limit 0\" -%}\n {%- else -%}\n\n {%- set query -%}\n with tables as (\n select\n project_id as table_database,\n dataset_id as table_schema,\n table_id as original_table_name,\n\n concat(project_id, '.', dataset_id, '.', table_id) as relation_id,\n\n row_count,\n size_bytes as size_bytes,\n case\n when type = 1 then 'table'\n when type = 2 then 'view'\n else 'external'\n end as table_type,\n\n REGEXP_CONTAINS(table_id, '^.+[0-9]{8}$') and coalesce(type, 0) = 1 as is_date_shard,\n REGEXP_EXTRACT(table_id, '^(.+)[0-9]{8}$') as shard_base_name,\n REGEXP_EXTRACT(table_id, '^.+([0-9]{8})$') as shard_name\n\n from {{ information_schema.replace(information_schema_view='__TABLES__') }}\n where (\n {%- for schema in schemas -%}\n upper(dataset_id) = upper('{{ schema }}'){%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n )\n ),\n\n table_options as (\n select\n concat(table_catalog, '.', table_schema, '.', table_name) as relation_id,\n JSON_VALUE(option_value) as table_comment\n\n from {{ information_schema.replace(information_schema_view='TABLE_OPTIONS') }}\n where option_name = 'description'\n ),\n extracted as (\n\n select *,\n case\n when is_date_shard then shard_base_name\n else original_table_name\n end as table_name\n\n from tables\n\n ),\n\n unsharded_tables as (\n\n select\n table_database,\n table_schema,\n table_name,\n coalesce(table_type, 'external') as table_type,\n is_date_shard,\n\n struct(\n min(shard_name) as shard_min,\n max(shard_name) as shard_max,\n count(*) as shard_count\n ) as table_shards,\n\n sum(size_bytes) as size_bytes,\n sum(row_count) as row_count,\n\n max(relation_id) as relation_id\n\n from extracted\n group by 1,2,3,4,5\n\n ),\n\n info_schema_columns as (\n\n select\n concat(table_catalog, '.', table_schema, '.', table_name) as relation_id,\n table_catalog as table_database,\n table_schema,\n table_name,\n\n -- use the \"real\" column name from the paths query below\n column_name as base_column_name,\n ordinal_position as column_index,\n\n is_partitioning_column,\n clustering_ordinal_position\n\n from {{ information_schema.replace(information_schema_view='COLUMNS') }}\n where ordinal_position is not null\n\n ),\n\n info_schema_column_paths as (\n\n select\n concat(table_catalog, '.', table_schema, '.', table_name) as relation_id,\n field_path as column_name,\n data_type as column_type,\n column_name as base_column_name,\n description as column_comment\n\n from {{ information_schema.replace(information_schema_view='COLUMN_FIELD_PATHS') }}\n\n ),\n\n columns as (\n\n select * except (base_column_name)\n from info_schema_columns\n join info_schema_column_paths using (relation_id, base_column_name)\n\n ),\n\n column_stats as (\n\n select\n table_database,\n table_schema,\n table_name,\n max(relation_id) as relation_id,\n max(case when is_partitioning_column = 'YES' then 1 else 0 end) = 1 as is_partitioned,\n max(case when is_partitioning_column = 'YES' then column_name else null end) as partition_column,\n max(case when clustering_ordinal_position is not null then 1 else 0 end) = 1 as is_clustered,\n array_to_string(\n array_agg(\n case\n when clustering_ordinal_position is not null then column_name\n else null\n end ignore nulls\n order by clustering_ordinal_position\n ), ', '\n ) as clustering_columns\n\n from columns\n group by 1,2,3\n\n )\n\n select\n unsharded_tables.table_database,\n unsharded_tables.table_schema,\n case\n when is_date_shard then concat(unsharded_tables.table_name, '*')\n else unsharded_tables.table_name\n end as table_name,\n unsharded_tables.table_type,\n table_options.table_comment,\n\n -- coalesce name and type for External tables - these columns are not\n -- present in the COLUMN_FIELD_PATHS resultset\n coalesce(columns.column_name, '') as column_name,\n -- invent a row number to account for nested fields -- BQ does\n -- not treat these nested properties as independent fields\n row_number() over (\n partition by relation_id\n order by columns.column_index, columns.column_name\n ) as column_index,\n coalesce(columns.column_type, '') as column_type,\n columns.column_comment,\n\n 'Shard count' as `stats__date_shards__label`,\n table_shards.shard_count as `stats__date_shards__value`,\n 'The number of date shards in this table' as `stats__date_shards__description`,\n is_date_shard as `stats__date_shards__include`,\n\n 'Shard (min)' as `stats__date_shard_min__label`,\n table_shards.shard_min as `stats__date_shard_min__value`,\n 'The first date shard in this table' as `stats__date_shard_min__description`,\n is_date_shard as `stats__date_shard_min__include`,\n\n 'Shard (max)' as `stats__date_shard_max__label`,\n table_shards.shard_max as `stats__date_shard_max__value`,\n 'The last date shard in this table' as `stats__date_shard_max__description`,\n is_date_shard as `stats__date_shard_max__include`,\n\n '# Rows' as `stats__num_rows__label`,\n row_count as `stats__num_rows__value`,\n 'Approximate count of rows in this table' as `stats__num_rows__description`,\n (unsharded_tables.table_type = 'table') as `stats__num_rows__include`,\n\n 'Approximate Size' as `stats__num_bytes__label`,\n size_bytes as `stats__num_bytes__value`,\n 'Approximate size of table as reported by BigQuery' as `stats__num_bytes__description`,\n (unsharded_tables.table_type = 'table') as `stats__num_bytes__include`,\n\n 'Partitioned By' as `stats__partitioning_type__label`,\n partition_column as `stats__partitioning_type__value`,\n 'The partitioning column for this table' as `stats__partitioning_type__description`,\n is_partitioned as `stats__partitioning_type__include`,\n\n 'Clustered By' as `stats__clustering_fields__label`,\n clustering_columns as `stats__clustering_fields__value`,\n 'The clustering columns for this table' as `stats__clustering_fields__description`,\n is_clustered as `stats__clustering_fields__include`\n\n -- join using relation_id (an actual relation, not a shard prefix) to make\n -- sure that column metadata is picked up through the join. This will only\n -- return the column information for the \"max\" table in a date-sharded table set\n from unsharded_tables\n left join table_options using (relation_id)\n left join columns using (relation_id)\n left join column_stats using (relation_id)\n {%- endset -%}\n\n {%- endif -%}\n\n {{ return(run_query(query)) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.829447, "supported_languages": null}, "macro.dbt_bigquery.partition_by": {"name": "partition_by", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.partition_by", "macro_sql": "{% macro partition_by(partition_config) -%}\n {%- if partition_config is none -%}\n {% do return('') %}\n {%- elif partition_config.data_type | lower in ('date','timestamp','datetime') -%}\n partition by {{ partition_config.render() }}\n {%- elif partition_config.data_type | lower in ('int64') -%}\n {%- set range = partition_config.range -%}\n partition by range_bucket(\n {{ partition_config.field }},\n generate_array({{ range.start}}, {{ range.end }}, {{ range.interval }})\n )\n {%- endif -%}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.836289, "supported_languages": null}, "macro.dbt_bigquery.cluster_by": {"name": "cluster_by", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.cluster_by", "macro_sql": "{% macro cluster_by(raw_cluster_by) %}\n {%- if raw_cluster_by is not none -%}\n cluster by {% if raw_cluster_by is string -%}\n {% set raw_cluster_by = [raw_cluster_by] %}\n {%- endif -%}\n {%- for cluster in raw_cluster_by -%}\n {{ cluster }}\n {%- if not loop.last -%}, {% endif -%}\n {%- endfor -%}\n\n {% endif %}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.83714, "supported_languages": null}, "macro.dbt_bigquery.bigquery_options": {"name": "bigquery_options", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery_options", "macro_sql": "{% macro bigquery_options(opts) %}\n {% set options -%}\n OPTIONS({% for opt_key, opt_val in opts.items() %}\n {{ opt_key }}={{ opt_val }}{{ \",\" if not loop.last }}\n {% endfor %})\n {%- endset %}\n {%- do return(options) -%}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.837951, "supported_languages": null}, "macro.dbt_bigquery.bigquery_table_options": {"name": "bigquery_table_options", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery_table_options", "macro_sql": "{% macro bigquery_table_options(config, node, temporary) %}\n {% set opts = adapter.get_table_options(config, node, temporary) %}\n {%- do return(bigquery_options(opts)) -%}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_bigquery.bigquery_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.838552, "supported_languages": null}, "macro.dbt_bigquery.bigquery__create_table_as": {"name": "bigquery__create_table_as", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__create_table_as", "macro_sql": "{% macro bigquery__create_table_as(temporary, relation, compiled_code, language='sql') -%}\n {%- if language == 'sql' -%}\n {%- set raw_partition_by = config.get('partition_by', none) -%}\n {%- set raw_cluster_by = config.get('cluster_by', none) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {%- set partition_config = adapter.parse_partition_by(raw_partition_by) -%}\n\n {{ sql_header if sql_header is not none }}\n\n create or replace table {{ relation }}\n {{ partition_by(partition_config) }}\n {{ cluster_by(raw_cluster_by) }}\n {{ bigquery_table_options(config, model, temporary) }}\n as (\n {{ compiled_code }}\n );\n {%- elif language == 'python' -%}\n {#--\n N.B. Python models _can_ write to temp views HOWEVER they use a different session\n and have already expired by the time they need to be used (I.E. in merges for incremental models)\n\n TODO: Deep dive into spark sessions to see if we can reuse a single session for an entire\n dbt invocation.\n --#}\n {{ py_write_table(compiled_code=compiled_code, target_relation=relation.quote(database=False, schema=False, identifier=False)) }}\n {%- else -%}\n {% do exceptions.raise_compiler_error(\"bigquery__create_table_as macro didn't get supported language, it got %s\" % language) %}\n {%- endif -%}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_bigquery.partition_by", "macro.dbt_bigquery.cluster_by", "macro.dbt_bigquery.bigquery_table_options", "macro.dbt_bigquery.py_write_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8410182, "supported_languages": null}, "macro.dbt_bigquery.bigquery_view_options": {"name": "bigquery_view_options", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery_view_options", "macro_sql": "{% macro bigquery_view_options(config, node) %}\n {% set opts = adapter.get_view_options(config, node) %}\n {%- do return(bigquery_options(opts)) -%}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_bigquery.bigquery_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8417459, "supported_languages": null}, "macro.dbt_bigquery.bigquery__create_view_as": {"name": "bigquery__create_view_as", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__create_view_as", "macro_sql": "{% macro bigquery__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\n create or replace view {{ relation }}\n {{ bigquery_view_options(config, model) }}\n as {{ sql }};\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_bigquery.bigquery_view_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8427231, "supported_languages": null}, "macro.dbt_bigquery.bigquery__drop_schema": {"name": "bigquery__drop_schema", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__drop_schema", "macro_sql": "{% macro bigquery__drop_schema(relation) -%}\n {{ adapter.drop_schema(relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.843088, "supported_languages": null}, "macro.dbt_bigquery.bigquery__drop_relation": {"name": "bigquery__drop_relation", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__drop_relation", "macro_sql": "{% macro bigquery__drop_relation(relation) -%}\n {% call statement('drop_relation') -%}\n drop {{ relation.type }} if exists {{ relation }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.843623, "supported_languages": null}, "macro.dbt_bigquery.bigquery__get_columns_in_relation": {"name": "bigquery__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__get_columns_in_relation", "macro_sql": "{% macro bigquery__get_columns_in_relation(relation) -%}\n {{ return(adapter.get_columns_in_relation(relation)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8440871, "supported_languages": null}, "macro.dbt_bigquery.bigquery__list_relations_without_caching": {"name": "bigquery__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__list_relations_without_caching", "macro_sql": "{% macro bigquery__list_relations_without_caching(schema_relation) -%}\n {{ return(adapter.list_relations_without_caching(schema_relation)) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.844501, "supported_languages": null}, "macro.dbt_bigquery.bigquery__list_schemas": {"name": "bigquery__list_schemas", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__list_schemas", "macro_sql": "{% macro bigquery__list_schemas(database) -%}\n {{ return(adapter.list_schemas(database)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.844933, "supported_languages": null}, "macro.dbt_bigquery.bigquery__check_schema_exists": {"name": "bigquery__check_schema_exists", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__check_schema_exists", "macro_sql": "{% macro bigquery__check_schema_exists(information_schema, schema) %}\n {{ return(adapter.check_schema_exists(information_schema.database, schema)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8463302, "supported_languages": null}, "macro.dbt_bigquery.bigquery__persist_docs": {"name": "bigquery__persist_docs", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__persist_docs", "macro_sql": "{% macro bigquery__persist_docs(relation, model, for_relation, for_columns) -%}\n {% if for_columns and config.persist_column_docs() and model.columns %}\n {% do alter_column_comment(relation, model.columns) %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8470778, "supported_languages": null}, "macro.dbt_bigquery.bigquery__alter_column_comment": {"name": "bigquery__alter_column_comment", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__alter_column_comment", "macro_sql": "{% macro bigquery__alter_column_comment(relation, column_dict) -%}\n {% do adapter.update_columns(relation, column_dict) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.847517, "supported_languages": null}, "macro.dbt_bigquery.bigquery__rename_relation": {"name": "bigquery__rename_relation", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__rename_relation", "macro_sql": "{% macro bigquery__rename_relation(from_relation, to_relation) -%}\n {% do adapter.rename_relation(from_relation, to_relation) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.847876, "supported_languages": null}, "macro.dbt_bigquery.bigquery__alter_relation_add_columns": {"name": "bigquery__alter_relation_add_columns", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__alter_relation_add_columns", "macro_sql": "{% macro bigquery__alter_relation_add_columns(relation, add_columns) %}\n\n {% set sql -%}\n\n alter {{ relation.type }} {{ relation }}\n {% for column in add_columns %}\n add column {{ column.name }} {{ column.data_type }}{{ ',' if not loop.last }}\n {% endfor %}\n\n {%- endset -%}\n\n {{ return(run_query(sql)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8489769, "supported_languages": null}, "macro.dbt_bigquery.bigquery__alter_relation_drop_columns": {"name": "bigquery__alter_relation_drop_columns", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__alter_relation_drop_columns", "macro_sql": "{% macro bigquery__alter_relation_drop_columns(relation, drop_columns) %}\n\n {% set sql -%}\n\n alter {{ relation.type }} {{ relation }}\n\n {% for column in drop_columns %}\n drop column {{ column.name }}{{ ',' if not loop.last }}\n {% endfor %}\n\n {%- endset -%}\n\n {{ return(run_query(sql)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8498309, "supported_languages": null}, "macro.dbt_bigquery.bigquery__alter_column_type": {"name": "bigquery__alter_column_type", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__alter_column_type", "macro_sql": "{% macro bigquery__alter_column_type(relation, column_name, new_column_type) -%}\n {#-- Changing a column's data type using a query requires you to scan the entire table.\n The query charges can be significant if the table is very large.\n\n https://cloud.google.com/bigquery/docs/manually-changing-schemas#changing_a_columns_data_type\n #}\n {% set relation_columns = get_columns_in_relation(relation) %}\n\n {% set sql %}\n select\n {%- for col in relation_columns -%}\n {% if col.column == column_name %}\n CAST({{ col.quoted }} AS {{ new_column_type }}) AS {{ col.quoted }}\n {%- else %}\n {{ col.quoted }}\n {%- endif %}\n {%- if not loop.last %},{% endif -%}\n {%- endfor %}\n from {{ relation }}\n {% endset %}\n\n {% call statement('alter_column_type') %}\n {{ create_table_as(False, relation, sql)}}\n {%- endcall %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_columns_in_relation", "macro.dbt.statement", "macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8513012, "supported_languages": null}, "macro.dbt_bigquery.bigquery__test_unique": {"name": "bigquery__test_unique", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__test_unique", "macro_sql": "{% macro bigquery__test_unique(model, column_name) %}\n\nwith dbt_test__target as (\n\n select {{ column_name }} as unique_field\n from {{ model }}\n where {{ column_name }} is not null\n\n)\n\nselect\n unique_field,\n count(*) as n_records\n\nfrom dbt_test__target\ngroup by unique_field\nhaving count(*) > 1\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.851677, "supported_languages": null}, "macro.dbt_bigquery.bigquery__upload_file": {"name": "bigquery__upload_file", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_bigquery.bigquery__upload_file", "macro_sql": "{% macro bigquery__upload_file(local_file_path, database, table_schema, table_name) %}\n\n {{ log(\"kwargs: \" ~ kwargs) }}\n\n {% do adapter.upload_file(local_file_path, database, table_schema, table_name, kwargs=kwargs) %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.852275, "supported_languages": null}, "macro.dbt_bigquery.bigquery__create_csv_table": {"name": "bigquery__create_csv_table", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/seed.sql", "original_file_path": "macros/materializations/seed.sql", "unique_id": "macro.dbt_bigquery.bigquery__create_csv_table", "macro_sql": "{% macro bigquery__create_csv_table(model, agate_table) %}\n -- no-op\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.853098, "supported_languages": null}, "macro.dbt_bigquery.bigquery__reset_csv_table": {"name": "bigquery__reset_csv_table", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/seed.sql", "original_file_path": "macros/materializations/seed.sql", "unique_id": "macro.dbt_bigquery.bigquery__reset_csv_table", "macro_sql": "{% macro bigquery__reset_csv_table(model, full_refresh, old_relation, agate_table) %}\n {{ adapter.drop_relation(old_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.853445, "supported_languages": null}, "macro.dbt_bigquery.bigquery__load_csv_rows": {"name": "bigquery__load_csv_rows", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/seed.sql", "original_file_path": "macros/materializations/seed.sql", "unique_id": "macro.dbt_bigquery.bigquery__load_csv_rows", "macro_sql": "{% macro bigquery__load_csv_rows(model, agate_table) %}\n\n {%- set column_override = model['config'].get('column_types', {}) -%}\n {{ adapter.load_dataframe(model['database'], model['schema'], model['alias'],\n \t\t\t\t\t\t\tagate_table, column_override) }}\n\n {% call statement() %}\n alter table {{ this.render() }} set {{ bigquery_table_options(config, model) }}\n {% endcall %}\n\n {% if config.persist_relation_docs() and 'description' in model %}\n\n \t{{ adapter.update_table_description(model['database'], model['schema'], model['alias'], model['description']) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_bigquery.bigquery_table_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.854996, "supported_languages": null}, "macro.dbt_bigquery.bigquery__handle_existing_table": {"name": "bigquery__handle_existing_table", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/view.sql", "original_file_path": "macros/materializations/view.sql", "unique_id": "macro.dbt_bigquery.bigquery__handle_existing_table", "macro_sql": "{% macro bigquery__handle_existing_table(full_refresh, old_relation) %}\n {%- if full_refresh -%}\n {{ adapter.drop_relation(old_relation) }}\n {%- else -%}\n {{ exceptions.relation_wrong_type(old_relation, 'view') }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.856023, "supported_languages": null}, "macro.dbt_bigquery.materialization_view_bigquery": {"name": "materialization_view_bigquery", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/view.sql", "original_file_path": "macros/materializations/view.sql", "unique_id": "macro.dbt_bigquery.materialization_view_bigquery", "macro_sql": "{% materialization view, adapter='bigquery' -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n {% set to_return = create_or_replace_view() %}\n\n {% set target_relation = this.incorporate(type='view') %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if config.get('grant_access_to') %}\n {% for grant_target_dict in config.get('grant_access_to') %}\n {% do adapter.grant_access_to(this, 'view', None, grant_target_dict) %}\n {% endfor %}\n {% endif %}\n\n {% do return(to_return) %}\n\n{%- endmaterialization %}", "depends_on": {"macros": ["macro.dbt.create_or_replace_view", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8577049, "supported_languages": ["sql"]}, "macro.dbt_bigquery.materialization_table_bigquery": {"name": "materialization_table_bigquery", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/table.sql", "original_file_path": "macros/materializations/table.sql", "unique_id": "macro.dbt_bigquery.materialization_table_bigquery", "macro_sql": "{% materialization table, adapter='bigquery', supported_languages=['sql', 'python']-%}\n\n {%- set language = model['language'] -%}\n {%- set identifier = model['alias'] -%}\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n {%- set exists_not_as_table = (old_relation is not none and not old_relation.is_table) -%}\n {%- set target_relation = api.Relation.create(database=database, schema=schema, identifier=identifier, type='table') -%}\n\n -- grab current tables grants config for comparision later on\n {%- set grant_config = config.get('grants') -%}\n\n {{ run_hooks(pre_hooks) }}\n\n {#\n We only need to drop this thing if it is not a table.\n If it _is_ already a table, then we can overwrite it without downtime\n Unlike table -> view, no need for `--full-refresh`: dropping a view is no big deal\n #}\n {%- if exists_not_as_table -%}\n {{ adapter.drop_relation(old_relation) }}\n {%- endif -%}\n\n -- build model\n {%- set raw_partition_by = config.get('partition_by', none) -%}\n {%- set partition_by = adapter.parse_partition_by(raw_partition_by) -%}\n {%- set cluster_by = config.get('cluster_by', none) -%}\n {% if not adapter.is_replaceable(old_relation, partition_by, cluster_by) %}\n {% do log(\"Hard refreshing \" ~ old_relation ~ \" because it is not replaceable\") %}\n {% do adapter.drop_relation(old_relation) %}\n {% endif %}\n\n -- build model\n {%- call statement('main', language=language) -%}\n {{ create_table_as(False, target_relation, compiled_code, language) }}\n {%- endcall -%}\n\n {{ run_hooks(post_hooks) }}\n\n {% set should_revoke = should_revoke(old_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.create_table_as", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.865165, "supported_languages": ["sql", "python"]}, "macro.dbt_bigquery.py_write_table": {"name": "py_write_table", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/table.sql", "original_file_path": "macros/materializations/table.sql", "unique_id": "macro.dbt_bigquery.py_write_table", "macro_sql": "{% macro py_write_table(compiled_code, target_relation) %}\nfrom pyspark.sql import SparkSession\n\nspark = SparkSession.builder.appName('smallTest').getOrCreate()\n\nspark.conf.set(\"viewsEnabled\",\"true\")\nspark.conf.set(\"temporaryGcsBucket\",\"{{target.gcs_bucket}}\")\n\n{{ compiled_code }}\ndbt = dbtObj(spark.read.format(\"bigquery\").load)\ndf = model(dbt, spark)\n\n# COMMAND ----------\n# this is materialization code dbt generated, please do not modify\n\nimport pyspark\n# make sure pandas exists before using it\ntry:\n import pandas\n pandas_available = True\nexcept ImportError:\n pandas_available = False\n\n# make sure pyspark.pandas exists before using it\ntry:\n import pyspark.pandas\n pyspark_pandas_api_available = True\nexcept ImportError:\n pyspark_pandas_api_available = False\n\n# make sure databricks.koalas exists before using it\ntry:\n import databricks.koalas\n koalas_available = True\nexcept ImportError:\n koalas_available = False\n\n# preferentially convert pandas DataFrames to pandas-on-Spark or Koalas DataFrames first\n# since they know how to convert pandas DataFrames better than `spark.createDataFrame(df)`\n# and converting from pandas-on-Spark to Spark DataFrame has no overhead\nif pyspark_pandas_api_available and pandas_available and isinstance(df, pandas.core.frame.DataFrame):\n df = pyspark.pandas.frame.DataFrame(df)\nelif koalas_available and pandas_available and isinstance(df, pandas.core.frame.DataFrame):\n df = databricks.koalas.frame.DataFrame(df)\n\n# convert to pyspark.sql.dataframe.DataFrame\nif isinstance(df, pyspark.sql.dataframe.DataFrame):\n pass # since it is already a Spark DataFrame\nelif pyspark_pandas_api_available and isinstance(df, pyspark.pandas.frame.DataFrame):\n df = df.to_spark()\nelif koalas_available and isinstance(df, databricks.koalas.frame.DataFrame):\n df = df.to_spark()\nelif pandas_available and isinstance(df, pandas.core.frame.DataFrame):\n df = spark.createDataFrame(df)\nelse:\n msg = f\"{type(df)} is not a supported type for dbt Python materialization\"\n raise Exception(msg)\n\ndf.write \\\n .mode(\"overwrite\") \\\n .format(\"bigquery\") \\\n .option(\"writeMethod\", \"direct\").option(\"writeDisposition\", 'WRITE_TRUNCATE') \\\n .save(\"{{target_relation}}\")\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.866166, "supported_languages": null}, "macro.dbt_bigquery.materialization_copy_bigquery": {"name": "materialization_copy_bigquery", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/copy.sql", "original_file_path": "macros/materializations/copy.sql", "unique_id": "macro.dbt_bigquery.materialization_copy_bigquery", "macro_sql": "{% materialization copy, adapter='bigquery' -%}\n\n {# Setup #}\n {{ run_hooks(pre_hooks) }}\n\n {% set destination = this.incorporate(type='table') %}\n\n {# there can be several ref() or source() according to BQ copy API docs #}\n {# cycle over ref() and source() to create source tables array #}\n {% set source_array = [] %}\n {% for ref_table in model.refs %}\n {{ source_array.append(ref(*ref_table)) }}\n {% endfor %}\n\n {% for src_table in model.sources %}\n {{ source_array.append(source(*src_table)) }}\n {% endfor %}\n\n {# Call adapter copy_table function #}\n {%- set result_str = adapter.copy_table(\n source_array,\n destination,\n config.get('copy_materialization', default = 'table')) -%}\n\n {{ store_result('main', response=result_str) }}\n\n {# Clean up #}\n {{ run_hooks(post_hooks) }}\n {%- do apply_grants(target_relation, grant_config) -%}\n {{ adapter.commit() }}\n\n {{ return({'relations': [destination]}) }}\n{%- endmaterialization %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.868875, "supported_languages": ["sql"]}, "macro.dbt_bigquery.dbt_bigquery_validate_get_incremental_strategy": {"name": "dbt_bigquery_validate_get_incremental_strategy", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental.sql", "original_file_path": "macros/materializations/incremental.sql", "unique_id": "macro.dbt_bigquery.dbt_bigquery_validate_get_incremental_strategy", "macro_sql": "{% macro dbt_bigquery_validate_get_incremental_strategy(config) %}\n {#-- Find and validate the incremental strategy #}\n {%- set strategy = config.get(\"incremental_strategy\") or 'merge' -%}\n\n {% set invalid_strategy_msg -%}\n Invalid incremental strategy provided: {{ strategy }}\n Expected one of: 'merge', 'insert_overwrite'\n {%- endset %}\n {% if strategy not in ['merge', 'insert_overwrite'] %}\n {% do exceptions.raise_compiler_error(invalid_strategy_msg) %}\n {% endif %}\n\n {% do return(strategy) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.87292, "supported_languages": null}, "macro.dbt_bigquery.source_sql_with_partition": {"name": "source_sql_with_partition", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental.sql", "original_file_path": "macros/materializations/incremental.sql", "unique_id": "macro.dbt_bigquery.source_sql_with_partition", "macro_sql": "{% macro source_sql_with_partition(partition_by, source_sql) %}\n\n {%- if partition_by.time_ingestion_partitioning %}\n {{ return(wrap_with_time_ingestion_partitioning_sql(build_partition_time_exp(partition_by.field), source_sql, False)) }}\n {% else %}\n {{ return(source_sql) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_bigquery.wrap_with_time_ingestion_partitioning_sql", "macro.dbt_bigquery.build_partition_time_exp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.874082, "supported_languages": null}, "macro.dbt_bigquery.bq_create_table_as": {"name": "bq_create_table_as", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental.sql", "original_file_path": "macros/materializations/incremental.sql", "unique_id": "macro.dbt_bigquery.bq_create_table_as", "macro_sql": "{% macro bq_create_table_as(is_time_ingestion_partitioning, temporary, relation, compiled_code, language='sql') %}\n {% if is_time_ingestion_partitioning and language == 'python' %}\n {% do exceptions.raise_compiler_error(\n \"Python models do not support ingestion time partitioning\"\n ) %}\n {% endif %}\n {% if is_time_ingestion_partitioning and language == 'sql' %}\n {#-- Create the table before inserting data as ingestion time partitioned tables can't be created with the transformed data --#}\n {% do run_query(create_ingestion_time_partitioned_table_as_sql(temporary, relation, compiled_code)) %}\n {{ return(bq_insert_into_ingestion_time_partitioned_table_sql(relation, compiled_code)) }}\n {% else %}\n {{ return(create_table_as(temporary, relation, compiled_code, language)) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt_bigquery.create_ingestion_time_partitioned_table_as_sql", "macro.dbt_bigquery.bq_insert_into_ingestion_time_partitioned_table_sql", "macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.876178, "supported_languages": null}, "macro.dbt_bigquery.bq_generate_incremental_build_sql": {"name": "bq_generate_incremental_build_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental.sql", "original_file_path": "macros/materializations/incremental.sql", "unique_id": "macro.dbt_bigquery.bq_generate_incremental_build_sql", "macro_sql": "{% macro bq_generate_incremental_build_sql(\n strategy, tmp_relation, target_relation, sql, unique_key, partition_by, partitions, dest_columns, tmp_relation_exists, copy_partitions, incremental_predicates\n) %}\n {#-- if partitioned, use BQ scripting to get the range of partition values to be updated --#}\n {% if strategy == 'insert_overwrite' %}\n\n {% set build_sql = bq_generate_incremental_insert_overwrite_build_sql(\n tmp_relation, target_relation, sql, unique_key, partition_by, partitions, dest_columns, tmp_relation_exists, copy_partitions\n ) %}\n\n {% else %} {# strategy == 'merge' #}\n\n {% set build_sql = bq_generate_incremental_merge_build_sql(\n tmp_relation, target_relation, sql, unique_key, partition_by, dest_columns, tmp_relation_exists, incremental_predicates\n ) %}\n\n {% endif %}\n\n {{ return(build_sql) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_bigquery.bq_generate_incremental_insert_overwrite_build_sql", "macro.dbt_bigquery.bq_generate_incremental_merge_build_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.877959, "supported_languages": null}, "macro.dbt_bigquery.materialization_incremental_bigquery": {"name": "materialization_incremental_bigquery", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental.sql", "original_file_path": "macros/materializations/incremental.sql", "unique_id": "macro.dbt_bigquery.materialization_incremental_bigquery", "macro_sql": "{% materialization incremental, adapter='bigquery', supported_languages=['sql', 'python'] -%}\n\n {%- set unique_key = config.get('unique_key') -%}\n {%- set full_refresh_mode = (should_full_refresh()) -%}\n {%- set language = model['language'] %}\n\n {%- set target_relation = this %}\n {%- set existing_relation = load_relation(this) %}\n {%- set tmp_relation = make_temp_relation(this) %}\n\n {#-- Validate early so we don't run SQL if the strategy is invalid --#}\n {% set strategy = dbt_bigquery_validate_get_incremental_strategy(config) -%}\n\n {%- set raw_partition_by = config.get('partition_by', none) -%}\n {%- set partition_by = adapter.parse_partition_by(raw_partition_by) -%}\n {%- set partitions = config.get('partitions', none) -%}\n {%- set cluster_by = config.get('cluster_by', none) -%}\n\n {% set on_schema_change = incremental_validate_on_schema_change(config.get('on_schema_change'), default='ignore') %}\n {% set incremental_predicates = config.get('predicates', default=none) or config.get('incremental_predicates', default=none) %}\n\n -- grab current tables grants config for comparison later on\n {% set grant_config = config.get('grants') %}\n\n {{ run_hooks(pre_hooks) }}\n\n {% if partition_by.copy_partitions is true and strategy != 'insert_overwrite' %} {#-- We can't copy partitions with merge strategy --#}\n {% set wrong_strategy_msg -%}\n The 'copy_partitions' option requires the 'incremental_strategy' option to be set to 'insert_overwrite'.\n {%- endset %}\n {% do exceptions.raise_compiler_error(wrong_strategy_msg) %}\n\n {% elif existing_relation is none %}\n {%- call statement('main', language=language) -%}\n {{ bq_create_table_as(partition_by.time_ingestion_partitioning, False, target_relation, compiled_code, language) }}\n {%- endcall -%}\n\n {% elif existing_relation.is_view %}\n {#-- There's no way to atomically replace a view with a table on BQ --#}\n {{ adapter.drop_relation(existing_relation) }}\n {%- call statement('main', language=language) -%}\n {{ bq_create_table_as(partition_by.time_ingestion_partitioning, False, target_relation, compiled_code, language) }}\n {%- endcall -%}\n\n {% elif full_refresh_mode %}\n {#-- If the partition/cluster config has changed, then we must drop and recreate --#}\n {% if not adapter.is_replaceable(existing_relation, partition_by, cluster_by) %}\n {% do log(\"Hard refreshing \" ~ existing_relation ~ \" because it is not replaceable\") %}\n {{ adapter.drop_relation(existing_relation) }}\n {% endif %}\n {%- call statement('main', language=language) -%}\n {{ bq_create_table_as(partition_by.time_ingestion_partitioning, False, target_relation, compiled_code, language) }}\n {%- endcall -%}\n\n {% else %}\n {%- if language == 'python' and strategy == 'insert_overwrite' -%}\n {#-- This lets us move forward assuming no python will be directly templated into a query --#}\n {%- set python_unsupported_msg -%}\n The 'insert_overwrite' strategy is not yet supported for python models.\n {%- endset %}\n {% do exceptions.raise_compiler_error(python_unsupported_msg) %}\n {%- endif -%}\n\n {% set tmp_relation_exists = false %}\n {% if on_schema_change != 'ignore' or language == 'python' %}\n {#-- Check first, since otherwise we may not build a temp table --#}\n {#-- Python always needs to create a temp table --#}\n {%- call statement('create_tmp_relation', language=language) -%}\n {{ declare_dbt_max_partition(this, partition_by, compiled_code, language) +\n bq_create_table_as(partition_by.time_ingestion_partitioning, True, tmp_relation, compiled_code, language)\n }}\n {%- endcall -%}\n {% set tmp_relation_exists = true %}\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, tmp_relation, existing_relation) %}\n {% endif %}\n\n {% if not dest_columns %}\n {% set dest_columns = adapter.get_columns_in_relation(existing_relation) %}\n {% endif %}\n {% if partition_by.time_ingestion_partitioning %}\n {% set dest_columns = adapter.add_time_ingestion_partition_column(dest_columns) %}\n {% endif %}\n {% set build_sql = bq_generate_incremental_build_sql(\n strategy, tmp_relation, target_relation, compiled_code, unique_key, partition_by, partitions, dest_columns, tmp_relation_exists, partition_by.copy_partitions, incremental_predicates\n ) %}\n\n {%- call statement('main') -%}\n {{ build_sql }}\n {% endcall %}\n\n {%- if language == 'python' and tmp_relation -%}\n {{ adapter.drop_relation(tmp_relation) }}\n {%- endif -%}\n\n {% endif %}\n\n {{ run_hooks(post_hooks) }}\n\n {% set target_relation = this.incorporate(type='table') %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh", "macro.dbt.load_relation", "macro.dbt.make_temp_relation", "macro.dbt_bigquery.dbt_bigquery_validate_get_incremental_strategy", "macro.dbt.incremental_validate_on_schema_change", "macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt_bigquery.bq_create_table_as", "macro.dbt_bigquery.declare_dbt_max_partition", "macro.dbt.process_schema_changes", "macro.dbt_bigquery.bq_generate_incremental_build_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8874948, "supported_languages": ["sql", "python"]}, "macro.dbt_bigquery.bigquery__snapshot_hash_arguments": {"name": "bigquery__snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/snapshot.sql", "original_file_path": "macros/materializations/snapshot.sql", "unique_id": "macro.dbt_bigquery.bigquery__snapshot_hash_arguments", "macro_sql": "{% macro bigquery__snapshot_hash_arguments(args) -%}\n to_hex(md5(concat({%- for arg in args -%}\n coalesce(cast({{ arg }} as string), ''){% if not loop.last %}, '|',{% endif -%}\n {%- endfor -%}\n )))\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.88833, "supported_languages": null}, "macro.dbt_bigquery.bigquery__create_columns": {"name": "bigquery__create_columns", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/snapshot.sql", "original_file_path": "macros/materializations/snapshot.sql", "unique_id": "macro.dbt_bigquery.bigquery__create_columns", "macro_sql": "{% macro bigquery__create_columns(relation, columns) %}\n {{ adapter.alter_table_add_columns(relation, columns) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.88867, "supported_languages": null}, "macro.dbt_bigquery.bigquery__post_snapshot": {"name": "bigquery__post_snapshot", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/snapshot.sql", "original_file_path": "macros/materializations/snapshot.sql", "unique_id": "macro.dbt_bigquery.bigquery__post_snapshot", "macro_sql": "{% macro bigquery__post_snapshot(staging_relation) %}\n -- Clean up the snapshot temp table\n {% do drop_relation(staging_relation) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.88896, "supported_languages": null}, "macro.dbt_bigquery.bq_generate_incremental_merge_build_sql": {"name": "bq_generate_incremental_merge_build_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/merge.sql", "original_file_path": "macros/materializations/incremental_strategy/merge.sql", "unique_id": "macro.dbt_bigquery.bq_generate_incremental_merge_build_sql", "macro_sql": "{% macro bq_generate_incremental_merge_build_sql(\n tmp_relation, target_relation, sql, unique_key, partition_by, dest_columns, tmp_relation_exists, incremental_predicates\n) %}\n {%- set source_sql -%}\n {%- if tmp_relation_exists -%}\n (\n select\n {% if partition_by.time_ingestion_partitioning -%}\n _PARTITIONTIME,\n {%- endif -%}\n * from {{ tmp_relation }}\n )\n {%- else -%} {#-- wrap sql in parens to make it a subquery --#}\n (\n {%- if partition_by.time_ingestion_partitioning -%}\n {{ wrap_with_time_ingestion_partitioning_sql(build_partition_time_exp(partition_by), sql, True) }}\n {%- else -%}\n {{sql}}\n {%- endif %}\n )\n {%- endif -%}\n {%- endset -%}\n\n {% set build_sql = get_merge_sql(target_relation, source_sql, unique_key, dest_columns, incremental_predicates) %}\n\n {{ return(build_sql) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_bigquery.wrap_with_time_ingestion_partitioning_sql", "macro.dbt_bigquery.build_partition_time_exp", "macro.dbt.get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.890954, "supported_languages": null}, "macro.dbt_bigquery.build_partition_time_exp": {"name": "build_partition_time_exp", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/common.sql", "original_file_path": "macros/materializations/incremental_strategy/common.sql", "unique_id": "macro.dbt_bigquery.build_partition_time_exp", "macro_sql": "{% macro build_partition_time_exp(partition_by) %}\n {% if partition_by.data_type == 'timestamp' %}\n {% set partition_value = partition_by.field %}\n {% else %}\n {% set partition_value = 'timestamp(' + partition_by.field + ')' %}\n {% endif %}\n {{ return({'value': partition_value, 'field': partition_by.field}) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.8921402, "supported_languages": null}, "macro.dbt_bigquery.declare_dbt_max_partition": {"name": "declare_dbt_max_partition", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/common.sql", "original_file_path": "macros/materializations/incremental_strategy/common.sql", "unique_id": "macro.dbt_bigquery.declare_dbt_max_partition", "macro_sql": "{% macro declare_dbt_max_partition(relation, partition_by, compiled_code, language='sql') %}\n\n {#-- TODO: revisit partitioning with python models --#}\n {%- if '_dbt_max_partition' in compiled_code and language == 'sql' -%}\n\n declare _dbt_max_partition {{ partition_by.data_type_for_partition() }} default (\n select max({{ partition_by.field }}) from {{ this }}\n where {{ partition_by.field }} is not null\n );\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.892847, "supported_languages": null}, "macro.dbt_bigquery.bq_generate_incremental_insert_overwrite_build_sql": {"name": "bq_generate_incremental_insert_overwrite_build_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "original_file_path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "unique_id": "macro.dbt_bigquery.bq_generate_incremental_insert_overwrite_build_sql", "macro_sql": "{% macro bq_generate_incremental_insert_overwrite_build_sql(\n tmp_relation, target_relation, sql, unique_key, partition_by, partitions, dest_columns, on_schema_change, copy_partitions\n) %}\n {% if partition_by is none %}\n {% set missing_partition_msg -%}\n The 'insert_overwrite' strategy requires the `partition_by` config.\n {%- endset %}\n {% do exceptions.raise_compiler_error(missing_partition_msg) %}\n {% endif %}\n\n {% set build_sql = bq_insert_overwrite_sql(\n tmp_relation, target_relation, sql, unique_key, partition_by, partitions, dest_columns, on_schema_change, copy_partitions\n ) %}\n\n {{ return(build_sql) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_bigquery.bq_insert_overwrite_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.896759, "supported_languages": null}, "macro.dbt_bigquery.bq_copy_partitions": {"name": "bq_copy_partitions", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "original_file_path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "unique_id": "macro.dbt_bigquery.bq_copy_partitions", "macro_sql": "{% macro bq_copy_partitions(tmp_relation, target_relation, partitions, partition_by) %}\n\n {% for partition in partitions %}\n {% if partition_by.granularity == 'hour' %}\n {% set partition = partition.strftime(\"%Y%m%d%H\") %}\n {% elif partition_by.granularity == 'day' %}\n {% set partition = partition.strftime(\"%Y%m%d\") %}\n {% elif partition_by.granularity == 'month' %}\n {% set partition = partition.strftime(\"%Y%m\") %}\n {% elif partition_by.granularity == 'year' %}\n {% set partition = partition.strftime(\"%Y\") %}\n {% endif %}\n {% set tmp_relation_partitioned = api.Relation.create(database=tmp_relation.database, schema=tmp_relation.schema, identifier=tmp_relation.table ~ '$' ~ partition, type=tmp_relation.type) %}\n {% set target_relation_partitioned = api.Relation.create(database=target_relation.database, schema=target_relation.schema, identifier=target_relation.table ~ '$' ~ partition, type=target_relation.type) %}\n {% do adapter.copy_table(tmp_relation_partitioned, target_relation_partitioned, \"table\") %}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.899429, "supported_languages": null}, "macro.dbt_bigquery.bq_insert_overwrite_sql": {"name": "bq_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "original_file_path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "unique_id": "macro.dbt_bigquery.bq_insert_overwrite_sql", "macro_sql": "{% macro bq_insert_overwrite_sql(\n tmp_relation, target_relation, sql, unique_key, partition_by, partitions, dest_columns, tmp_relation_exists, copy_partitions\n) %}\n {% if partitions is not none and partitions != [] %} {# static #}\n {{ bq_static_insert_overwrite_sql(tmp_relation, target_relation, sql, partition_by, partitions, dest_columns, copy_partitions) }}\n {% else %} {# dynamic #}\n {{ bq_dynamic_insert_overwrite_sql(tmp_relation, target_relation, sql, unique_key, partition_by, dest_columns, tmp_relation_exists, copy_partitions) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_bigquery.bq_static_insert_overwrite_sql", "macro.dbt_bigquery.bq_dynamic_insert_overwrite_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.900627, "supported_languages": null}, "macro.dbt_bigquery.bq_static_insert_overwrite_sql": {"name": "bq_static_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "original_file_path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "unique_id": "macro.dbt_bigquery.bq_static_insert_overwrite_sql", "macro_sql": "{% macro bq_static_insert_overwrite_sql(\n tmp_relation, target_relation, sql, partition_by, partitions, dest_columns, copy_partitions\n) %}\n\n {% set predicate -%}\n {{ partition_by.render_wrapped(alias='DBT_INTERNAL_DEST') }} in (\n {{ partitions | join (', ') }}\n )\n {%- endset %}\n\n {%- set source_sql -%}\n (\n {%- if partition_by.time_ingestion_partitioning -%}\n {{ wrap_with_time_ingestion_partitioning_sql(build_partition_time_exp(partition_by), sql, True) }}\n {%- else -%}\n {{sql}}\n {%- endif -%}\n )\n {%- endset -%}\n\n {% if copy_partitions %}\n {% do bq_copy_partitions(tmp_relation, target_relation, partitions, partition_by) %}\n {% else %}\n\n {#-- Because we're putting the model SQL _directly_ into the MERGE statement,\n we need to prepend the MERGE statement with the user-configured sql_header,\n which may be needed to resolve that model SQL (e.g. referencing a variable or UDF in the header)\n in the \"dynamic\" case, we save the model SQL result as a temp table first, wherein the\n sql_header is included by the create_table_as macro.\n #}\n {{ get_insert_overwrite_merge_sql(target_relation, source_sql, dest_columns, [predicate], include_sql_header=true) }}\n\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_bigquery.wrap_with_time_ingestion_partitioning_sql", "macro.dbt_bigquery.build_partition_time_exp", "macro.dbt_bigquery.bq_copy_partitions", "macro.dbt.get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.90224, "supported_languages": null}, "macro.dbt_bigquery.bq_dynamic_copy_partitions_insert_overwrite_sql": {"name": "bq_dynamic_copy_partitions_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "original_file_path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "unique_id": "macro.dbt_bigquery.bq_dynamic_copy_partitions_insert_overwrite_sql", "macro_sql": "{% macro bq_dynamic_copy_partitions_insert_overwrite_sql(\n tmp_relation, target_relation, sql, unique_key, partition_by, dest_columns, tmp_relation_exists, copy_partitions\n ) %}\n {# We run temp table creation in a separated script to move to partitions copy #}\n {%- call statement('create_tmp_relation_for_copy', language='sql') -%}\n {{ declare_dbt_max_partition(this, partition_by, sql, 'sql') +\n bq_create_table_as(partition_by.time_ingestion_partitioning, True, tmp_relation, sql, 'sql')\n }}\n {%- endcall %}\n {%- set partitions_sql -%}\n select distinct {{ partition_by.render_wrapped() }}\n from {{ tmp_relation }}\n {%- endset -%}\n {%- set partitions = run_query(partitions_sql).columns[0].values() -%}\n {# We copy the partitions #}\n {%- do bq_copy_partitions(tmp_relation, target_relation, partitions, partition_by) -%}\n -- Clean up the temp table\n drop table if exists {{ tmp_relation }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_bigquery.declare_dbt_max_partition", "macro.dbt_bigquery.bq_create_table_as", "macro.dbt.run_query", "macro.dbt_bigquery.bq_copy_partitions"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.903937, "supported_languages": null}, "macro.dbt_bigquery.bq_dynamic_insert_overwrite_sql": {"name": "bq_dynamic_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "original_file_path": "macros/materializations/incremental_strategy/insert_overwrite.sql", "unique_id": "macro.dbt_bigquery.bq_dynamic_insert_overwrite_sql", "macro_sql": "{% macro bq_dynamic_insert_overwrite_sql(tmp_relation, target_relation, sql, unique_key, partition_by, dest_columns, tmp_relation_exists, copy_partitions) %}\n {%- if copy_partitions is true %}\n {{ bq_dynamic_copy_partitions_insert_overwrite_sql(tmp_relation, target_relation, sql, unique_key, partition_by, dest_columns, tmp_relation_exists, copy_partitions) }}\n {% else -%}\n {% set predicate -%}\n {{ partition_by.render_wrapped(alias='DBT_INTERNAL_DEST') }} in unnest(dbt_partitions_for_replacement)\n {%- endset %}\n\n {%- set source_sql -%}\n (\n select\n {% if partition_by.time_ingestion_partitioning -%}\n _PARTITIONTIME,\n {%- endif -%}\n * from {{ tmp_relation }}\n )\n {%- endset -%}\n\n -- generated script to merge partitions into {{ target_relation }}\n declare dbt_partitions_for_replacement array<{{ partition_by.data_type_for_partition() }}>;\n\n {# have we already created the temp table to check for schema changes? #}\n {% if not tmp_relation_exists %}\n {{ declare_dbt_max_partition(this, partition_by, sql) }}\n\n -- 1. create a temp table with model data\n {{ bq_create_table_as(partition_by.time_ingestion_partitioning, True, tmp_relation, sql, 'sql') }}\n {% else %}\n -- 1. temp table already exists, we used it to check for schema changes\n {% endif %}\n\n -- 2. define partitions to update\n set (dbt_partitions_for_replacement) = (\n select as struct\n array_agg(distinct {{ partition_by.render_wrapped() }})\n from {{ tmp_relation }}\n );\n\n -- 3. run the merge statement\n {{ get_insert_overwrite_merge_sql(target_relation, source_sql, dest_columns, [predicate]) }};\n\n -- 4. clean up the temp table\n drop table if exists {{ tmp_relation }}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_bigquery.bq_dynamic_copy_partitions_insert_overwrite_sql", "macro.dbt_bigquery.declare_dbt_max_partition", "macro.dbt_bigquery.bq_create_table_as", "macro.dbt.get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.906188, "supported_languages": null}, "macro.dbt_bigquery.wrap_with_time_ingestion_partitioning_sql": {"name": "wrap_with_time_ingestion_partitioning_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "original_file_path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "unique_id": "macro.dbt_bigquery.wrap_with_time_ingestion_partitioning_sql", "macro_sql": "{% macro wrap_with_time_ingestion_partitioning_sql(partition_time_exp, sql, is_nested) %}\n\n select {{ partition_time_exp['value'] }} as _partitiontime, * EXCEPT({{ partition_time_exp['field'] }}) from (\n {{ sql }}\n ){%- if not is_nested -%};{%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.909899, "supported_languages": null}, "macro.dbt_bigquery.create_ingestion_time_partitioned_table_as_sql": {"name": "create_ingestion_time_partitioned_table_as_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "original_file_path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "unique_id": "macro.dbt_bigquery.create_ingestion_time_partitioned_table_as_sql", "macro_sql": "{% macro create_ingestion_time_partitioned_table_as_sql(temporary, relation, sql) -%}\n {%- set raw_partition_by = config.get('partition_by', none) -%}\n {%- set raw_cluster_by = config.get('cluster_by', none) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {%- set partition_config = adapter.parse_partition_by(raw_partition_by) -%}\n\n {%- set columns = get_columns_with_types_in_query_sql(sql) -%}\n {%- set table_dest_columns_csv = columns_without_partition_fields_csv(partition_config, columns) -%}\n\n {{ sql_header if sql_header is not none }}\n\n {% set ingestion_time_partition_config_raw = fromjson(tojson(raw_partition_by)) %}\n {% do ingestion_time_partition_config_raw.update({'field':'_PARTITIONTIME'}) %}\n\n {%- set ingestion_time_partition_config = adapter.parse_partition_by(ingestion_time_partition_config_raw) -%}\n\n create or replace table {{ relation }} ({{table_dest_columns_csv}})\n {{ partition_by(ingestion_time_partition_config) }}\n {{ cluster_by(raw_cluster_by) }}\n {{ bigquery_table_options(config, model, temporary) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_bigquery.get_columns_with_types_in_query_sql", "macro.dbt_bigquery.columns_without_partition_fields_csv", "macro.dbt_bigquery.partition_by", "macro.dbt_bigquery.cluster_by", "macro.dbt_bigquery.bigquery_table_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.911959, "supported_languages": null}, "macro.dbt_bigquery.get_quoted_with_types_csv": {"name": "get_quoted_with_types_csv", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "original_file_path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "unique_id": "macro.dbt_bigquery.get_quoted_with_types_csv", "macro_sql": "{% macro get_quoted_with_types_csv(columns) %}\n {% set quoted = [] %}\n {% for col in columns -%}\n {%- do quoted.append(adapter.quote(col.name) ~ \" \" ~ col.data_type) -%}\n {%- endfor %}\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}, "patch_path": null, "arguments": [], "created_at": 1690382049.913249, "supported_languages": null}, "macro.dbt_bigquery.columns_without_partition_fields_csv": {"name": "columns_without_partition_fields_csv", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "original_file_path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "unique_id": "macro.dbt_bigquery.columns_without_partition_fields_csv", "macro_sql": "{% macro columns_without_partition_fields_csv(partition_config, columns) -%}\n {%- set columns_no_partition = partition_config.reject_partition_field_column(columns) -%}\n {% set columns_names = get_quoted_with_types_csv(columns_no_partition) %}\n {{ return(columns_names) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_bigquery.get_quoted_with_types_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.913883, "supported_languages": null}, "macro.dbt_bigquery.bq_insert_into_ingestion_time_partitioned_table_sql": {"name": "bq_insert_into_ingestion_time_partitioned_table_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "original_file_path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "unique_id": "macro.dbt_bigquery.bq_insert_into_ingestion_time_partitioned_table_sql", "macro_sql": "{% macro bq_insert_into_ingestion_time_partitioned_table_sql(target_relation, sql) -%}\n {%- set partition_by = config.get('partition_by', none) -%}\n {% set dest_columns = adapter.get_columns_in_relation(target_relation) %}\n {%- set dest_columns_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n insert into {{ target_relation }} (_partitiontime, {{ dest_columns_csv }})\n {{ wrap_with_time_ingestion_partitioning_sql(build_partition_time_exp(partition_by), sql, False) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.get_quoted_csv", "macro.dbt_bigquery.wrap_with_time_ingestion_partitioning_sql", "macro.dbt_bigquery.build_partition_time_exp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.914966, "supported_languages": null}, "macro.dbt_bigquery.get_columns_with_types_in_query_sql": {"name": "get_columns_with_types_in_query_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "original_file_path": "macros/materializations/incremental_strategy/time_ingestion_tables.sql", "unique_id": "macro.dbt_bigquery.get_columns_with_types_in_query_sql", "macro_sql": "{% macro get_columns_with_types_in_query_sql(select_sql) %}\n {% set sql %}\n select * from (\n {{ select_sql }}\n ) as __dbt_sbq\n where false\n limit 0\n {% endset %}\n {{ return(adapter.get_columns_in_select_sql(sql)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.915501, "supported_languages": null}, "macro.dbt_bigquery.bigquery__except": {"name": "bigquery__except", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "unique_id": "macro.dbt_bigquery.bigquery__except", "macro_sql": "{% macro bigquery__except() %}\n\n except distinct\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.9158888, "supported_languages": null}, "macro.dbt_bigquery.bigquery__dateadd": {"name": "bigquery__dateadd", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt_bigquery.bigquery__dateadd", "macro_sql": "{% macro bigquery__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n datetime_add(\n cast( {{ from_date_or_timestamp }} as datetime),\n interval {{ interval }} {{ datepart }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.916364, "supported_languages": null}, "macro.dbt_bigquery.bigquery__current_timestamp": {"name": "bigquery__current_timestamp", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/timestamps.sql", "original_file_path": "macros/utils/timestamps.sql", "unique_id": "macro.dbt_bigquery.bigquery__current_timestamp", "macro_sql": "{% macro bigquery__current_timestamp() -%}\n current_timestamp()\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.916812, "supported_languages": null}, "macro.dbt_bigquery.bigquery__snapshot_string_as_time": {"name": "bigquery__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/timestamps.sql", "original_file_path": "macros/utils/timestamps.sql", "unique_id": "macro.dbt_bigquery.bigquery__snapshot_string_as_time", "macro_sql": "{% macro bigquery__snapshot_string_as_time(timestamp) -%}\n {%- set result = 'TIMESTAMP(\"' ~ timestamp ~ '\")' -%}\n {{ return(result) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.9172091, "supported_languages": null}, "macro.dbt_bigquery.bigquery__current_timestamp_backcompat": {"name": "bigquery__current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/timestamps.sql", "original_file_path": "macros/utils/timestamps.sql", "unique_id": "macro.dbt_bigquery.bigquery__current_timestamp_backcompat", "macro_sql": "{% macro bigquery__current_timestamp_backcompat() -%}\n current_timestamp\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.917387, "supported_languages": null}, "macro.dbt_bigquery.bigquery__intersect": {"name": "bigquery__intersect", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "unique_id": "macro.dbt_bigquery.bigquery__intersect", "macro_sql": "{% macro bigquery__intersect() %}\n\n intersect distinct\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.917614, "supported_languages": null}, "macro.dbt_bigquery.bigquery__escape_single_quotes": {"name": "bigquery__escape_single_quotes", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "unique_id": "macro.dbt_bigquery.bigquery__escape_single_quotes", "macro_sql": "{% macro bigquery__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\", \"\\\\'\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.918091, "supported_languages": null}, "macro.dbt_bigquery.bigquery__right": {"name": "bigquery__right", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "unique_id": "macro.dbt_bigquery.bigquery__right", "macro_sql": "{% macro bigquery__right(string_text, length_expression) %}\n\n case when {{ length_expression }} = 0\n then ''\n else\n substr(\n {{ string_text }},\n -1 * ({{ length_expression }})\n )\n end\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.918567, "supported_languages": null}, "macro.dbt_bigquery.bigquery__listagg": {"name": "bigquery__listagg", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt_bigquery.bigquery__listagg", "macro_sql": "{% macro bigquery__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n string_agg(\n {{ measure }},\n {{ delimiter_text }}\n {% if order_by_clause -%}\n {{ order_by_clause }}\n {%- endif %}\n {% if limit_num -%}\n limit {{ limit_num }}\n {%- endif %}\n )\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.919565, "supported_languages": null}, "macro.dbt_bigquery.bigquery__datediff": {"name": "bigquery__datediff", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt_bigquery.bigquery__datediff", "macro_sql": "{% macro bigquery__datediff(first_date, second_date, datepart) -%}\n\n {% if dbt_version[0] == 1 and dbt_version[2] >= 2 %}\n {{ return(dbt.datediff(first_date, second_date, datepart)) }}\n {% else %}\n\n datetime_diff(\n cast({{second_date}} as datetime),\n cast({{first_date}} as datetime),\n {{datepart}}\n )\n\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.921078, "supported_languages": null}, "macro.dbt_bigquery.bigquery__safe_cast": {"name": "bigquery__safe_cast", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt_bigquery.bigquery__safe_cast", "macro_sql": "{% macro bigquery__safe_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.92154, "supported_languages": null}, "macro.dbt_bigquery.bigquery__hash": {"name": "bigquery__hash", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt_bigquery.bigquery__hash", "macro_sql": "{% macro bigquery__hash(field) -%}\n to_hex({{dbt.default__hash(field)}})\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__hash"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.922168, "supported_languages": null}, "macro.dbt_bigquery.bigquery__position": {"name": "bigquery__position", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt_bigquery.bigquery__position", "macro_sql": "{% macro bigquery__position(substring_text, string_text) %}\n\n strpos(\n {{ string_text }},\n {{ substring_text }}\n\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.922571, "supported_languages": null}, "macro.dbt_bigquery.bigquery__array_concat": {"name": "bigquery__array_concat", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "unique_id": "macro.dbt_bigquery.bigquery__array_concat", "macro_sql": "{% macro bigquery__array_concat(array_1, array_2) -%}\n array_concat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.923058, "supported_languages": null}, "macro.dbt_bigquery.bigquery__bool_or": {"name": "bigquery__bool_or", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "unique_id": "macro.dbt_bigquery.bigquery__bool_or", "macro_sql": "{% macro bigquery__bool_or(expression) -%}\n\n logical_or({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.923603, "supported_languages": null}, "macro.dbt_bigquery.bigquery__split_part": {"name": "bigquery__split_part", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt_bigquery.bigquery__split_part", "macro_sql": "{% macro bigquery__split_part(string_text, delimiter_text, part_number) %}\n\n {% if part_number >= 0 %}\n split(\n {{ string_text }},\n {{ delimiter_text }}\n )[safe_offset({{ part_number - 1 }})]\n {% else %}\n split(\n {{ string_text }},\n {{ delimiter_text }}\n )[safe_offset(\n length({{ string_text }})\n - length(\n replace({{ string_text }}, {{ delimiter_text }}, '')\n ) + 1\n )]\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.925198, "supported_languages": null}, "macro.dbt_bigquery.bigquery__date_trunc": {"name": "bigquery__date_trunc", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt_bigquery.bigquery__date_trunc", "macro_sql": "{% macro bigquery__date_trunc(datepart, date) -%}\n timestamp_trunc(\n cast({{date}} as timestamp),\n {{datepart}}\n )\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.925688, "supported_languages": null}, "macro.dbt_bigquery.bigquery__array_construct": {"name": "bigquery__array_construct", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt_bigquery.bigquery__array_construct", "macro_sql": "{% macro bigquery__array_construct(inputs, data_type) -%}\n {% if inputs|length > 0 %}\n [ {{ inputs|join(' , ') }} ]\n {% else %}\n ARRAY<{{data_type}}>[]\n {% endif %}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.926778, "supported_languages": null}, "macro.dbt_bigquery.bigquery__array_append": {"name": "bigquery__array_append", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "unique_id": "macro.dbt_bigquery.bigquery__array_append", "macro_sql": "{% macro bigquery__array_append(array, new_element) -%}\n {{ array_concat(array, array_construct([new_element])) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.array_concat", "macro.dbt.array_construct"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.9273732, "supported_languages": null}, "macro.dbt_bigquery.bigquery__get_show_grant_sql": {"name": "bigquery__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt_bigquery.bigquery__get_show_grant_sql", "macro_sql": "{% macro bigquery__get_show_grant_sql(relation) %}\n {% set location = adapter.get_dataset_location(relation) %}\n {% set relation = relation.incorporate(location=location) %}\n\n select privilege_type, grantee\n from {{ relation.information_schema(\"OBJECT_PRIVILEGES\") }}\n where object_schema = \"{{ relation.dataset }}\"\n and object_name = \"{{ relation.identifier }}\"\n -- filter out current user\n and split(grantee, ':')[offset(1)] != session_user()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.9295108, "supported_languages": null}, "macro.dbt_bigquery.bigquery__get_grant_sql": {"name": "bigquery__get_grant_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt_bigquery.bigquery__get_grant_sql", "macro_sql": "\n\n\n{%- macro bigquery__get_grant_sql(relation, privilege, grantee) -%}\n grant `{{ privilege }}` on {{ relation.type }} {{ relation }} to {{ '\\\"' + grantee|join('\\\", \\\"') + '\\\"' }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.930955, "supported_languages": null}, "macro.dbt_bigquery.bigquery__get_revoke_sql": {"name": "bigquery__get_revoke_sql", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt_bigquery.bigquery__get_revoke_sql", "macro_sql": "{%- macro bigquery__get_revoke_sql(relation, privilege, grantee) -%}\n revoke `{{ privilege }}` on {{ relation.type }} {{ relation }} from {{ '\\\"' + grantee|join('\\\", \\\"') + '\\\"' }}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.932075, "supported_languages": null}, "macro.dbt_bigquery.bigquery__resolve_model_name": {"name": "bigquery__resolve_model_name", "resource_type": "macro", "package_name": "dbt_bigquery", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt_bigquery.bigquery__resolve_model_name", "macro_sql": "{% macro bigquery__resolve_model_name(input_model_name) -%}\n {{ input_model_name | string | replace('`', '') | replace('\"', '\\\"') }}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.933024, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.935989, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.936424, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.936744, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.937061, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.937375, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.938058, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.938706, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.939363, "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.default__snapshot_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.940405, "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 merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on DBT_INTERNAL_SOURCE.dbt_scd_id = DBT_INTERNAL_DEST.dbt_scd_id\n\n when matched\n and DBT_INTERNAL_DEST.dbt_valid_to is null\n and DBT_INTERNAL_SOURCE.dbt_change_type in ('update', 'delete')\n then update\n set dbt_valid_to = DBT_INTERNAL_SOURCE.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": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.9410079, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.946882, "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_bigquery.bigquery__snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.9472482, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.947728, "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, config, target_exists) %}\n {% set primary_key = config['unique_key'] %}\n {% set updated_at = config['updated_at'] %}\n {% set invalidate_hard_deletes = config.get('invalidate_hard_deletes', false) %}\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 }}.dbt_valid_from < {{ current_rel }}.{{ updated_at }})\n {%- endset %}\n\n {% set scd_id_expr = snapshot_hash_arguments([primary_key, updated_at]) %}\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 }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.949226, "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_bigquery.bigquery__snapshot_string_as_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.9495838, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.9499578, "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 select {{ check_cols_config | join(', ') }} from ({{ node['compiled_code'] }}) 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}, "patch_path": null, "arguments": [], "created_at": 1690382049.953204, "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, config, target_exists) %}\n {% set check_cols_config = config['check_cols'] %}\n {% set primary_key = config['unique_key'] %}\n {% set invalidate_hard_deletes = config.get('invalidate_hard_deletes', false) %}\n {% set updated_at = config.get('updated_at', 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_id_expr = snapshot_hash_arguments([primary_key, updated_at]) %}\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 }) %}\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}, "patch_path": null, "arguments": [], "created_at": 1690382049.955977, "supported_languages": null}, "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_bigquery.bigquery__create_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.963774, "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 }} add column \"{{ column.name }}\" {{ column.data_type }};\n {% endcall %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.96486, "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_bigquery.bigquery__post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.9655192, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.9658291, "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.default__get_true_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.966254, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.9668128, "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.default__snapshot_staging_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.96749, "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\n with snapshot_query as (\n\n {{ source_sql }}\n\n ),\n\n snapshotted_data as (\n\n select *,\n {{ strategy.unique_key }} as dbt_unique_key\n\n from {{ target_relation }}\n where dbt_valid_to is null\n\n ),\n\n insertions_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_unique_key,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}) as dbt_valid_to,\n {{ strategy.scd_id }} as dbt_scd_id\n\n from snapshot_query\n ),\n\n updates_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_unique_key,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n {{ strategy.updated_at }} as dbt_valid_to\n\n from snapshot_query\n ),\n\n {%- if strategy.invalidate_hard_deletes %}\n\n deletes_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_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\n from insertions_source_data as source_data\n left outer join snapshotted_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where snapshotted_data.dbt_unique_key is null\n or (\n snapshotted_data.dbt_unique_key is not null\n and (\n {{ strategy.row_changed }}\n )\n )\n\n ),\n\n updates as (\n\n select\n 'update' as dbt_change_type,\n source_data.*,\n snapshotted_data.dbt_scd_id\n\n from updates_source_data as source_data\n join snapshotted_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where (\n {{ strategy.row_changed }}\n )\n )\n\n {%- if strategy.invalidate_hard_deletes -%}\n ,\n\n deletes as (\n\n select\n 'delete' as dbt_change_type,\n source_data.*,\n {{ snapshot_get_time() }} as dbt_valid_from,\n {{ snapshot_get_time() }} as dbt_updated_at,\n {{ snapshot_get_time() }} as dbt_valid_to,\n snapshotted_data.dbt_scd_id\n\n from snapshotted_data\n left join deletes_source_data as source_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where source_data.dbt_unique_key is null\n )\n {%- endif %}\n\n select * from insertions\n union all\n select * from updates\n {%- if strategy.invalidate_hard_deletes %}\n union all\n select * from deletes\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.970182, "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.default__build_snapshot_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.970599, "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\n select *,\n {{ strategy.scd_id }} as dbt_scd_id,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}) as dbt_valid_to\n from (\n {{ sql }}\n ) sbq\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.971172, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.9721909, "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 {%- set config = model['config'] -%}\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 {% set strategy = strategy_macro(model, \"snapshotted_data\", \"source_data\", 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 final_sql = create_table_as(False, target_relation, build_sql) %}\n\n {% else %}\n\n {{ adapter.valid_snapshot_target(target_relation) }}\n\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 missing_columns = adapter.get_missing_columns(staging_table, target_relation)\n | rejectattr('name', 'equalto', 'dbt_change_type')\n | rejectattr('name', 'equalto', 'DBT_CHANGE_TYPE')\n | rejectattr('name', 'equalto', 'dbt_unique_key')\n | rejectattr('name', 'equalto', 'DBT_UNIQUE_KEY')\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', 'equalto', 'dbt_change_type')\n | rejectattr('name', 'equalto', 'DBT_CHANGE_TYPE')\n | rejectattr('name', 'equalto', 'dbt_unique_key')\n | rejectattr('name', 'equalto', 'DBT_UNIQUE_KEY')\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 {% 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.build_snapshot_staging_table", "macro.dbt.create_columns", "macro.dbt.snapshot_merge_sql", "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.983851, "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\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 {% set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database, type='table') -%} %}\n\n {% if old_relation %}\n {% do adapter.drop_relation(old_relation) %}\n {% endif %}\n\n {% call statement(auto_begin=True) %}\n {{ create_table_as(False, target_relation, sql) }}\n {% endcall %}\n\n {% do relations.append(target_relation) %}\n\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 %}\n\n {% endif %}\n\n {% set limit = config.get('limit') %}\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 {{ get_test_sql(main_sql, fail_calc, warn_if, error_if, limit)}}\n\n {%- endcall %}\n\n {{ return({'relations': relations}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.should_store_failures", "macro.dbt.statement", "macro.dbt.create_table_as", "macro.dbt.get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.9880269, "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.default__get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382049.988897, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.989573, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.9903018, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.991144, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.994177, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.9953449, "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\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.data_type != tc.data_type and not sc.can_expand_to(other_column=tc) %}\n {{ result.append( { 'column_name': tc.name, 'new_type': sc.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}, "patch_path": null, "arguments": [], "created_at": 1690382049.996755, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.99726, "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}, "patch_path": null, "arguments": [], "created_at": 1690382049.998838, "supported_languages": null}, "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.default__get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.008086, "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 unique_key_match %}\n DBT_INTERNAL_SOURCE.{{ unique_key }} = DBT_INTERNAL_DEST.{{ unique_key }}\n {% endset %}\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"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.011931, "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.default__get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.0127091, "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 sequence and unique_key is not string %}\n delete from {{target }}\n using {{ source }}\n where (\n {% for key in unique_key %}\n {{ source }}.{{ key }} = {{ target }}.{{ key }}\n {{ \"and \" if not loop.last}}\n {% endfor %}\n {% if incremental_predicates %}\n {% for predicate in incremental_predicates %}\n and {{ predicate }}\n {% endfor %}\n {% endif %}\n );\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\n {% endif %}\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}, "patch_path": null, "arguments": [], "created_at": 1690382050.0156522, "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.default__get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.0164301, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.018825, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.020514, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.02251, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.0233011, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.0240982, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.025038, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.0258718, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.026732, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.027348, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.027915, "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.default__get_incremental_default_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.028369, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.028704, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.029299, "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 {% 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 {% do run_query(get_create_table_as_sql(True, temp_relation, sql)) %}\n {% do adapter.expand_target_column_types(\n from_relation=temp_relation,\n to_relation=target_relation) %}\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 {% 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}, "patch_path": null, "arguments": [], "created_at": 1690382050.038976, "supported_languages": ["sql"]}, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.047252, "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\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}, "patch_path": null, "arguments": [], "created_at": 1690382050.049932, "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\n {%- set add_to_target_arr = schema_changes_dict['source_not_in_target'] -%}\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 {%- 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 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}, "patch_path": null, "arguments": [], "created_at": 1690382050.0525, "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\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}, "patch_path": null, "arguments": [], "created_at": 1690382050.054316, "supported_languages": null}, "macro.dbt.materialization_table_default": {"name": "materialization_table_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table/table.sql", "original_file_path": "macros/materializations/models/table/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 -- cleanup\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\n {% do create_indexes(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}, "patch_path": null, "arguments": [], "created_at": 1690382050.0595672, "supported_languages": ["sql"]}, "macro.dbt.get_create_table_as_sql": {"name": "get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.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}, "patch_path": null, "arguments": [], "created_at": 1690382050.060684, "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/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.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}, "patch_path": null, "arguments": [], "created_at": 1690382050.0611148, "supported_languages": null}, "macro.dbt.create_table_as": {"name": "create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.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_bigquery.bigquery__create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.0620759, "supported_languages": null}, "macro.dbt.default__create_table_as": {"name": "default__create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.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 as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.06353, "supported_languages": null}, "macro.dbt.materialization_view_default": {"name": "materialization_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/view.sql", "original_file_path": "macros/materializations/models/view/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 {{ adapter.rename_relation(existing_relation, backup_relation) }}\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}, "patch_path": null, "arguments": [], "created_at": 1690382050.071415, "supported_languages": ["sql"]}, "macro.dbt.handle_existing_table": {"name": "handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.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_bigquery.bigquery__handle_existing_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.072258, "supported_languages": null}, "macro.dbt.default__handle_existing_table": {"name": "default__handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.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 ~ \" 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}, "patch_path": null, "arguments": [], "created_at": 1690382050.072813, "supported_languages": null}, "macro.dbt.create_or_replace_view": {"name": "create_or_replace_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/create_or_replace_view.sql", "original_file_path": "macros/materializations/models/view/create_or_replace_view.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=True) %}\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}, "patch_path": null, "arguments": [], "created_at": 1690382050.076621, "supported_languages": null}, "macro.dbt.get_create_view_as_sql": {"name": "get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.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}, "patch_path": null, "arguments": [], "created_at": 1690382050.077375, "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/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.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}, "patch_path": null, "arguments": [], "created_at": 1690382050.0777369, "supported_languages": null}, "macro.dbt.create_view_as": {"name": "create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.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_bigquery.bigquery__create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.078201, "supported_languages": null}, "macro.dbt.default__create_view_as": {"name": "default__create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.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 }} as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.078759, "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 comparision 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)) }}\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}, "patch_path": null, "arguments": [], "created_at": 1690382050.085102, "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_bigquery.bigquery__create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.09252, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.094611, "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_bigquery.bigquery__reset_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.095142, "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 %}\n {% endif %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.096243, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.0966752, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.096978, "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.default__get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.097298, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.097566, "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.default__get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.097928, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.098196, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.099242, "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_bigquery.bigquery__load_csv_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.0996559, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.102918, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.103703, "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 is none -%}\n\n {{ node.name }}\n\n {%- else -%}\n\n {{ custom_alias_name | trim }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.104214, "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.default__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.105196, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.105788, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.106462, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.107266, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.107851, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.108792, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.109938, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.111012, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.112423, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.116257, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.117939, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1186829, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1220212, "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 Partiton 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}, "patch_path": null, "arguments": [], "created_at": 1690382050.125598, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.127558, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1282492, "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_bigquery.bigquery__except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.128901, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.129108, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.129879, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1303082, "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.default__concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.130971, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.131296, "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.default__length"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.132077, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.132405, "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_bigquery.bigquery__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.133624, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1340458, "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_bigquery.bigquery__intersect"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.134549, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.134727, "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_bigquery.bigquery__escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.135276, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1356008, "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_bigquery.bigquery__right"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.136272, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.136609, "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_bigquery.bigquery__listagg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.137995, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.138853, "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_bigquery.bigquery__datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.1395142, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.139874, "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_bigquery.bigquery__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.140457, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.140764, "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_bigquery.bigquery__hash"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.1414778, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.142026, "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.default__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.1425211, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.14319, "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.default__any_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.14376, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.144097, "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_bigquery.bigquery__position"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.144734, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.145032, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.145538, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.145771, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.147588, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1479301, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.148282, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.148614, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1489851, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.149327, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.149685, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.150191, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1505501, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.15088, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1512341, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.151553, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.151906, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1523042, "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_bigquery.bigquery__array_concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.1530082, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.153306, "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_bigquery.bigquery__bool_or"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.1538181, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.15405, "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.default__last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.154714, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.155276, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.155603, "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_bigquery.bigquery__split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.156529, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1569438, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.157428, "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_bigquery.bigquery__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.158227, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1585212, "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_bigquery.bigquery__array_construct"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.159401, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.160139, "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_bigquery.bigquery__array_append"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.1607208, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.161026, "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.default__create_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.161986, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.16241, "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_bigquery.bigquery__drop_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.163266, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.163742, "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_bigquery.bigquery__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.16506, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1655989, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.166124, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.166451, "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_bigquery.bigquery__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.166959, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1672058, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1678169, "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_bigquery.bigquery__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.168193, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.169239, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.169753, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1701472, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.171561, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.177887, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.178276, "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 {{ return(adapter.dispatch('make_temp_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.178794, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.179546, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.180105, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.180892, "supported_languages": null}, "macro.dbt.drop_relation": {"name": "drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.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_bigquery.bigquery__drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.181616, "supported_languages": null}, "macro.dbt.default__drop_relation": {"name": "default__drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__drop_relation", "macro_sql": "{% macro default__drop_relation(relation) -%}\n {% call statement('drop_relation', auto_begin=False) -%}\n drop {{ relation.type }} if exists {{ relation }} cascade\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.182302, "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.default__truncate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.182715, "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 }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.183212, "supported_languages": null}, "macro.dbt.rename_relation": {"name": "rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.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_bigquery.bigquery__rename_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.18365, "supported_languages": null}, "macro.dbt.default__rename_relation": {"name": "default__rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.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 }} rename to {{ target_name }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.1842618, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.1847968, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.186307, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.186798, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.187115, "supported_languages": null}, "macro.dbt.drop_relation_if_exists": {"name": "drop_relation_if_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.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}, "patch_path": null, "arguments": [], "created_at": 1690382050.187545, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.188426, "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').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.189376, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.192394, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.192653, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.193025, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.193274, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.194015, "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_bigquery.bigquery__get_show_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.1944242, "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 }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.1946611, "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_bigquery.bigquery__get_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.195147, "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 }} to {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.195563, "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_bigquery.bigquery__get_revoke_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.196053, "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 }} from {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.196469, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.196963, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.198524, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.198934, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.199466, "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.default__apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.1999638, "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 ~': 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}, "patch_path": null, "arguments": [], "created_at": 1690382050.202357, "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_bigquery.bigquery__alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.203507, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2038772, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.204341, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2047172, "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_bigquery.bigquery__persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.2053068, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.206346, "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_bigquery.bigquery__get_catalog"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.208705, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2092931, "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.default__information_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.209719, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.210091, "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_bigquery.bigquery__list_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.210495, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.211039, "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_bigquery.bigquery__check_schema_exists"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.2114902, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.21215, "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_bigquery.bigquery__list_relations_without_caching"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.212566, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.21293, "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_bigquery.bigquery__get_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.215777, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.216146, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.216873, "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.default__get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.217303, "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 select * from (\n {{ select_sql }}\n ) as __dbt_sbq\n where false\n limit 0\n {% endcall %}\n\n {{ return(load_result('get_columns_in_query').table.columns | map(attribute='name') | list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.2183628, "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_bigquery.bigquery__alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.218876, "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 }} add column {{ adapter.quote(tmp_column) }} {{ new_column_type }};\n update {{ relation }} set {{ adapter.quote(tmp_column) }} = {{ adapter.quote(column_name) }};\n alter table {{ relation }} drop column {{ adapter.quote(column_name) }} cascade;\n alter table {{ relation }} 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}, "patch_path": null, "arguments": [], "created_at": 1690382050.220194, "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.default__alter_relation_add_remove_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.220762, "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 }}\n\n {% for column in add_columns %}\n add column {{ column.name }} {{ column.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.name }}{{ ',' 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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2224798, "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_bigquery.bigquery__resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.224749, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2251542, "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 resolved = ref(*_ref) -%}\n {%- do ref_dict.update({_ref | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef ref(*args,dbt_load_df_function):\n refs = {{ ref_dict | tojson }}\n key = '.'.join(args)\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}, "patch_path": null, "arguments": [], "created_at": 1690382050.226219, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2271879, "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 -%}\nconfig_dict = {{ config_dict }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.228568, "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\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: ref(*args, 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}, "patch_path": null, "arguments": [], "created_at": 1690382050.229585, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2297652, "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_bigquery.bigquery__test_unique"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.230738, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.231285, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.231956, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.232575, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.233291, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.234367, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.235265, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2367492, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2374258, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.238165, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2399528, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.242358, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.243876, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.246281, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.247513, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2482848, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2496378, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.251495, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.252395, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.253459, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.254648, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.255701, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.256744, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.257618, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.258828, "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 where {{ column_name }} is not null\n limit 1\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}, "patch_path": null, "arguments": [], "created_at": 1690382050.260621, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.261766, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.263205, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2644851, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.265652, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.267058, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.268076, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.269757, "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 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": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.272743, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.275302, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2777028, "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) %}\n {{ return(adapter.dispatch('test_equality', 'dbt_utils')(model, compare_model, compare_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.2789812, "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) %}\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-- setup\n{%- do dbt_utils._is_relation(model, 'test_equality') -%}\n\n{#-\nIf the compare_cols arg is provided, we can run this test without querying the\ninformation schema\u00a0\u2014 this allows the model to be an ephemeral model\n-#}\n\n{%- if not compare_columns -%}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set compare_columns = adapter.get_columns_in_relation(model) | map(attribute='quoted') -%}\n{%- endif -%}\n\n{% set compare_cols_csv = compare_columns | join(', ') %}\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.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.2809129, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.28179, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.282431, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.287576, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.291074, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.291976, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2924092, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.293642, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.294265, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.294723, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.295286, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.295679, "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{#- 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}, "patch_path": null, "arguments": [], "created_at": 1690382050.2970319, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.298733, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.299963, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.301308, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3019578, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.302808, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.303613, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3048608, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3055072, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.30627, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.307734, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3096042, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.311452, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.312466, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.31289, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.31426, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3157198, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.318273, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.319615, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.320621, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.323918, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3276532, "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') -%}\n {{ return(adapter.dispatch('unpivot', 'dbt_utils')(relation, cast_to, exclude, remove, field_name, value_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__unpivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.330177, "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') -%}\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 select\n {%- for exclude_col in exclude %}\n {{ exclude_col }},\n {%- endfor %}\n\n cast('{{ col.column }}' as {{ dbt.type_string() }}) as {{ field_name }},\n cast( {% if col.data_type == 'boolean' %}\n {{ dbt.cast_bool_to_text(col.column) }}\n {% else %}\n {{ col.column }}\n {% endif %}\n as {{ cast_to }}) as {{ 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}, "patch_path": null, "arguments": [], "created_at": 1690382050.333962, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.334594, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3349, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.339936, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.348911, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.349785, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.350375, "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.bigquery__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.351677, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.352212, "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 {{ return(dbt_utils.default__deduplicate(relation, partition_by, order_by=order_by)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.3526819, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.353195, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.353604, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.354079, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.354882, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.355495, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3562372, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.357414, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3581061, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.358851, "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.bigquery__get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.361561, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.36239, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.364255, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3653738, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3672981, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.370572, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.372561, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.374455, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.375642, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.377237, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.378586, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.37965, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3801112, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.380883, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3822038, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3830888, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.384512, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.385468, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.385791, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.38611, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3864288, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.387409, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.389187, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.390934, "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.bigquery__haversine_distance"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.3915641, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.3933408, "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}, "patch_path": null, "arguments": [], "created_at": 1690382050.395138, "supported_languages": null}, "macro.spark_utils.get_tables": {"name": "get_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_tables", "macro_sql": "{% macro get_tables(table_regex_pattern='.*') %}\n\n {% set tables = [] %}\n {% for database in spark__list_schemas('not_used') %}\n {% for table in spark__list_relations_without_caching(database[0]) %}\n {% set db_tablename = database[0] ~ \".\" ~ table[1] %}\n {% set is_match = modules.re.match(table_regex_pattern, db_tablename) %}\n {% if is_match %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('type', 'TYPE', 'Type'))|first %}\n {% if table_type[1]|lower != 'view' %}\n {{ tables.append(db_tablename) }}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% endfor %}\n {{ return(tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.403384, "supported_languages": null}, "macro.spark_utils.get_delta_tables": {"name": "get_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_delta_tables", "macro_sql": "{% macro get_delta_tables(table_regex_pattern='.*') %}\n\n {% set delta_tables = [] %}\n {% for db_tablename in get_tables(table_regex_pattern) %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('provider', 'PROVIDER', 'Provider'))|first %}\n {% if table_type[1]|lower == 'delta' %}\n {{ delta_tables.append(db_tablename) }}\n {% endif %}\n {% endfor %}\n {{ return(delta_tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4049559, "supported_languages": null}, "macro.spark_utils.get_statistic_columns": {"name": "get_statistic_columns", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_statistic_columns", "macro_sql": "{% macro get_statistic_columns(table) %}\n\n {% call statement('input_columns', fetch_result=True) %}\n SHOW COLUMNS IN {{ table }}\n {% endcall %}\n {% set input_columns = load_result('input_columns').table %}\n\n {% set output_columns = [] %}\n {% for column in input_columns %}\n {% call statement('column_information', fetch_result=True) %}\n DESCRIBE TABLE {{ table }} `{{ column[0] }}`\n {% endcall %}\n {% if not load_result('column_information').table[1][1].startswith('struct') and not load_result('column_information').table[1][1].startswith('array') %}\n {{ output_columns.append('`' ~ column[0] ~ '`') }}\n {% endif %}\n {% endfor %}\n {{ return(output_columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.40696, "supported_languages": null}, "macro.spark_utils.spark_optimize_delta_tables": {"name": "spark_optimize_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_optimize_delta_tables", "macro_sql": "{% macro spark_optimize_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Optimizing \" ~ table) }}\n {% do run_query(\"optimize \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.408577, "supported_languages": null}, "macro.spark_utils.spark_vacuum_delta_tables": {"name": "spark_vacuum_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_vacuum_delta_tables", "macro_sql": "{% macro spark_vacuum_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Vacuuming \" ~ table) }}\n {% do run_query(\"vacuum \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.410188, "supported_languages": null}, "macro.spark_utils.spark_analyze_tables": {"name": "spark_analyze_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_analyze_tables", "macro_sql": "{% macro spark_analyze_tables(table_regex_pattern='.*') %}\n\n {% for table in get_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set columns = get_statistic_columns(table) | join(',') %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Analyzing \" ~ table) }}\n {% if columns != '' %}\n {% do run_query(\"analyze table \" ~ table ~ \" compute statistics for columns \" ~ columns) %}\n {% endif %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.spark_utils.get_statistic_columns", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.412211, "supported_languages": null}, "macro.spark_utils.spark__concat": {"name": "spark__concat", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/concat.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/concat.sql", "unique_id": "macro.spark_utils.spark__concat", "macro_sql": "{% macro spark__concat(fields) -%}\n concat({{ fields|join(', ') }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4126132, "supported_languages": null}, "macro.spark_utils.spark__type_numeric": {"name": "spark__type_numeric", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "unique_id": "macro.spark_utils.spark__type_numeric", "macro_sql": "{% macro spark__type_numeric() %}\n decimal(28, 6)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.412871, "supported_languages": null}, "macro.spark_utils.spark__dateadd": {"name": "spark__dateadd", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "unique_id": "macro.spark_utils.spark__dateadd", "macro_sql": "{% macro spark__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {%- set clock_component -%}\n {# make sure the dates + timestamps are real, otherwise raise an error asap #}\n to_unix_timestamp({{ spark_utils.assert_not_null('to_timestamp', from_date_or_timestamp) }})\n - to_unix_timestamp({{ spark_utils.assert_not_null('date', from_date_or_timestamp) }})\n {%- endset -%}\n\n {%- if datepart in ['day', 'week'] -%}\n \n {%- set multiplier = 7 if datepart == 'week' else 1 -%}\n\n to_timestamp(\n to_unix_timestamp(\n date_add(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ['month', 'quarter', 'year'] -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'month' -%} 1\n {%- elif datepart == 'quarter' -%} 3\n {%- elif datepart == 'year' -%} 12\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n to_unix_timestamp(\n add_months(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n {{ spark_utils.assert_not_null('to_unix_timestamp', from_date_or_timestamp) }}\n + cast({{interval}} * {{multiplier}} as int)\n )\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro dateadd not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.418438, "supported_languages": null}, "macro.spark_utils.spark__datediff": {"name": "spark__datediff", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datediff.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datediff.sql", "unique_id": "macro.spark_utils.spark__datediff", "macro_sql": "{% macro spark__datediff(first_date, second_date, datepart) %}\n\n {%- if datepart in ['day', 'week', 'month', 'quarter', 'year'] -%}\n \n {# make sure the dates are real, otherwise raise an error asap #}\n {% set first_date = spark_utils.assert_not_null('date', first_date) %}\n {% set second_date = spark_utils.assert_not_null('date', second_date) %}\n \n {%- endif -%}\n \n {%- if datepart == 'day' -%}\n \n datediff({{second_date}}, {{first_date}})\n \n {%- elif datepart == 'week' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(datediff({{second_date}}, {{first_date}})/7)\n else ceil(datediff({{second_date}}, {{first_date}})/7)\n end\n \n -- did we cross a week boundary (Sunday)?\n + case\n when {{first_date}} < {{second_date}} and dayofweek({{second_date}}) < dayofweek({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofweek({{second_date}}) > dayofweek({{first_date}}) then -1\n else 0 end\n\n {%- elif datepart == 'month' -%}\n\n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}})))\n else ceil(months_between(date({{second_date}}), date({{first_date}})))\n end\n \n -- did we cross a month boundary?\n + case\n when {{first_date}} < {{second_date}} and dayofmonth({{second_date}}) < dayofmonth({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofmonth({{second_date}}) > dayofmonth({{first_date}}) then -1\n else 0 end\n \n {%- elif datepart == 'quarter' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}}))/3)\n else ceil(months_between(date({{second_date}}), date({{first_date}}))/3)\n end\n \n -- did we cross a quarter boundary?\n + case\n when {{first_date}} < {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n < (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then 1\n when {{first_date}} > {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n > (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then -1\n else 0 end\n\n {%- elif datepart == 'year' -%}\n \n year({{second_date}}) - year({{first_date}})\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set divisor -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n case when {{first_date}} < {{second_date}}\n then ceil((\n {# make sure the timestamps are real, otherwise raise an error asap #}\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n else floor((\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n end\n \n {% if datepart == 'millisecond' %}\n + cast(date_format({{second_date}}, 'SSS') as int)\n - cast(date_format({{first_date}}, 'SSS') as int)\n {% endif %}\n \n {% if datepart == 'microsecond' %} \n {% set capture_str = '[0-9]{4}-[0-9]{2}-[0-9]{2}.[0-9]{2}:[0-9]{2}:[0-9]{2}.([0-9]{6})' %}\n -- Spark doesn't really support microseconds, so this is a massive hack!\n -- It will only work if the timestamp-string is of the format\n -- 'yyyy-MM-dd-HH mm.ss.SSSSSS'\n + cast(regexp_extract({{second_date}}, '{{capture_str}}', 1) as int)\n - cast(regexp_extract({{first_date}}, '{{capture_str}}', 1) as int) \n {% endif %}\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro datediff not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.431347, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp": {"name": "spark__current_timestamp", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp", "macro_sql": "{% macro spark__current_timestamp() %}\n current_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4316502, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp_in_utc": {"name": "spark__current_timestamp_in_utc", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp_in_utc", "macro_sql": "{% macro spark__current_timestamp_in_utc() %}\n unix_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.431828, "supported_languages": null}, "macro.spark_utils.spark__split_part": {"name": "spark__split_part", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/split_part.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/split_part.sql", "unique_id": "macro.spark_utils.spark__split_part", "macro_sql": "{% macro spark__split_part(string_text, delimiter_text, part_number) %}\n\n {% set delimiter_expr %}\n \n -- escape if starts with a special character\n case when regexp_extract({{ delimiter_text }}, '([^A-Za-z0-9])(.*)', 1) != '_'\n then concat('\\\\', {{ delimiter_text }})\n else {{ delimiter_text }} end\n \n {% endset %}\n\n {% set split_part_expr %}\n \n split(\n {{ string_text }},\n {{ delimiter_expr }}\n )[({{ part_number - 1 }})]\n \n {% endset %}\n \n {{ return(split_part_expr) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.433132, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_pattern": {"name": "spark__get_relations_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_pattern", "macro_sql": "{% macro spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n show table extended in {{ schema_pattern }} like '{{ table_pattern }}'\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=None,\n schema=row[0],\n identifier=row[1],\n type=('view' if 'Type: VIEW' in row[3] else 'table')\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"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.436147, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_prefix": {"name": "spark__get_relations_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_prefix", "macro_sql": "{% macro spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {% set table_pattern = table_pattern ~ '*' %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.436876, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_pattern": {"name": "spark__get_tables_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_pattern", "macro_sql": "{% macro spark__get_tables_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.437475, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_prefix": {"name": "spark__get_tables_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_prefix", "macro_sql": "{% macro spark__get_tables_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.438071, "supported_languages": null}, "macro.spark_utils.assert_not_null": {"name": "assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.assert_not_null", "macro_sql": "{% macro assert_not_null(function, arg) -%}\n {{ return(adapter.dispatch('assert_not_null', 'spark_utils')(function, arg)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.spark_utils.default__assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.438726, "supported_languages": null}, "macro.spark_utils.default__assert_not_null": {"name": "default__assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.default__assert_not_null", "macro_sql": "{% macro default__assert_not_null(function, arg) %}\n\n coalesce({{function}}({{arg}}), nvl2({{function}}({{arg}}), assert_true({{function}}({{arg}}) is not null), null))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.439174, "supported_languages": null}, "macro.spark_utils.spark__convert_timezone": {"name": "spark__convert_timezone", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/snowplow/convert_timezone.sql", "original_file_path": "macros/snowplow/convert_timezone.sql", "unique_id": "macro.spark_utils.spark__convert_timezone", "macro_sql": "{% macro spark__convert_timezone(in_tz, out_tz, in_timestamp) %}\n from_utc_timestamp(to_utc_timestamp({{in_timestamp}}, {{in_tz}}), {{out_tz}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.439614, "supported_languages": null}, "macro.fivetran_utils.enabled_vars": {"name": "enabled_vars", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars.sql", "original_file_path": "macros/enabled_vars.sql", "unique_id": "macro.fivetran_utils.enabled_vars", "macro_sql": "{% macro enabled_vars(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, True) == False %}\n {{ return(False) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(True) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4404612, "supported_languages": null}, "macro.fivetran_utils.percentile": {"name": "percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.percentile", "macro_sql": "{% macro percentile(percentile_field, partition_field, percent) -%}\n\n{{ adapter.dispatch('percentile', 'fivetran_utils') (percentile_field, partition_field, percent) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.bigquery__percentile"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4419699, "supported_languages": null}, "macro.fivetran_utils.default__percentile": {"name": "default__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.default__percentile", "macro_sql": "{% macro default__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.442347, "supported_languages": null}, "macro.fivetran_utils.redshift__percentile": {"name": "redshift__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.redshift__percentile", "macro_sql": "{% macro redshift__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.442724, "supported_languages": null}, "macro.fivetran_utils.bigquery__percentile": {"name": "bigquery__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.bigquery__percentile", "macro_sql": "{% macro bigquery__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.443582, "supported_languages": null}, "macro.fivetran_utils.postgres__percentile": {"name": "postgres__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.postgres__percentile", "macro_sql": "{% macro postgres__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n /* have to group by partition field */\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.444343, "supported_languages": null}, "macro.fivetran_utils.spark__percentile": {"name": "spark__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.spark__percentile", "macro_sql": "{% macro spark__percentile(percentile_field, partition_field, percent) %}\n\n percentile( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.444951, "supported_languages": null}, "macro.fivetran_utils.pivot_json_extract": {"name": "pivot_json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/pivot_json_extract.sql", "original_file_path": "macros/pivot_json_extract.sql", "unique_id": "macro.fivetran_utils.pivot_json_extract", "macro_sql": "{% macro pivot_json_extract(string, list_of_properties) %}\n\n{%- for property in list_of_properties -%}\n{%- if property is mapping -%}\nreplace( {{ fivetran_utils.json_extract(string, property.name) }}, '\"', '') as {{ property.alias if property.alias else property.name | replace(' ', '_') | replace('.', '_') | lower }}\n\n{%- else -%}\nreplace( {{ fivetran_utils.json_extract(string, property) }}, '\"', '') as {{ property | replace(' ', '_') | lower }}\n\n{%- endif -%}\n{%- if not loop.last -%},{%- endif %}\n{% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.44682, "supported_languages": null}, "macro.fivetran_utils.persist_pass_through_columns": {"name": "persist_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/persist_pass_through_columns.sql", "original_file_path": "macros/persist_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.persist_pass_through_columns", "macro_sql": "{% macro persist_pass_through_columns(pass_through_variable, identifier=none, transform='') %}\n\n{% if var(pass_through_variable, none) %}\n {% for field in var(pass_through_variable) %}\n , {{ transform ~ '(' ~ (identifier ~ '.' if identifier else '') ~ (field.alias if field.alias else field.name) ~ ')' }} as {{ field.alias if field.alias else field.name }}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.448278, "supported_languages": null}, "macro.fivetran_utils.json_parse": {"name": "json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.json_parse", "macro_sql": "{% macro json_parse(string, string_path) -%}\n\n{{ adapter.dispatch('json_parse', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.bigquery__json_parse"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4501271, "supported_languages": null}, "macro.fivetran_utils.default__json_parse": {"name": "default__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.default__json_parse", "macro_sql": "{% macro default__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.450819, "supported_languages": null}, "macro.fivetran_utils.redshift__json_parse": {"name": "redshift__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.redshift__json_parse", "macro_sql": "{% macro redshift__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4513972, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_parse": {"name": "bigquery__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.bigquery__json_parse", "macro_sql": "{% macro bigquery__json_parse(string, string_path) %}\n\n \n json_extract_scalar({{string}}, '$.{%- for s in string_path -%}{{ s }}{%- if not loop.last -%}.{%- endif -%}{%- endfor -%} ')\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.451908, "supported_languages": null}, "macro.fivetran_utils.postgres__json_parse": {"name": "postgres__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.postgres__json_parse", "macro_sql": "{% macro postgres__json_parse(string, string_path) %}\n\n {{string}}::json #>> '{ {%- for s in string_path -%}{{ s }}{%- if not loop.last -%},{%- endif -%}{%- endfor -%} }'\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4524128, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_parse": {"name": "snowflake__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.snowflake__json_parse", "macro_sql": "{% macro snowflake__json_parse(string, string_path) %}\n\n parse_json( {{string}} ) {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.452974, "supported_languages": null}, "macro.fivetran_utils.spark__json_parse": {"name": "spark__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.spark__json_parse", "macro_sql": "{% macro spark__json_parse(string, string_path) %}\n\n {{string}} : {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.453538, "supported_languages": null}, "macro.fivetran_utils.max_bool": {"name": "max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.max_bool", "macro_sql": "{% macro max_bool(boolean_field) -%}\n\n{{ adapter.dispatch('max_bool', 'fivetran_utils') (boolean_field) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.bigquery__max_bool"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4542332, "supported_languages": null}, "macro.fivetran_utils.default__max_bool": {"name": "default__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.default__max_bool", "macro_sql": "{% macro default__max_bool(boolean_field) %}\n\n bool_or( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.454456, "supported_languages": null}, "macro.fivetran_utils.snowflake__max_bool": {"name": "snowflake__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.snowflake__max_bool", "macro_sql": "{% macro snowflake__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.454674, "supported_languages": null}, "macro.fivetran_utils.bigquery__max_bool": {"name": "bigquery__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.bigquery__max_bool", "macro_sql": "{% macro bigquery__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.454894, "supported_languages": null}, "macro.fivetran_utils.calculated_fields": {"name": "calculated_fields", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/calculated_fields.sql", "original_file_path": "macros/calculated_fields.sql", "unique_id": "macro.fivetran_utils.calculated_fields", "macro_sql": "{% macro calculated_fields(variable) -%}\n\n{% if var(variable, none) %}\n {% for field in var(variable) %}\n , {{ field.transform_sql }} as {{ field.name }} \n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.455636, "supported_languages": null}, "macro.fivetran_utils.drop_schemas_automation": {"name": "drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.drop_schemas_automation", "macro_sql": "{% macro drop_schemas_automation(drop_target_schema=true) %}\n {{ return(adapter.dispatch('drop_schemas_automation', 'fivetran_utils')(drop_target_schema)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__drop_schemas_automation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.456769, "supported_languages": null}, "macro.fivetran_utils.default__drop_schemas_automation": {"name": "default__drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.default__drop_schemas_automation", "macro_sql": "{% macro default__drop_schemas_automation(drop_target_schema=true) %}\n\n{% set fetch_list_sql %}\n {% if target.type not in ('databricks', 'spark') %}\n select schema_name\n from \n {{ wrap_in_quotes(target.database) }}.INFORMATION_SCHEMA.SCHEMATA\n where lower(schema_name) like '{{ target.schema | lower }}{%- if not drop_target_schema -%}_{%- endif -%}%'\n {% else %}\n SHOW SCHEMAS LIKE '{{ target.schema }}{%- if not drop_target_schema -%}_{%- endif -%}*'\n {% endif %}\n{% endset %}\n\n{% set results = run_query(fetch_list_sql) %}\n\n{% if execute %}\n {% set results_list = results.columns[0].values() %}\n{% else %}\n {% set results_list = [] %}\n{% endif %}\n\n{% for schema_to_drop in results_list %}\n {% do adapter.drop_schema(api.Relation.create(database=target.database, schema=schema_to_drop)) %}\n {{ print('Schema ' ~ schema_to_drop ~ ' successfully dropped from the ' ~ target.database ~ ' database.\\n')}}\n{% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.wrap_in_quotes", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4588192, "supported_languages": null}, "macro.fivetran_utils.seed_data_helper": {"name": "seed_data_helper", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/seed_data_helper.sql", "original_file_path": "macros/seed_data_helper.sql", "unique_id": "macro.fivetran_utils.seed_data_helper", "macro_sql": "{% macro seed_data_helper(seed_name, warehouses) %}\n\n{% if target.type in warehouses %}\n {% for w in warehouses %}\n {% if target.type == w %}\n {{ return(ref(seed_name ~ \"_\" ~ w ~ \"\")) }}\n {% endif %}\n {% endfor %}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.45997, "supported_languages": null}, "macro.fivetran_utils.fill_pass_through_columns": {"name": "fill_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_pass_through_columns.sql", "original_file_path": "macros/fill_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.fill_pass_through_columns", "macro_sql": "{% macro fill_pass_through_columns(pass_through_variable) %}\n\n{% if var(pass_through_variable) %}\n {% for field in var(pass_through_variable) %}\n {% if field is mapping %}\n {% if field.transform_sql %}\n , {{ field.transform_sql }} as {{ field.alias if field.alias else field.name }}\n {% else %}\n , {{ field.alias if field.alias else field.name }}\n {% endif %}\n {% else %}\n , {{ field }}\n {% endif %}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.461453, "supported_languages": null}, "macro.fivetran_utils.string_agg": {"name": "string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.string_agg", "macro_sql": "{% macro string_agg(field_to_agg, delimiter) -%}\n\n{{ adapter.dispatch('string_agg', 'fivetran_utils') (field_to_agg, delimiter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__string_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.462265, "supported_languages": null}, "macro.fivetran_utils.default__string_agg": {"name": "default__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.default__string_agg", "macro_sql": "{% macro default__string_agg(field_to_agg, delimiter) %}\n string_agg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.462548, "supported_languages": null}, "macro.fivetran_utils.snowflake__string_agg": {"name": "snowflake__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.snowflake__string_agg", "macro_sql": "{% macro snowflake__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.462826, "supported_languages": null}, "macro.fivetran_utils.redshift__string_agg": {"name": "redshift__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.redshift__string_agg", "macro_sql": "{% macro redshift__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4631019, "supported_languages": null}, "macro.fivetran_utils.spark__string_agg": {"name": "spark__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.spark__string_agg", "macro_sql": "{% macro spark__string_agg(field_to_agg, delimiter) %}\n -- collect set will remove duplicates\n replace(replace(replace(cast( collect_set({{ field_to_agg }}) as string), '[', ''), ']', ''), ', ', {{ delimiter }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4635541, "supported_languages": null}, "macro.fivetran_utils.timestamp_diff": {"name": "timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.timestamp_diff", "macro_sql": "{% macro timestamp_diff(first_date, second_date, datepart) %}\n {{ adapter.dispatch('timestamp_diff', 'fivetran_utils')(first_date, second_date, datepart) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.bigquery__timestamp_diff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.467751, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_diff": {"name": "default__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.default__timestamp_diff", "macro_sql": "{% macro default__timestamp_diff(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}, "patch_path": null, "arguments": [], "created_at": 1690382050.468105, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_diff": {"name": "redshift__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_diff", "macro_sql": "{% macro redshift__timestamp_diff(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}, "patch_path": null, "arguments": [], "created_at": 1690382050.468456, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_diff": {"name": "bigquery__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_diff", "macro_sql": "{% macro bigquery__timestamp_diff(first_date, second_date, datepart) %}\n\n timestamp_diff(\n {{second_date}},\n {{first_date}},\n {{datepart}}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.46879, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_diff": {"name": "postgres__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_diff", "macro_sql": "{% macro postgres__timestamp_diff(first_date, second_date, datepart) %}\n\n {% if datepart == 'year' %}\n (date_part('year', ({{second_date}})::date) - date_part('year', ({{first_date}})::date))\n {% elif datepart == 'quarter' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 4 + date_part('quarter', ({{second_date}})::date) - date_part('quarter', ({{first_date}})::date))\n {% elif datepart == 'month' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 12 + date_part('month', ({{second_date}})::date) - date_part('month', ({{first_date}})::date))\n {% elif datepart == 'day' %}\n (({{second_date}})::date - ({{first_date}})::date)\n {% elif datepart == 'week' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} / 7 + case\n when date_part('dow', ({{first_date}})::timestamp) <= date_part('dow', ({{second_date}})::timestamp) then\n case when {{first_date}} <= {{second_date}} then 0 else -1 end\n else\n case when {{first_date}} <= {{second_date}} then 1 else 0 end\n end)\n {% elif datepart == 'hour' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} * 24 + date_part('hour', ({{second_date}})::timestamp) - date_part('hour', ({{first_date}})::timestamp))\n {% elif datepart == 'minute' %}\n ({{ dbt.datediff(first_date, second_date, 'hour') }} * 60 + date_part('minute', ({{second_date}})::timestamp) - date_part('minute', ({{first_date}})::timestamp))\n {% elif datepart == 'second' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60 + floor(date_part('second', ({{second_date}})::timestamp)) - floor(date_part('second', ({{first_date}})::timestamp)))\n {% elif datepart == 'millisecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000 + floor(date_part('millisecond', ({{second_date}})::timestamp)) - floor(date_part('millisecond', ({{first_date}})::timestamp)))\n {% elif datepart == 'microsecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000000 + floor(date_part('microsecond', ({{second_date}})::timestamp)) - floor(date_part('microsecond', ({{first_date}})::timestamp)))\n {% else %}\n {{ exceptions.raise_compiler_error(\"Unsupported datepart for macro datediff in postgres: {!r}\".format(datepart)) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4725592, "supported_languages": null}, "macro.fivetran_utils.try_cast": {"name": "try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.try_cast", "macro_sql": "{% macro try_cast(field, type) %}\n {{ adapter.dispatch('try_cast', 'fivetran_utils') (field, type) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.bigquery__try_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.473922, "supported_languages": null}, "macro.fivetran_utils.default__safe_cast": {"name": "default__safe_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.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}, "patch_path": null, "arguments": [], "created_at": 1690382050.474219, "supported_languages": null}, "macro.fivetran_utils.redshift__try_cast": {"name": "redshift__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.redshift__try_cast", "macro_sql": "{% macro redshift__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when trim({{field}}) ~ '^(0|[1-9][0-9]*)$' then trim({{field}})\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.474803, "supported_languages": null}, "macro.fivetran_utils.postgres__try_cast": {"name": "postgres__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.postgres__try_cast", "macro_sql": "{% macro postgres__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.475399, "supported_languages": null}, "macro.fivetran_utils.snowflake__try_cast": {"name": "snowflake__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.snowflake__try_cast", "macro_sql": "{% macro snowflake__try_cast(field, type) %}\n try_cast(cast({{field}} as varchar) as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4756858, "supported_languages": null}, "macro.fivetran_utils.bigquery__try_cast": {"name": "bigquery__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.bigquery__try_cast", "macro_sql": "{% macro bigquery__try_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.475956, "supported_languages": null}, "macro.fivetran_utils.spark__try_cast": {"name": "spark__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.spark__try_cast", "macro_sql": "{% macro spark__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4762292, "supported_languages": null}, "macro.fivetran_utils.source_relation": {"name": "source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.source_relation", "macro_sql": "{% macro source_relation(union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('source_relation', 'fivetran_utils') (union_schema_variable, union_database_variable) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.477129, "supported_languages": null}, "macro.fivetran_utils.default__source_relation": {"name": "default__source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.default__source_relation", "macro_sql": "{% macro default__source_relation(union_schema_variable, union_database_variable) %}\n\n{% if var(union_schema_variable, none) %}\n, case\n {% for schema in var(union_schema_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%.{{ schema|lower }}.%' then '{{ schema|lower }}'\n {% endfor %}\n end as source_relation\n{% elif var(union_database_variable, none) %}\n, case\n {% for database in var(union_database_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%{{ database|lower }}.%' then '{{ database|lower }}'\n {% endfor %}\n end as source_relation\n{% else %}\n, cast('' as {{ dbt.type_string() }}) as source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.478345, "supported_languages": null}, "macro.fivetran_utils.first_value": {"name": "first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.first_value", "macro_sql": "{% macro first_value(first_value_field, partition_field, order_by_field, order=\"asc\") -%}\n\n{{ adapter.dispatch('first_value', 'fivetran_utils') (first_value_field, partition_field, order_by_field, order) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__first_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4792619, "supported_languages": null}, "macro.fivetran_utils.default__first_value": {"name": "default__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.default__first_value", "macro_sql": "{% macro default__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4797068, "supported_languages": null}, "macro.fivetran_utils.redshift__first_value": {"name": "redshift__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.redshift__first_value", "macro_sql": "{% macro redshift__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} , {{ partition_field }} rows unbounded preceding )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.480194, "supported_languages": null}, "macro.fivetran_utils.add_dbt_source_relation": {"name": "add_dbt_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_dbt_source_relation.sql", "original_file_path": "macros/add_dbt_source_relation.sql", "unique_id": "macro.fivetran_utils.add_dbt_source_relation", "macro_sql": "{% macro add_dbt_source_relation() %}\n\n{% if var('union_schemas', none) or var('union_databases', none) %}\n, _dbt_source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.480732, "supported_languages": null}, "macro.fivetran_utils.add_pass_through_columns": {"name": "add_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_pass_through_columns.sql", "original_file_path": "macros/add_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.add_pass_through_columns", "macro_sql": "{% macro add_pass_through_columns(base_columns, pass_through_var) %}\n\n {% if pass_through_var %}\n\n {% for column in pass_through_var %}\n\n {% if column is mapping %}\n\n {% if column.alias %}\n\n {% do base_columns.append({ \"name\": column.name, \"alias\": column.alias, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column.name, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n \n {% endif %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column, \"datatype\": dbt.type_string()}) %}\n\n {% endif %}\n\n {% endfor %}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4830441, "supported_languages": null}, "macro.fivetran_utils.union_relations": {"name": "union_relations", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_relations", "macro_sql": "{%- macro union_relations(relations, aliases=none, column_override=none, include=[], exclude=[], source_column_name=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 {%- set source_column_name = source_column_name if source_column_name is not none else '_dbt_source_relation' -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(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 in exclude -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column not in include -%}\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\n {%- for relation in relations %}\n\n (\n select\n\n cast({{ dbt.string_literal(relation) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\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 {{ aliases[loop.index0] if aliases else relation }}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.49057, "supported_languages": null}, "macro.fivetran_utils.union_tables": {"name": "union_tables", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_tables", "macro_sql": "{%- macro union_tables(tables, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_table') -%}\n\n {%- do exceptions.warn(\"Warning: the `union_tables` macro is no longer supported and will be deprecated in a future release of dbt-utils. Use the `union_relations` macro instead\") -%}\n\n {{ return(dbt_utils.union_relations(tables, column_override, include, exclude, source_column_name)) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.491334, "supported_languages": null}, "macro.fivetran_utils.snowflake_seed_data": {"name": "snowflake_seed_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/snowflake_seed_data.sql", "original_file_path": "macros/snowflake_seed_data.sql", "unique_id": "macro.fivetran_utils.snowflake_seed_data", "macro_sql": "{% macro snowflake_seed_data(seed_name) %}\n\n{% if target.type == 'snowflake' %}\n{{ return(ref(seed_name ~ '_snowflake')) }}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.492142, "supported_languages": null}, "macro.fivetran_utils.fill_staging_columns": {"name": "fill_staging_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.fill_staging_columns", "macro_sql": "{% macro fill_staging_columns(source_columns, staging_columns) -%}\n\n{%- set source_column_names = source_columns|map(attribute='name')|map('lower')|list -%}\n\n{%- for column in staging_columns %}\n {% if column.name|lower in source_column_names -%}\n {{ fivetran_utils.quote_column(column) }} as \n {%- if 'alias' in column %} {{ column.alias }} {% else %} {{ fivetran_utils.quote_column(column) }} {%- endif -%}\n {%- else -%}\n cast(null as {{ column.datatype }})\n {%- if 'alias' in column %} as {{ column.alias }} {% else %} as {{ fivetran_utils.quote_column(column) }} {% endif -%}\n {%- endif -%}\n {%- if not loop.last -%} , {% endif -%}\n{% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.quote_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.495052, "supported_languages": null}, "macro.fivetran_utils.quote_column": {"name": "quote_column", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.quote_column", "macro_sql": "{% macro quote_column(column) %}\n {% if 'quote' in column %}\n {% if column.quote %}\n {% if target.type in ('bigquery', 'spark', 'databricks') %}\n `{{ column.name }}`\n {% elif target.type == 'snowflake' %}\n \"{{ column.name | upper }}\"\n {% else %}\n \"{{ column.name }}\"\n {% endif %}\n {% else %}\n {{ column.name }}\n {% endif %}\n {% else %}\n {{ column.name }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.49631, "supported_languages": null}, "macro.fivetran_utils.json_extract": {"name": "json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.json_extract", "macro_sql": "{% macro json_extract(string, string_path) -%}\n\n{{ adapter.dispatch('json_extract', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.bigquery__json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.497368, "supported_languages": null}, "macro.fivetran_utils.default__json_extract": {"name": "default__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.default__json_extract", "macro_sql": "{% macro default__json_extract(string, string_path) %}\n\n json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} )\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.497731, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_extract": {"name": "snowflake__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.snowflake__json_extract", "macro_sql": "{% macro snowflake__json_extract(string, string_path) %}\n\n json_extract_path_text(try_parse_json( {{string}} ), {{ \"'\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4980989, "supported_languages": null}, "macro.fivetran_utils.redshift__json_extract": {"name": "redshift__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.redshift__json_extract", "macro_sql": "{% macro redshift__json_extract(string, string_path) %}\n\n case when is_valid_json( {{string}} ) then json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} ) else null end\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.4984891, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_extract": {"name": "bigquery__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.bigquery__json_extract", "macro_sql": "{% macro bigquery__json_extract(string, string_path) %}\n\n json_extract_scalar({{string}}, {{ \"'$.\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.49884, "supported_languages": null}, "macro.fivetran_utils.postgres__json_extract": {"name": "postgres__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.postgres__json_extract", "macro_sql": "{% macro postgres__json_extract(string, string_path) %}\n\n {{string}}::json->>{{\"'\" ~ string_path ~ \"'\" }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.499192, "supported_languages": null}, "macro.fivetran_utils.collect_freshness": {"name": "collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.collect_freshness", "macro_sql": "{% macro collect_freshness(source, loaded_at_field, filter) %}\n {{ return(adapter.dispatch('collect_freshness')(source, loaded_at_field, filter))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.500433, "supported_languages": null}, "macro.fivetran_utils.default__collect_freshness": {"name": "default__collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.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\n {%- set enabled_array = [] -%}\n {% for node in graph.sources.values() %}\n {% if node.identifier == source.identifier %}\n {% if (node.meta['is_enabled'] | default(true)) %}\n {%- do enabled_array.append(1) -%}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% set is_enabled = (enabled_array != []) %}\n\n select\n {% if is_enabled %}\n max({{ loaded_at_field }})\n {% else %} \n {{ current_timestamp() }} {% endif %} as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n\n {% if is_enabled %}\n from {{ source }}\n {% if filter %}\n where {{ filter }}\n {% endif %}\n {% endif %}\n\n {% endcall %}\n {{ return(load_result('collect_freshness').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.5026538, "supported_languages": null}, "macro.fivetran_utils.timestamp_add": {"name": "timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.timestamp_add", "macro_sql": "{% macro timestamp_add(datepart, interval, from_timestamp) -%}\n\n{{ adapter.dispatch('timestamp_add', 'fivetran_utils') (datepart, interval, from_timestamp) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.bigquery__timestamp_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.503867, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_add": {"name": "default__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.default__timestamp_add", "macro_sql": "{% macro default__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestampadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.504259, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_add": {"name": "bigquery__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_add", "macro_sql": "{% macro bigquery__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestamp_add({{ from_timestamp }}, interval {{ interval }} {{ datepart }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.504629, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_add": {"name": "redshift__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_add", "macro_sql": "{% macro redshift__timestamp_add(datepart, interval, from_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.505003, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_add": {"name": "postgres__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_add", "macro_sql": "{% macro postgres__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ from_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.505379, "supported_languages": null}, "macro.fivetran_utils.spark__timestamp_add": {"name": "spark__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.spark__timestamp_add", "macro_sql": "{% macro spark__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ dbt.dateadd(datepart, interval, from_timestamp) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.5057878, "supported_languages": null}, "macro.fivetran_utils.ceiling": {"name": "ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.ceiling", "macro_sql": "{% macro ceiling(num) -%}\n\n{{ adapter.dispatch('ceiling', 'fivetran_utils') (num) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__ceiling"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.506337, "supported_languages": null}, "macro.fivetran_utils.default__ceiling": {"name": "default__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.default__ceiling", "macro_sql": "{% macro default__ceiling(num) %}\n ceiling({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.506582, "supported_languages": null}, "macro.fivetran_utils.snowflake__ceiling": {"name": "snowflake__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.snowflake__ceiling", "macro_sql": "{% macro snowflake__ceiling(num) %}\n ceil({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.5068202, "supported_languages": null}, "macro.fivetran_utils.remove_prefix_from_columns": {"name": "remove_prefix_from_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/remove_prefix_from_columns.sql", "original_file_path": "macros/remove_prefix_from_columns.sql", "unique_id": "macro.fivetran_utils.remove_prefix_from_columns", "macro_sql": "{% macro remove_prefix_from_columns(columns, prefix='', exclude=[]) %}\n\n {%- for col in columns if col.name not in exclude -%}\n {%- if col.name[:prefix|length]|lower == prefix -%}\n {{ col.name }} as {{ col.name[prefix|length:] }}\n {%- else -%}\n {{ col.name }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.508167, "supported_languages": null}, "macro.fivetran_utils.union_data": {"name": "union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.union_data", "macro_sql": "{%- macro union_data(table_identifier, database_variable, schema_variable, default_database, default_schema, default_variable, union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('union_data', 'fivetran_utils') (\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.default__union_data"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.513765, "supported_languages": null}, "macro.fivetran_utils.default__union_data": {"name": "default__union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.default__union_data", "macro_sql": "{%- macro default__union_data(\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) -%}\n\n{%- if var(union_schema_variable, none) -%}\n\n {%- set relations = [] -%}\n \n {%- if var(union_schema_variable) is string -%}\n {%- set trimmed = var(union_schema_variable)|trim('[')|trim(']') -%}\n {%- set schemas = trimmed.split(',')|map('trim',\" \")|map('trim','\"')|map('trim',\"'\") -%}\n {%- else -%}\n {%- set schemas = var(union_schema_variable) -%}\n {%- endif -%}\n\n {%- for schema in var(union_schema_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else var(database_variable, default_database),\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else schema,\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n \n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n \n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- elif var(union_database_variable, none) -%}\n\n {%- set relations = [] -%}\n\n {%- for database in var(union_database_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else database,\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else var(schema_variable, default_schema),\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n\n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n\n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- else -%}\n {% set exception_schemas = {\"linkedin_company_pages\": \"linkedin_pages\", \"instagram_business_pages\": \"instagram_business\"} %}\n {% set relation = namespace(value=\"\") %}\n {% if default_schema in exception_schemas.keys() %}\n {% for corrected_schema_name in exception_schemas.items() %} \n {% if default_schema in corrected_schema_name %}\n {# In order for this macro to effectively work within upstream integration tests (mainly used by the Fivetran dbt package maintainers), this identifier variable selection is required to use the macro with different identifier names. #}\n {% set identifier_var = corrected_schema_name[1] + \"_\" + table_identifier + \"_identifier\" %}\n {%- set relation.value=adapter.get_relation(\n database=source(corrected_schema_name[1], table_identifier).database,\n schema=source(corrected_schema_name[1], table_identifier).schema,\n identifier=var(identifier_var, table_identifier)\n ) -%}\n {% endif %}\n {% endfor %}\n {% else %}\n {# In order for this macro to effectively work within upstream integration tests (mainly used by the Fivetran dbt package maintainers), this identifier variable selection is required to use the macro with different identifier names. #}\n {% set identifier_var = default_schema + \"_\" + table_identifier + \"_identifier\" %}\n {# Unfortunately the Twitter Organic identifiers were misspelled. As such, we will need to account for this in the model. This will be adjusted in the Twitter Organic package, but to ensure backwards compatibility, this needs to be included. #}\n {% if var(identifier_var, none) is none %} \n {% set identifier_var = default_schema + \"_\" + table_identifier + \"_identifer\" %}\n {% endif %}\n {%- set relation.value=adapter.get_relation(\n database=source(default_schema, table_identifier).database,\n schema=source(default_schema, table_identifier).schema,\n identifier=var(identifier_var, table_identifier)\n ) -%}\n {% endif %}\n{%- set table_exists=relation.value is not none -%}\n\n{%- if table_exists -%}\n select * \n from {{ relation.value }}\n{%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n{%- endif -%}\n{%- endif -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.523891, "supported_languages": null}, "macro.fivetran_utils.dummy_coalesce_value": {"name": "dummy_coalesce_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/dummy_coalesce_value.sql", "original_file_path": "macros/dummy_coalesce_value.sql", "unique_id": "macro.fivetran_utils.dummy_coalesce_value", "macro_sql": "{% macro dummy_coalesce_value(column) %}\n\n{% set coalesce_value = {\n 'STRING': \"'DUMMY_STRING'\",\n 'BOOLEAN': 'null',\n 'INT': 999999999,\n 'FLOAT': 999999999.99,\n 'TIMESTAMP': 'cast(\"2099-12-31\" as timestamp)',\n 'DATE': 'cast(\"2099-12-31\" as date)',\n} %}\n\n{% if column.is_float() %}\n{{ return(coalesce_value['FLOAT']) }}\n\n{% elif column.is_numeric() %}\n{{ return(coalesce_value['INT']) }}\n\n{% elif column.is_string() %}\n{{ return(coalesce_value['STRING']) }}\n\n{% elif column.data_type|lower == 'boolean' %}\n{{ return(coalesce_value['BOOLEAN']) }}\n\n{% elif 'timestamp' in column.data_type|lower %}\n{{ return(coalesce_value['TIMESTAMP']) }}\n\n{% elif 'date' in column.data_type|lower %}\n{{ return(coalesce_value['DATE']) }}\n\n{% elif 'int' in column.data_type|lower %}\n{{ return(coalesce_value['INT']) }}\n\n{% endif %}\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.526901, "supported_languages": null}, "macro.fivetran_utils.wrap_in_quotes": {"name": "wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.wrap_in_quotes", "macro_sql": "{%- macro wrap_in_quotes(object_to_quote) -%}\n\n{{ return(adapter.dispatch('wrap_in_quotes', 'fivetran_utils')(object_to_quote)) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.default__wrap_in_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.527613, "supported_languages": null}, "macro.fivetran_utils.default__wrap_in_quotes": {"name": "default__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.default__wrap_in_quotes", "macro_sql": "{%- macro default__wrap_in_quotes(object_to_quote) -%}\n{# bigquery, spark, databricks #}\n `{{ object_to_quote }}`\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.527873, "supported_languages": null}, "macro.fivetran_utils.snowflake__wrap_in_quotes": {"name": "snowflake__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.snowflake__wrap_in_quotes", "macro_sql": "{%- macro snowflake__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote | upper }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.528139, "supported_languages": null}, "macro.fivetran_utils.redshift__wrap_in_quotes": {"name": "redshift__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.redshift__wrap_in_quotes", "macro_sql": "{%- macro redshift__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.5283809, "supported_languages": null}, "macro.fivetran_utils.postgres__wrap_in_quotes": {"name": "postgres__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.postgres__wrap_in_quotes", "macro_sql": "{%- macro postgres__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.528619, "supported_languages": null}, "macro.fivetran_utils.array_agg": {"name": "array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.array_agg", "macro_sql": "{% macro array_agg(field_to_agg) -%}\n\n{{ adapter.dispatch('array_agg', 'fivetran_utils') (field_to_agg) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__array_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.529174, "supported_languages": null}, "macro.fivetran_utils.default__array_agg": {"name": "default__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.default__array_agg", "macro_sql": "{% macro default__array_agg(field_to_agg) %}\n array_agg({{ field_to_agg }})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.529418, "supported_languages": null}, "macro.fivetran_utils.redshift__array_agg": {"name": "redshift__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.redshift__array_agg", "macro_sql": "{% macro redshift__array_agg(field_to_agg) %}\n listagg({{ field_to_agg }}, ',')\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.52966, "supported_languages": null}, "macro.fivetran_utils.empty_variable_warning": {"name": "empty_variable_warning", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/empty_variable_warning.sql", "original_file_path": "macros/empty_variable_warning.sql", "unique_id": "macro.fivetran_utils.empty_variable_warning", "macro_sql": "{% macro empty_variable_warning(variable, downstream_model) %}\n\n{% if not var(variable) %}\n{{ log(\n \"\"\"\n Warning: You have passed an empty list to the \"\"\" ~ variable ~ \"\"\".\n As a result, you won't see the history of any columns in the \"\"\" ~ downstream_model ~ \"\"\" model.\n \"\"\",\n info=True\n) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.530509, "supported_languages": null}, "macro.fivetran_utils.enabled_vars_one_true": {"name": "enabled_vars_one_true", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars_one_true.sql", "original_file_path": "macros/enabled_vars_one_true.sql", "unique_id": "macro.fivetran_utils.enabled_vars_one_true", "macro_sql": "{% macro enabled_vars_one_true(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, False) == True %}\n {{ return(True) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(False) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.5313768, "supported_languages": null}, "macro.pinterest_source.get_ad_group_history_columns": {"name": "get_ad_group_history_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_ad_group_history_columns.sql", "original_file_path": "macros/get_ad_group_history_columns.sql", "unique_id": "macro.pinterest_source.get_ad_group_history_columns", "macro_sql": "{% macro get_ad_group_history_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"end_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"start_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.5334568, "supported_languages": null}, "macro.pinterest_source.get_pin_promotion_history_columns": {"name": "get_pin_promotion_history_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_pin_promotion_history_columns.sql", "original_file_path": "macros/get_pin_promotion_history_columns.sql", "unique_id": "macro.pinterest_source.get_pin_promotion_history_columns", "macro_sql": "{% macro get_pin_promotion_history_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ad_group_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"android_deep_link\", \"datatype\": dbt.type_string()},\n {\"name\": \"click_tracking_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"creative_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"ios_deep_link\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_pin_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"is_removable\", \"datatype\": \"boolean\"},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"pin_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"review_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"view_tracking_url\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.53731, "supported_languages": null}, "macro.pinterest_source.get_keyword_report_columns": {"name": "get_keyword_report_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_keyword_report_columns.sql", "original_file_path": "macros/get_keyword_report_columns.sql", "unique_id": "macro.pinterest_source.get_keyword_report_columns", "macro_sql": "{% macro get_keyword_report_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ad_group_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"ad_group_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"ad_group_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"clickthrough_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"clickthrough_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impression_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"impression_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"keyword_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"pin_promotion_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"spend_in_micro_dollar\", \"datatype\": dbt.type_int()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('pinterest__keyword_report_passthrough_metrics')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.540732, "supported_languages": null}, "macro.pinterest_source.get_pin_promotion_report_columns": {"name": "get_pin_promotion_report_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_pin_promotion_report_columns.sql", "original_file_path": "macros/get_pin_promotion_report_columns.sql", "unique_id": "macro.pinterest_source.get_pin_promotion_report_columns", "macro_sql": "{% macro get_pin_promotion_report_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ad_group_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"clickthrough_1\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"clickthrough_2\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impression_1\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"impression_2\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"pin_promotion_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"spend_in_micro_dollar\", \"datatype\": dbt.type_numeric()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('pinterest__pin_promotion_report_passthrough_metrics')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_numeric", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.543627, "supported_languages": null}, "macro.pinterest_source.get_campaign_report_columns": {"name": "get_campaign_report_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_campaign_report_columns.sql", "original_file_path": "macros/get_campaign_report_columns.sql", "unique_id": "macro.pinterest_source.get_campaign_report_columns", "macro_sql": "{% macro get_campaign_report_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"clickthrough_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"clickthrough_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impression_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"impression_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"spend_in_micro_dollar\", \"datatype\": dbt.type_int()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('pinterest__campaign_report_passthrough_metrics')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.546508, "supported_languages": null}, "macro.pinterest_source.get_campaign_history_columns": {"name": "get_campaign_history_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_campaign_history_columns.sql", "original_file_path": "macros/get_campaign_history_columns.sql", "unique_id": "macro.pinterest_source.get_campaign_history_columns", "macro_sql": "{% macro get_campaign_history_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.548165, "supported_languages": null}, "macro.pinterest_source.get_advertiser_history_columns": {"name": "get_advertiser_history_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_advertiser_history_columns.sql", "original_file_path": "macros/get_advertiser_history_columns.sql", "unique_id": "macro.pinterest_source.get_advertiser_history_columns", "macro_sql": "{% macro get_advertiser_history_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"billing_profile_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"country\", \"datatype\": dbt.type_string()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"merchant_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"owner_user_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated_time\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.551351, "supported_languages": null}, "macro.pinterest_source.get_ad_group_report_columns": {"name": "get_ad_group_report_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_ad_group_report_columns.sql", "original_file_path": "macros/get_ad_group_report_columns.sql", "unique_id": "macro.pinterest_source.get_ad_group_report_columns", "macro_sql": "{% macro get_ad_group_report_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ad_group_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"ad_group_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"ad_group_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"clickthrough_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"clickthrough_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impression_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"impression_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"spend_in_micro_dollar\", \"datatype\": dbt.type_int()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('pinterest__ad_group_report_passthrough_metrics')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.554373, "supported_languages": null}, "macro.pinterest_source.get_keyword_history_columns": {"name": "get_keyword_history_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_keyword_history_columns.sql", "original_file_path": "macros/get_keyword_history_columns.sql", "unique_id": "macro.pinterest_source.get_keyword_history_columns", "macro_sql": "{% macro get_keyword_history_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ad_group_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"archived\", \"datatype\": \"boolean\"},\n {\"name\": \"bid\", \"datatype\": dbt.type_int()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"match_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"parent_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"value\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string", "macro.dbt.type_timestamp", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.557067, "supported_languages": null}, "macro.pinterest_source.get_advertiser_report_columns": {"name": "get_advertiser_report_columns", "resource_type": "macro", "package_name": "pinterest_source", "path": "macros/get_advertiser_report_columns.sql", "original_file_path": "macros/get_advertiser_report_columns.sql", "unique_id": "macro.pinterest_source.get_advertiser_report_columns", "macro_sql": "{% macro get_advertiser_report_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"advertiser_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"clickthrough_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"clickthrough_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impression_1\", \"datatype\": dbt.type_int()},\n {\"name\": \"impression_2\", \"datatype\": dbt.type_int()},\n {\"name\": \"spend_in_micro_dollar\", \"datatype\": dbt.type_int()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('pinterest__advertiser_report_passthrough_metrics')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1690382050.559346, "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"}, "doc.pinterest_source._fivetran_synced": {"name": "_fivetran_synced", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source._fivetran_synced", "block_contents": "Timestamp of when a record was last synced."}, "doc.pinterest_source.is_most_recent_record": {"name": "is_most_recent_record", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.is_most_recent_record", "block_contents": "Boolean representing whether the record is the most recent version of the object."}, "doc.pinterest_source.date_day": {"name": "date_day", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.date_day", "block_contents": "The performance date of the record."}, "doc.pinterest_source.ad_group_id": {"name": "ad_group_id", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.ad_group_id", "block_contents": "The ID of the related Ad group."}, "doc.pinterest_source.pin_promotion_id": {"name": "pin_promotion_id", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.pin_promotion_id", "block_contents": "The ID of the related Pin promotion."}, "doc.pinterest_source.campaign_id": {"name": "campaign_id", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.campaign_id", "block_contents": "The ID of the related Campaign."}, "doc.pinterest_source.advertiser_id": {"name": "advertiser_id", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.advertiser_id", "block_contents": "The ID of the related Advertiser."}, "doc.pinterest_source.impressions": {"name": "impressions", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.impressions", "block_contents": "The number of paid and earned impressions that occurred on the day of the record."}, "doc.pinterest_source.clicks": {"name": "clicks", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.clicks", "block_contents": "The number of paid and earned clicks that occurred on the day of the record."}, "doc.pinterest_source.spend": {"name": "spend", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.spend", "block_contents": "The amount of spend that occurred on the day of the record."}, "doc.pinterest_source.updated_at": {"name": "updated_at", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.updated_at", "block_contents": "Timestamp of when a record was last updated."}, "doc.pinterest_source.created_at": {"name": "created_at", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.created_at", "block_contents": "Timestamp of when a record was created."}, "doc.pinterest_source.spend_in_micro_dollar": {"name": "spend_in_micro_dollar", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.spend_in_micro_dollar", "block_contents": "The amount of spend in micro dollars that occurred on the day of the record."}, "doc.pinterest_source.clickthrough_1": {"name": "clickthrough_1", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.clickthrough_1", "block_contents": "The number of paid pin clicks that occurred on the day of the record."}, "doc.pinterest_source.clickthrough_2": {"name": "clickthrough_2", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.clickthrough_2", "block_contents": "The number of earned outbound clicks that occurred on the day of the record."}, "doc.pinterest_source.impression_1": {"name": "impression_1", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.impression_1", "block_contents": "The number of paid pin impressions that occurred on the day of the record."}, "doc.pinterest_source.impression_2": {"name": "impression_2", "resource_type": "doc", "package_name": "pinterest_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.pinterest_source.impression_2", "block_contents": "The number of earned pin impressions that occurred on the day of the record."}}, "exposures": {}, "metrics": {}, "selectors": {}, "disabled": {}, "parent_map": {"model.pinterest.pinterest_ads__url_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "model.pinterest.pinterest_ads__campaign_report": ["model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__campaign_report"], "model.pinterest.pinterest_ads__keyword_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__keyword_history", "model.pinterest_source.stg_pinterest_ads__keyword_report"], "model.pinterest.pinterest_ads__advertiser_report": ["model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__advertiser_report"], "model.pinterest.pinterest_ads__pin_promotion_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "model.pinterest.pinterest_ads__ad_group_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__ad_group_report", "model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__campaign_history"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_history": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp"], "model.pinterest_source.stg_pinterest_ads__keyword_report": ["model.pinterest_source.stg_pinterest_ads__keyword_report_tmp", "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp"], "model.pinterest_source.stg_pinterest_ads__ad_group_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp", "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp"], "model.pinterest_source.stg_pinterest_ads__campaign_history": ["model.pinterest_source.stg_pinterest_ads__campaign_history_tmp", "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp"], "model.pinterest_source.stg_pinterest_ads__advertiser_report": ["model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp", "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp"], "model.pinterest_source.stg_pinterest_ads__advertiser_history": ["model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp", "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp"], "model.pinterest_source.stg_pinterest_ads__campaign_report": ["model.pinterest_source.stg_pinterest_ads__campaign_report_tmp", "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp"], "model.pinterest_source.stg_pinterest_ads__keyword_history": ["model.pinterest_source.stg_pinterest_ads__keyword_history_tmp", "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_report": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp", "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp"], "model.pinterest_source.stg_pinterest_ads__ad_group_history": ["model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp", "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp"], "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp": ["source.pinterest_source.pinterest_ads.advertiser_history"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp": ["source.pinterest_source.pinterest_ads.pin_promotion_report"], "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp": ["source.pinterest_source.pinterest_ads.campaign_report"], "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp": ["source.pinterest_source.pinterest_ads.advertiser_report"], "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp": ["source.pinterest_source.pinterest_ads.keyword_report"], "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp": ["source.pinterest_source.pinterest_ads.ad_group_report"], "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp": ["source.pinterest_source.pinterest_ads.keyword_history"], "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp": ["source.pinterest_source.pinterest_ads.campaign_history"], "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp": ["source.pinterest_source.pinterest_ads.ad_group_history"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp": ["source.pinterest_source.pinterest_ads.pin_promotion_history"], "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e": ["model.pinterest.pinterest_ads__url_report"], "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502": ["model.pinterest.pinterest_ads__url_report"], "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a": ["model.pinterest.pinterest_ads__url_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8": ["model.pinterest.pinterest_ads__url_report"], "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7": ["model.pinterest.pinterest_ads__ad_group_report"], "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2": ["model.pinterest.pinterest_ads__ad_group_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d": ["model.pinterest.pinterest_ads__ad_group_report"], "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf": ["model.pinterest.pinterest_ads__campaign_report"], "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2": ["model.pinterest.pinterest_ads__campaign_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279": ["model.pinterest.pinterest_ads__campaign_report"], "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca": ["model.pinterest.pinterest_ads__advertiser_report"], "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672": ["model.pinterest.pinterest_ads__advertiser_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11": ["model.pinterest.pinterest_ads__advertiser_report"], "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba": ["model.pinterest.pinterest_ads__keyword_report"], "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198": ["model.pinterest.pinterest_ads__keyword_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d": ["model.pinterest.pinterest_ads__keyword_report"], "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd": ["model.pinterest.pinterest_ads__pin_promotion_report"], "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561": ["model.pinterest.pinterest_ads__pin_promotion_report"], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3": ["model.pinterest.pinterest_ads__pin_promotion_report"], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be": ["model.pinterest_source.stg_pinterest_ads__ad_group_history"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339": ["model.pinterest_source.stg_pinterest_ads__ad_group_history"], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341": ["model.pinterest_source.stg_pinterest_ads__campaign_history"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87": ["model.pinterest_source.stg_pinterest_ads__campaign_history"], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history"], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e": ["model.pinterest_source.stg_pinterest_ads__ad_group_report"], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb": ["model.pinterest_source.stg_pinterest_ads__advertiser_history"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b": ["model.pinterest_source.stg_pinterest_ads__advertiser_history"], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0": ["model.pinterest_source.stg_pinterest_ads__advertiser_report"], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238": ["model.pinterest_source.stg_pinterest_ads__campaign_report"], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc": ["model.pinterest_source.stg_pinterest_ads__campaign_report"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc": ["model.pinterest_source.stg_pinterest_ads__campaign_report"], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a": ["model.pinterest_source.stg_pinterest_ads__keyword_history"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877": ["model.pinterest_source.stg_pinterest_ads__keyword_history"], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300": ["model.pinterest_source.stg_pinterest_ads__keyword_report"], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48": ["model.pinterest_source.stg_pinterest_ads__keyword_report"], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6": ["model.pinterest_source.stg_pinterest_ads__keyword_report"], "source.pinterest_source.pinterest_ads.pin_promotion_report": [], "source.pinterest_source.pinterest_ads.pin_promotion_history": [], "source.pinterest_source.pinterest_ads.campaign_history": [], "source.pinterest_source.pinterest_ads.ad_group_history": [], "source.pinterest_source.pinterest_ads.ad_group_report": [], "source.pinterest_source.pinterest_ads.advertiser_history": [], "source.pinterest_source.pinterest_ads.advertiser_report": [], "source.pinterest_source.pinterest_ads.campaign_report": [], "source.pinterest_source.pinterest_ads.keyword_history": [], "source.pinterest_source.pinterest_ads.keyword_report": []}, "child_map": {"model.pinterest.pinterest_ads__url_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8", "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e", "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502", "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a"], "model.pinterest.pinterest_ads__campaign_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279", "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2", "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf"], "model.pinterest.pinterest_ads__keyword_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d", "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba", "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198"], "model.pinterest.pinterest_ads__advertiser_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11", "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672", "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca"], "model.pinterest.pinterest_ads__pin_promotion_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3", "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd", "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561"], "model.pinterest.pinterest_ads__ad_group_report": ["test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d", "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2", "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_history": ["model.pinterest.pinterest_ads__pin_promotion_report", "model.pinterest.pinterest_ads__url_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9", "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34"], "model.pinterest_source.stg_pinterest_ads__keyword_report": ["model.pinterest.pinterest_ads__keyword_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6", "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300", "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48"], "model.pinterest_source.stg_pinterest_ads__ad_group_report": ["model.pinterest.pinterest_ads__ad_group_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e", "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471", "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c"], "model.pinterest_source.stg_pinterest_ads__campaign_history": ["model.pinterest.pinterest_ads__ad_group_report", "model.pinterest.pinterest_ads__campaign_report", "model.pinterest.pinterest_ads__keyword_report", "model.pinterest.pinterest_ads__pin_promotion_report", "model.pinterest.pinterest_ads__url_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87", "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341"], "model.pinterest_source.stg_pinterest_ads__advertiser_report": ["model.pinterest.pinterest_ads__advertiser_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0", "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff", "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95"], "model.pinterest_source.stg_pinterest_ads__advertiser_history": ["model.pinterest.pinterest_ads__ad_group_report", "model.pinterest.pinterest_ads__advertiser_report", "model.pinterest.pinterest_ads__campaign_report", "model.pinterest.pinterest_ads__keyword_report", "model.pinterest.pinterest_ads__pin_promotion_report", "model.pinterest.pinterest_ads__url_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b", "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb"], "model.pinterest_source.stg_pinterest_ads__campaign_report": ["model.pinterest.pinterest_ads__campaign_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc", "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc", "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238"], "model.pinterest_source.stg_pinterest_ads__keyword_history": ["model.pinterest.pinterest_ads__keyword_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877", "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_report": ["model.pinterest.pinterest_ads__pin_promotion_report", "model.pinterest.pinterest_ads__url_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024", "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1", "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab"], "model.pinterest_source.stg_pinterest_ads__ad_group_history": ["model.pinterest.pinterest_ads__ad_group_report", "model.pinterest.pinterest_ads__keyword_report", "model.pinterest.pinterest_ads__pin_promotion_report", "model.pinterest.pinterest_ads__url_report", "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339", "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be"], "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp": ["model.pinterest_source.stg_pinterest_ads__advertiser_history", "model.pinterest_source.stg_pinterest_ads__advertiser_history"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report", "model.pinterest_source.stg_pinterest_ads__pin_promotion_report"], "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp": ["model.pinterest_source.stg_pinterest_ads__campaign_report", "model.pinterest_source.stg_pinterest_ads__campaign_report"], "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp": ["model.pinterest_source.stg_pinterest_ads__advertiser_report", "model.pinterest_source.stg_pinterest_ads__advertiser_report"], "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp": ["model.pinterest_source.stg_pinterest_ads__keyword_report", "model.pinterest_source.stg_pinterest_ads__keyword_report"], "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp": ["model.pinterest_source.stg_pinterest_ads__ad_group_report", "model.pinterest_source.stg_pinterest_ads__ad_group_report"], "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp": ["model.pinterest_source.stg_pinterest_ads__keyword_history", "model.pinterest_source.stg_pinterest_ads__keyword_history"], "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp": ["model.pinterest_source.stg_pinterest_ads__campaign_history", "model.pinterest_source.stg_pinterest_ads__campaign_history"], "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp": ["model.pinterest_source.stg_pinterest_ads__ad_group_history", "model.pinterest_source.stg_pinterest_ads__ad_group_history"], "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history", "model.pinterest_source.stg_pinterest_ads__pin_promotion_history"], "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e": [], "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502": [], "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8": [], "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7": [], "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d": [], "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf": [], "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279": [], "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca": [], "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11": [], "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba": [], "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d": [], "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd": [], "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561": [], "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3": [], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339": [], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87": [], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9": [], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1": [], "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024": [], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c": [], "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e": [], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b": [], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95": [], "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0": [], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238": [], "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc": [], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877": [], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300": [], "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48": [], "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6": [], "source.pinterest_source.pinterest_ads.pin_promotion_report": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp"], "source.pinterest_source.pinterest_ads.pin_promotion_history": ["model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp"], "source.pinterest_source.pinterest_ads.campaign_history": ["model.pinterest_source.stg_pinterest_ads__campaign_history_tmp"], "source.pinterest_source.pinterest_ads.ad_group_history": ["model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp"], "source.pinterest_source.pinterest_ads.ad_group_report": ["model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp"], "source.pinterest_source.pinterest_ads.advertiser_history": ["model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp"], "source.pinterest_source.pinterest_ads.advertiser_report": ["model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp"], "source.pinterest_source.pinterest_ads.campaign_report": ["model.pinterest_source.stg_pinterest_ads__campaign_report_tmp"], "source.pinterest_source.pinterest_ads.keyword_history": ["model.pinterest_source.stg_pinterest_ads__keyword_history_tmp"], "source.pinterest_source.pinterest_ads.keyword_report": ["model.pinterest_source.stg_pinterest_ads__keyword_report_tmp"]}} \ No newline at end of file diff --git a/docs/run_results.json b/docs/run_results.json index 57477ab..277ae48 100644 --- a/docs/run_results.json +++ b/docs/run_results.json @@ -1 +1 @@ -{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/run-results/v4.json", "dbt_version": "1.4.5", "generated_at": "2023-06-06T21:30:21.773084Z", "invocation_id": "add0e8a1-b6ee-49df-a5ee-375b15e63d2d", "env": {}}, "results": [{"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.629034Z", "completed_at": "2023-06-06T21:30:20.638886Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.639693Z", "completed_at": "2023-06-06T21:30:20.639701Z"}], "thread_id": "Thread-1", "execution_time": 0.013195037841796875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.631574Z", "completed_at": "2023-06-06T21:30:20.639086Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.640053Z", "completed_at": "2023-06-06T21:30:20.640056Z"}], "thread_id": "Thread-2", "execution_time": 0.013971090316772461, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.634141Z", "completed_at": "2023-06-06T21:30:20.639360Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.641136Z", "completed_at": "2023-06-06T21:30:20.641140Z"}], "thread_id": "Thread-3", "execution_time": 0.014326095581054688, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.636543Z", "completed_at": "2023-06-06T21:30:20.639492Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.641244Z", "completed_at": "2023-06-06T21:30:20.641247Z"}], "thread_id": "Thread-4", "execution_time": 0.014492988586425781, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.645235Z", "completed_at": "2023-06-06T21:30:20.656597Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.657494Z", "completed_at": "2023-06-06T21:30:20.657501Z"}], "thread_id": "Thread-1", "execution_time": 0.014982223510742188, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.647970Z", "completed_at": "2023-06-06T21:30:20.656928Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.657727Z", "completed_at": "2023-06-06T21:30:20.657731Z"}], "thread_id": "Thread-2", "execution_time": 0.014631032943725586, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.650105Z", "completed_at": "2023-06-06T21:30:20.657185Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.658441Z", "completed_at": "2023-06-06T21:30:20.658448Z"}], "thread_id": "Thread-3", "execution_time": 0.014899969100952148, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.653711Z", "completed_at": "2023-06-06T21:30:20.657391Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.658970Z", "completed_at": "2023-06-06T21:30:20.658974Z"}], "thread_id": "Thread-4", "execution_time": 0.015182018280029297, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.666572Z", "completed_at": "2023-06-06T21:30:20.667380Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.668969Z", "completed_at": "2023-06-06T21:30:20.668975Z"}], "thread_id": "Thread-3", "execution_time": 0.008327245712280273, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.pinterest_integration_tests.ad_group_history_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.667587Z", "completed_at": "2023-06-06T21:30:20.668404Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.669210Z", "completed_at": "2023-06-06T21:30:20.669213Z"}], "thread_id": "Thread-4", "execution_time": 0.008399009704589844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.pinterest_integration_tests.ad_group_report_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.661874Z", "completed_at": "2023-06-06T21:30:20.668647Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.669768Z", "completed_at": "2023-06-06T21:30:20.669771Z"}], "thread_id": "Thread-1", "execution_time": 0.010408878326416016, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.664388Z", "completed_at": "2023-06-06T21:30:20.668866Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.670179Z", "completed_at": "2023-06-06T21:30:20.670182Z"}], "thread_id": "Thread-2", "execution_time": 0.010416269302368164, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.672864Z", "completed_at": "2023-06-06T21:30:20.673766Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.677768Z", "completed_at": "2023-06-06T21:30:20.677772Z"}], "thread_id": "Thread-3", "execution_time": 0.0070819854736328125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.pinterest_integration_tests.advertiser_history_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.674005Z", "completed_at": "2023-06-06T21:30:20.674826Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.677989Z", "completed_at": "2023-06-06T21:30:20.677991Z"}], "thread_id": "Thread-4", "execution_time": 0.007025957107543945, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.pinterest_integration_tests.advertiser_report_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.675242Z", "completed_at": "2023-06-06T21:30:20.676657Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.678515Z", "completed_at": "2023-06-06T21:30:20.678518Z"}], "thread_id": "Thread-1", "execution_time": 0.007086992263793945, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.pinterest_integration_tests.campaign_history_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.676881Z", "completed_at": "2023-06-06T21:30:20.677656Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.678918Z", "completed_at": "2023-06-06T21:30:20.678921Z"}], "thread_id": "Thread-2", "execution_time": 0.0072100162506103516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.pinterest_integration_tests.campaign_report_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.681528Z", "completed_at": "2023-06-06T21:30:20.682407Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.685581Z", "completed_at": "2023-06-06T21:30:20.685586Z"}], "thread_id": "Thread-3", "execution_time": 0.006124019622802734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.pinterest_integration_tests.keyword_history_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.682633Z", "completed_at": "2023-06-06T21:30:20.683390Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.685778Z", "completed_at": "2023-06-06T21:30:20.685781Z"}], "thread_id": "Thread-4", "execution_time": 0.006082773208618164, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.pinterest_integration_tests.keyword_report_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.683733Z", "completed_at": "2023-06-06T21:30:20.684507Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.686263Z", "completed_at": "2023-06-06T21:30:20.686266Z"}], "thread_id": "Thread-1", "execution_time": 0.006063699722290039, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.pinterest_integration_tests.pin_promotion_history_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.684720Z", "completed_at": "2023-06-06T21:30:20.685472Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:20.686637Z", "completed_at": "2023-06-06T21:30:20.686640Z"}], "thread_id": "Thread-2", "execution_time": 0.00621795654296875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.pinterest_integration_tests.pin_promotion_report_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.702609Z", "completed_at": "2023-06-06T21:30:21.040837Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.041656Z", "completed_at": "2023-06-06T21:30:21.041659Z"}], "thread_id": "Thread-2", "execution_time": 0.3789100646972656, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.689115Z", "completed_at": "2023-06-06T21:30:21.040942Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.041748Z", "completed_at": "2023-06-06T21:30:21.041750Z"}], "thread_id": "Thread-3", "execution_time": 0.3808450698852539, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_history"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.695442Z", "completed_at": "2023-06-06T21:30:21.041025Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.041841Z", "completed_at": "2023-06-06T21:30:21.041843Z"}], "thread_id": "Thread-4", "execution_time": 0.3810908794403076, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:20.699227Z", "completed_at": "2023-06-06T21:30:21.040620Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.041557Z", "completed_at": "2023-06-06T21:30:21.041564Z"}], "thread_id": "Thread-1", "execution_time": 0.38085389137268066, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_history"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.070563Z", "completed_at": "2023-06-06T21:30:21.327734Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.327984Z", "completed_at": "2023-06-06T21:30:21.327991Z"}], "thread_id": "Thread-2", "execution_time": 0.28330421447753906, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_history"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.075399Z", "completed_at": "2023-06-06T21:30:21.346405Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.346643Z", "completed_at": "2023-06-06T21:30:21.346647Z"}], "thread_id": "Thread-3", "execution_time": 0.3030550479888916, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.082630Z", "completed_at": "2023-06-06T21:30:21.372235Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.372679Z", "completed_at": "2023-06-06T21:30:21.372682Z"}], "thread_id": "Thread-1", "execution_time": 0.3290379047393799, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.079363Z", "completed_at": "2023-06-06T21:30:21.371977Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.372348Z", "completed_at": "2023-06-06T21:30:21.372355Z"}], "thread_id": "Thread-4", "execution_time": 0.32969021797180176, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_history"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.413410Z", "completed_at": "2023-06-06T21:30:21.418359Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.418622Z", "completed_at": "2023-06-06T21:30:21.418628Z"}], "thread_id": "Thread-4", "execution_time": 0.013804912567138672, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.405582Z", "completed_at": "2023-06-06T21:30:21.419446Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.422172Z", "completed_at": "2023-06-06T21:30:21.422177Z"}], "thread_id": "Thread-1", "execution_time": 0.01769399642944336, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.419829Z", "completed_at": "2023-06-06T21:30:21.423074Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.426361Z", "completed_at": "2023-06-06T21:30:21.426366Z"}], "thread_id": "Thread-4", "execution_time": 0.007486104965209961, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.423408Z", "completed_at": "2023-06-06T21:30:21.427032Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.427631Z", "completed_at": "2023-06-06T21:30:21.427634Z"}], "thread_id": "Thread-1", "execution_time": 0.0074388980865478516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.427738Z", "completed_at": "2023-06-06T21:30:21.430975Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.437991Z", "completed_at": "2023-06-06T21:30:21.437997Z"}], "thread_id": "Thread-4", "execution_time": 0.011209964752197266, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.431307Z", "completed_at": "2023-06-06T21:30:21.438912Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.442667Z", "completed_at": "2023-06-06T21:30:21.442672Z"}], "thread_id": "Thread-1", "execution_time": 0.012353181838989258, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__advertiser_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.439280Z", "completed_at": "2023-06-06T21:30:21.443474Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.444111Z", "completed_at": "2023-06-06T21:30:21.444114Z"}], "thread_id": "Thread-4", "execution_time": 0.008949041366577148, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.444210Z", "completed_at": "2023-06-06T21:30:21.448448Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.451134Z", "completed_at": "2023-06-06T21:30:21.451139Z"}], "thread_id": "Thread-1", "execution_time": 0.007797956466674805, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.448552Z", "completed_at": "2023-06-06T21:30:21.451691Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.452355Z", "completed_at": "2023-06-06T21:30:21.452358Z"}], "thread_id": "Thread-4", "execution_time": 0.006903648376464844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.452456Z", "completed_at": "2023-06-06T21:30:21.455749Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.458375Z", "completed_at": "2023-06-06T21:30:21.458380Z"}], "thread_id": "Thread-1", "execution_time": 0.00680088996887207, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.455852Z", "completed_at": "2023-06-06T21:30:21.458932Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.459559Z", "completed_at": "2023-06-06T21:30:21.459563Z"}], "thread_id": "Thread-4", "execution_time": 0.00926518440246582, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.459672Z", "completed_at": "2023-06-06T21:30:21.468508Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.468806Z", "completed_at": "2023-06-06T21:30:21.468811Z"}], "thread_id": "Thread-1", "execution_time": 0.009984016418457031, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__ad_group_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.465466Z", "completed_at": "2023-06-06T21:30:21.469191Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.469931Z", "completed_at": "2023-06-06T21:30:21.469935Z"}], "thread_id": "Thread-4", "execution_time": 0.00522923469543457, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.470451Z", "completed_at": "2023-06-06T21:30:21.476831Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.477121Z", "completed_at": "2023-06-06T21:30:21.477126Z"}], "thread_id": "Thread-1", "execution_time": 0.0077898502349853516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.473390Z", "completed_at": "2023-06-06T21:30:21.477200Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.477906Z", "completed_at": "2023-06-06T21:30:21.477909Z"}], "thread_id": "Thread-4", "execution_time": 0.005370140075683594, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__campaign_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.478906Z", "completed_at": "2023-06-06T21:30:21.484994Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.485434Z", "completed_at": "2023-06-06T21:30:21.485442Z"}], "thread_id": "Thread-1", "execution_time": 0.007861137390136719, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.482509Z", "completed_at": "2023-06-06T21:30:21.485572Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.486349Z", "completed_at": "2023-06-06T21:30:21.486353Z"}], "thread_id": "Thread-4", "execution_time": 0.004815816879272461, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.487317Z", "completed_at": "2023-06-06T21:30:21.496039Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.496335Z", "completed_at": "2023-06-06T21:30:21.496343Z"}], "thread_id": "Thread-1", "execution_time": 0.010164022445678711, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.491092Z", "completed_at": "2023-06-06T21:30:21.496761Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.497431Z", "completed_at": "2023-06-06T21:30:21.497435Z"}], "thread_id": "Thread-4", "execution_time": 0.007203817367553711, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__keyword_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.497971Z", "completed_at": "2023-06-06T21:30:21.505845Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.506178Z", "completed_at": "2023-06-06T21:30:21.506185Z"}], "thread_id": "Thread-1", "execution_time": 0.009392261505126953, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.501916Z", "completed_at": "2023-06-06T21:30:21.506730Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.507437Z", "completed_at": "2023-06-06T21:30:21.507441Z"}], "thread_id": "Thread-4", "execution_time": 0.0063250064849853516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.507976Z", "completed_at": "2023-06-06T21:30:21.513421Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.513704Z", "completed_at": "2023-06-06T21:30:21.513709Z"}], "thread_id": "Thread-1", "execution_time": 0.006797075271606445, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.511134Z", "completed_at": "2023-06-06T21:30:21.514098Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.514740Z", "completed_at": "2023-06-06T21:30:21.514744Z"}], "thread_id": "Thread-4", "execution_time": 0.004357099533081055, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.515257Z", "completed_at": "2023-06-06T21:30:21.522447Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.522774Z", "completed_at": "2023-06-06T21:30:21.522779Z"}], "thread_id": "Thread-1", "execution_time": 0.008557796478271484, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.519511Z", "completed_at": "2023-06-06T21:30:21.523245Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.523957Z", "completed_at": "2023-06-06T21:30:21.523961Z"}], "thread_id": "Thread-4", "execution_time": 0.005296945571899414, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.524535Z", "completed_at": "2023-06-06T21:30:21.527559Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.530126Z", "completed_at": "2023-06-06T21:30:21.530131Z"}], "thread_id": "Thread-1", "execution_time": 0.006710052490234375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.527673Z", "completed_at": "2023-06-06T21:30:21.530901Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.531627Z", "completed_at": "2023-06-06T21:30:21.531631Z"}], "thread_id": "Thread-4", "execution_time": 0.008224964141845703, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.531740Z", "completed_at": "2023-06-06T21:30:21.536241Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.539005Z", "completed_at": "2023-06-06T21:30:21.539010Z"}], "thread_id": "Thread-1", "execution_time": 0.008233308792114258, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.536345Z", "completed_at": "2023-06-06T21:30:21.539438Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.540100Z", "completed_at": "2023-06-06T21:30:21.540103Z"}], "thread_id": "Thread-4", "execution_time": 0.004602909088134766, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.540605Z", "completed_at": "2023-06-06T21:30:21.547456Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.547825Z", "completed_at": "2023-06-06T21:30:21.547831Z"}], "thread_id": "Thread-1", "execution_time": 0.00826406478881836, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.544412Z", "completed_at": "2023-06-06T21:30:21.548250Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.548957Z", "completed_at": "2023-06-06T21:30:21.548963Z"}], "thread_id": "Thread-4", "execution_time": 0.0052831172943115234, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.549486Z", "completed_at": "2023-06-06T21:30:21.555003Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.555297Z", "completed_at": "2023-06-06T21:30:21.555306Z"}], "thread_id": "Thread-1", "execution_time": 0.006906747817993164, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.552711Z", "completed_at": "2023-06-06T21:30:21.555747Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.556409Z", "completed_at": "2023-06-06T21:30:21.556413Z"}], "thread_id": "Thread-4", "execution_time": 0.0044710636138916016, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.556929Z", "completed_at": "2023-06-06T21:30:21.561114Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.563662Z", "completed_at": "2023-06-06T21:30:21.563667Z"}], "thread_id": "Thread-1", "execution_time": 0.0077931880950927734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.561219Z", "completed_at": "2023-06-06T21:30:21.564226Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.564836Z", "completed_at": "2023-06-06T21:30:21.564840Z"}], "thread_id": "Thread-4", "execution_time": 0.007456064224243164, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.564940Z", "completed_at": "2023-06-06T21:30:21.568537Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.568762Z", "completed_at": "2023-06-06T21:30:21.568766Z"}], "thread_id": "Thread-1", "execution_time": 0.004642963409423828, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.352803Z", "completed_at": "2023-06-06T21:30:21.682521Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.683053Z", "completed_at": "2023-06-06T21:30:21.683057Z"}], "thread_id": "Thread-2", "execution_time": 0.35611486434936523, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_history"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.374250Z", "completed_at": "2023-06-06T21:30:21.682203Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.682648Z", "completed_at": "2023-06-06T21:30:21.682655Z"}], "thread_id": "Thread-3", "execution_time": 0.3352937698364258, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.715127Z", "completed_at": "2023-06-06T21:30:21.727770Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.728598Z", "completed_at": "2023-06-06T21:30:21.728604Z"}], "thread_id": "Thread-3", "execution_time": 0.019070863723754883, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.711853Z", "completed_at": "2023-06-06T21:30:21.727879Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.728914Z", "completed_at": "2023-06-06T21:30:21.728918Z"}], "thread_id": "Thread-4", "execution_time": 0.02008795738220215, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.718367Z", "completed_at": "2023-06-06T21:30:21.728260Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.729390Z", "completed_at": "2023-06-06T21:30:21.729395Z"}], "thread_id": "Thread-2", "execution_time": 0.01920008659362793, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__pin_promotion_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.723019Z", "completed_at": "2023-06-06T21:30:21.728385Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.729511Z", "completed_at": "2023-06-06T21:30:21.729514Z"}], "thread_id": "Thread-1", "execution_time": 0.018948078155517578, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__url_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.732604Z", "completed_at": "2023-06-06T21:30:21.745385Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.746410Z", "completed_at": "2023-06-06T21:30:21.746416Z"}], "thread_id": "Thread-3", "execution_time": 0.01621699333190918, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.736550Z", "completed_at": "2023-06-06T21:30:21.745756Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.746768Z", "completed_at": "2023-06-06T21:30:21.746772Z"}], "thread_id": "Thread-4", "execution_time": 0.01602315902709961, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.738833Z", "completed_at": "2023-06-06T21:30:21.746021Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.747255Z", "completed_at": "2023-06-06T21:30:21.747258Z"}], "thread_id": "Thread-2", "execution_time": 0.016093969345092773, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.741256Z", "completed_at": "2023-06-06T21:30:21.746112Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.747365Z", "completed_at": "2023-06-06T21:30:21.747369Z"}], "thread_id": "Thread-1", "execution_time": 0.016125202178955078, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.750246Z", "completed_at": "2023-06-06T21:30:21.761219Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.762031Z", "completed_at": "2023-06-06T21:30:21.762036Z"}], "thread_id": "Thread-3", "execution_time": 0.013915777206420898, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.753115Z", "completed_at": "2023-06-06T21:30:21.761412Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.762239Z", "completed_at": "2023-06-06T21:30:21.762241Z"}], "thread_id": "Thread-4", "execution_time": 0.013779878616333008, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.755467Z", "completed_at": "2023-06-06T21:30:21.761691Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.762776Z", "completed_at": "2023-06-06T21:30:21.762780Z"}], "thread_id": "Thread-2", "execution_time": 0.0140228271484375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.758966Z", "completed_at": "2023-06-06T21:30:21.761951Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.763190Z", "completed_at": "2023-06-06T21:30:21.763193Z"}], "thread_id": "Thread-1", "execution_time": 0.014220952987670898, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.765104Z", "completed_at": "2023-06-06T21:30:21.770938Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.771384Z", "completed_at": "2023-06-06T21:30:21.771389Z"}], "thread_id": "Thread-3", "execution_time": 0.007512092590332031, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-06-06T21:30:21.767684Z", "completed_at": "2023-06-06T21:30:21.771039Z"}, {"name": "execute", "started_at": "2023-06-06T21:30:21.771485Z", "completed_at": "2023-06-06T21:30:21.771488Z"}], "thread_id": "Thread-4", "execution_time": 0.007512092590332031, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a"}], "elapsed_time": 2.4283840656280518, "args": {"write_json": true, "use_colors": true, "printer_width": 80, "version_check": true, "partial_parse": true, "static_parser": true, "profiles_dir": "/Users/joseph.markiewicz/.dbt", "send_anonymous_usage_stats": true, "quiet": false, "no_print": false, "cache_selected_only": false, "target": "postgres", "compile": true, "which": "generate", "rpc_method": "docs.generate", "indirect_selection": "eager"}} \ No newline at end of file +{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/run-results/v4.json", "dbt_version": "1.4.5", "generated_at": "2023-07-26T14:34:40.344740Z", "invocation_id": "a8e7ad3b-45b1-4962-ba03-4f15fdffe4f8", "env": {}}, "results": [{"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.824670Z", "completed_at": "2023-07-26T14:34:38.833742Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:38.835965Z", "completed_at": "2023-07-26T14:34:38.836011Z"}], "thread_id": "Thread-4", "execution_time": 0.04069399833679199, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_report_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.805701Z", "completed_at": "2023-07-26T14:34:38.834105Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:38.836615Z", "completed_at": "2023-07-26T14:34:38.836625Z"}], "thread_id": "Thread-2", "execution_time": 0.0451970100402832, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_report_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.817769Z", "completed_at": "2023-07-26T14:34:38.834455Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:38.836922Z", "completed_at": "2023-07-26T14:34:38.836932Z"}], "thread_id": "Thread-3", "execution_time": 0.045658111572265625, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_history_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.799141Z", "completed_at": "2023-07-26T14:34:38.836330Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:38.843487Z", "completed_at": "2023-07-26T14:34:38.843501Z"}], "thread_id": "Thread-1", "execution_time": 0.05141782760620117, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_history_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.849779Z", "completed_at": "2023-07-26T14:34:38.875708Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:38.883961Z", "completed_at": "2023-07-26T14:34:38.883977Z"}], "thread_id": "Thread-4", "execution_time": 0.04044318199157715, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_history_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.856853Z", "completed_at": "2023-07-26T14:34:38.882334Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:38.884875Z", "completed_at": "2023-07-26T14:34:38.884885Z"}], "thread_id": "Thread-2", "execution_time": 0.04035305976867676, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_report_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.865142Z", "completed_at": "2023-07-26T14:34:38.883082Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:38.886353Z", "completed_at": "2023-07-26T14:34:38.886361Z"}], "thread_id": "Thread-3", "execution_time": 0.041908979415893555, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_history_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.876072Z", "completed_at": "2023-07-26T14:34:38.884279Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:38.888258Z", "completed_at": "2023-07-26T14:34:38.888273Z"}], "thread_id": "Thread-1", "execution_time": 0.03627514839172363, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_report_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.896769Z", "completed_at": "2023-07-26T14:34:38.921582Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:38.932122Z", "completed_at": "2023-07-26T14:34:38.932136Z"}], "thread_id": "Thread-4", "execution_time": 0.04406404495239258, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_history_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.904360Z", "completed_at": "2023-07-26T14:34:38.928669Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:38.933513Z", "completed_at": "2023-07-26T14:34:38.933526Z"}], "thread_id": "Thread-2", "execution_time": 0.04195404052734375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_report_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.939339Z", "completed_at": "2023-07-26T14:34:39.278998Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.288855Z", "completed_at": "2023-07-26T14:34:39.288865Z"}], "thread_id": "Thread-4", "execution_time": 0.3525679111480713, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_history"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.914500Z", "completed_at": "2023-07-26T14:34:39.288663Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.290349Z", "completed_at": "2023-07-26T14:34:39.290356Z"}], "thread_id": "Thread-3", "execution_time": 0.39592623710632324, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__advertiser_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.921975Z", "completed_at": "2023-07-26T14:34:39.289394Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.291996Z", "completed_at": "2023-07-26T14:34:39.292002Z"}], "thread_id": "Thread-1", "execution_time": 0.3903019428253174, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:38.945142Z", "completed_at": "2023-07-26T14:34:39.290805Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.293834Z", "completed_at": "2023-07-26T14:34:39.293840Z"}], "thread_id": "Thread-2", "execution_time": 0.35727906227111816, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__ad_group_history"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.307920Z", "completed_at": "2023-07-26T14:34:39.637204Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.637760Z", "completed_at": "2023-07-26T14:34:39.637771Z"}], "thread_id": "Thread-1", "execution_time": 0.3383049964904785, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_history"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.301671Z", "completed_at": "2023-07-26T14:34:39.648537Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.659572Z", "completed_at": "2023-07-26T14:34:39.659593Z"}], "thread_id": "Thread-3", "execution_time": 0.3670022487640381, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.316165Z", "completed_at": "2023-07-26T14:34:39.648793Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.659974Z", "completed_at": "2023-07-26T14:34:39.659986Z"}], "thread_id": "Thread-2", "execution_time": 0.355349063873291, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__keyword_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.295671Z", "completed_at": "2023-07-26T14:34:39.660485Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.664130Z", "completed_at": "2023-07-26T14:34:39.664141Z"}], "thread_id": "Thread-4", "execution_time": 0.3739798069000244, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__campaign_history"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.690702Z", "completed_at": "2023-07-26T14:34:39.729076Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.729646Z", "completed_at": "2023-07-26T14:34:39.729657Z"}], "thread_id": "Thread-2", "execution_time": 0.0651850700378418, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_history_updated_at__advertiser_id.94e8f4de4b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.714005Z", "completed_at": "2023-07-26T14:34:39.730971Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.732940Z", "completed_at": "2023-07-26T14:34:39.732951Z"}], "thread_id": "Thread-4", "execution_time": 0.03046703338623047, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_history_advertiser_id.7d24f665fb"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.749699Z", "completed_at": "2023-07-26T14:34:39.756282Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.756883Z", "completed_at": "2023-07-26T14:34:39.756894Z"}], "thread_id": "Thread-4", "execution_time": 0.008667230606079102, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__advertiser_report_date_day__advertiser_id.e92ce8a9c0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.734143Z", "completed_at": "2023-07-26T14:34:39.764477Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.765219Z", "completed_at": "2023-07-26T14:34:39.765231Z"}], "thread_id": "Thread-2", "execution_time": 0.03350210189819336, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__advertiser_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.759185Z", "completed_at": "2023-07-26T14:34:39.766971Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.768417Z", "completed_at": "2023-07-26T14:34:39.768430Z"}], "thread_id": "Thread-4", "execution_time": 0.017476797103881836, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_advertiser_id.1b16ed73ff"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.768714Z", "completed_at": "2023-07-26T14:34:39.785260Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.785793Z", "completed_at": "2023-07-26T14:34:39.785802Z"}], "thread_id": "Thread-2", "execution_time": 0.019086122512817383, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__advertiser_report_date_day.153bd03c95"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.777563Z", "completed_at": "2023-07-26T14:34:39.792485Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.792947Z", "completed_at": "2023-07-26T14:34:39.792953Z"}], "thread_id": "Thread-4", "execution_time": 0.016613006591796875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_report_date_day__ad_group_id__campaign_id__advertiser_id.3800c02b0e"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.787718Z", "completed_at": "2023-07-26T14:34:39.798538Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.799131Z", "completed_at": "2023-07-26T14:34:39.799138Z"}], "thread_id": "Thread-2", "execution_time": 0.012602806091308594, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_ad_group_id.bb8cf3c471"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.794612Z", "completed_at": "2023-07-26T14:34:39.806649Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.807594Z", "completed_at": "2023-07-26T14:34:39.807603Z"}], "thread_id": "Thread-4", "execution_time": 0.014833211898803711, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_report_date_day.80e8904c4c"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.800779Z", "completed_at": "2023-07-26T14:34:39.808107Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.810336Z", "completed_at": "2023-07-26T14:34:39.810345Z"}], "thread_id": "Thread-2", "execution_time": 0.011922121047973633, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__ad_group_history_ad_group_id___fivetran_synced.1132e1f339"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.813337Z", "completed_at": "2023-07-26T14:34:39.828705Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.829182Z", "completed_at": "2023-07-26T14:34:39.829191Z"}], "thread_id": "Thread-4", "execution_time": 0.019036054611206055, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__ad_group_history_ad_group_id.220c6220be"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.830929Z", "completed_at": "2023-07-26T14:34:39.835501Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.836899Z", "completed_at": "2023-07-26T14:34:39.836927Z"}], "thread_id": "Thread-4", "execution_time": 0.007534980773925781, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_history_keyword_id.246889377a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.820830Z", "completed_at": "2023-07-26T14:34:39.836524Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.838062Z", "completed_at": "2023-07-26T14:34:39.838068Z"}], "thread_id": "Thread-2", "execution_time": 0.01930713653564453, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_history_keyword_id__ad_group_id___fivetran_synced.d122faa877"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.840781Z", "completed_at": "2023-07-26T14:34:39.851343Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.851788Z", "completed_at": "2023-07-26T14:34:39.851795Z"}], "thread_id": "Thread-4", "execution_time": 0.013097047805786133, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_report_date_day__campaign_id__advertiser_id.ff47cb8abc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.847002Z", "completed_at": "2023-07-26T14:34:39.858264Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.858937Z", "completed_at": "2023-07-26T14:34:39.858948Z"}], "thread_id": "Thread-2", "execution_time": 0.019321203231811523, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_campaign_id.a287eba0fc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.853436Z", "completed_at": "2023-07-26T14:34:39.860547Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.862249Z", "completed_at": "2023-07-26T14:34:39.862282Z"}], "thread_id": "Thread-4", "execution_time": 0.020936965942382812, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_report_date_day.7ef5fb1238"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.862573Z", "completed_at": "2023-07-26T14:34:39.881981Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.882452Z", "completed_at": "2023-07-26T14:34:39.882460Z"}], "thread_id": "Thread-2", "execution_time": 0.021984100341796875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__keyword_report_date_day__keyword_id__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.9504d17df6"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.875595Z", "completed_at": "2023-07-26T14:34:39.888514Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.888956Z", "completed_at": "2023-07-26T14:34:39.888964Z"}], "thread_id": "Thread-4", "execution_time": 0.014927864074707031, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_date_day.9937216300"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.884212Z", "completed_at": "2023-07-26T14:34:39.896896Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.897356Z", "completed_at": "2023-07-26T14:34:39.897363Z"}], "thread_id": "Thread-2", "execution_time": 0.014316082000732422, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__keyword_report_keyword_id.5f00679c48"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.899027Z", "completed_at": "2023-07-26T14:34:39.909548Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.910787Z", "completed_at": "2023-07-26T14:34:39.910797Z"}], "thread_id": "Thread-2", "execution_time": 0.013257980346679688, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__campaign_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.890610Z", "completed_at": "2023-07-26T14:34:39.909935Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.911041Z", "completed_at": "2023-07-26T14:34:39.911047Z"}], "thread_id": "Thread-4", "execution_time": 0.022319793701171875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__ad_group_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.926574Z", "completed_at": "2023-07-26T14:34:39.934090Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.934551Z", "completed_at": "2023-07-26T14:34:39.934559Z"}], "thread_id": "Thread-4", "execution_time": 0.020730018615722656, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__campaign_history_campaign_id___fivetran_synced.eff7196b87"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.915541Z", "completed_at": "2023-07-26T14:34:39.934845Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.936276Z", "completed_at": "2023-07-26T14:34:39.936284Z"}], "thread_id": "Thread-2", "execution_time": 0.023421049118041992, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__keyword_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.938208Z", "completed_at": "2023-07-26T14:34:39.975930Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:39.982080Z", "completed_at": "2023-07-26T14:34:39.982089Z"}], "thread_id": "Thread-4", "execution_time": 0.06973409652709961, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__campaign_history_campaign_id.60cb10d341"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.943209Z", "completed_at": "2023-07-26T14:34:39.981799Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.008544Z", "completed_at": "2023-07-26T14:34:40.008551Z"}], "thread_id": "Thread-2", "execution_time": 0.06708407402038574, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__advertiser_report_advertiser_id__date_day.990badbc11"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.640316Z", "completed_at": "2023-07-26T14:34:40.011659Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.021687Z", "completed_at": "2023-07-26T14:34:40.021697Z"}], "thread_id": "Thread-1", "execution_time": 0.38379788398742676, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_history"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.011868Z", "completed_at": "2023-07-26T14:34:40.022256Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.024040Z", "completed_at": "2023-07-26T14:34:40.024049Z"}], "thread_id": "Thread-4", "execution_time": 0.015552043914794922, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__advertiser_report_advertiser_id.13380f0672"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.016641Z", "completed_at": "2023-07-26T14:34:40.023365Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.025672Z", "completed_at": "2023-07-26T14:34:40.025679Z"}], "thread_id": "Thread-2", "execution_time": 0.015496969223022461, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__advertiser_report_date_day.aedeceeeca"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.027050Z", "completed_at": "2023-07-26T14:34:40.038970Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.043932Z", "completed_at": "2023-07-26T14:34:40.043939Z"}], "thread_id": "Thread-1", "execution_time": 0.020273208618164062, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__campaign_report_campaign_id__advertiser_id__date_day.b5752d5279"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.034908Z", "completed_at": "2023-07-26T14:34:40.043721Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.045429Z", "completed_at": "2023-07-26T14:34:40.045436Z"}], "thread_id": "Thread-4", "execution_time": 0.013273954391479492, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__campaign_report_campaign_id.8001ea60f2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.039791Z", "completed_at": "2023-07-26T14:34:40.045228Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.047215Z", "completed_at": "2023-07-26T14:34:40.047221Z"}], "thread_id": "Thread-2", "execution_time": 0.013855934143066406, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__campaign_report_date_day.10ac8272bf"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.049007Z", "completed_at": "2023-07-26T14:34:40.150309Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.160792Z", "completed_at": "2023-07-26T14:34:40.160841Z"}], "thread_id": "Thread-1", "execution_time": 0.11608505249023438, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__ad_group_report_ad_group_id__advertiser_id__campaign_id__date_day.d207b7d69d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:39.687526Z", "completed_at": "2023-07-26T14:34:40.161180Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.167852Z", "completed_at": "2023-07-26T14:34:40.167867Z"}], "thread_id": "Thread-3", "execution_time": 0.5054290294647217, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest_source.stg_pinterest_ads__pin_promotion_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.153014Z", "completed_at": "2023-07-26T14:34:40.164187Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.170326Z", "completed_at": "2023-07-26T14:34:40.170336Z"}], "thread_id": "Thread-2", "execution_time": 0.09763908386230469, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__ad_group_report_date_day.ed7c27b8a7"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.075082Z", "completed_at": "2023-07-26T14:34:40.170640Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.184720Z", "completed_at": "2023-07-26T14:34:40.184733Z"}], "thread_id": "Thread-4", "execution_time": 0.1379997730255127, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__ad_group_report_ad_group_id.134f9ac6c2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.173216Z", "completed_at": "2023-07-26T14:34:40.187011Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.200344Z", "completed_at": "2023-07-26T14:34:40.200355Z"}], "thread_id": "Thread-1", "execution_time": 0.03291177749633789, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__keyword_report_keyword_id__ad_group_id__campaign_id__advertiser_id__date_day.b7517b039d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.187287Z", "completed_at": "2023-07-26T14:34:40.200619Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.209431Z", "completed_at": "2023-07-26T14:34:40.209446Z"}], "thread_id": "Thread-3", "execution_time": 0.027465105056762695, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__keyword_report_date_day.23130e9fba"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.194304Z", "completed_at": "2023-07-26T14:34:40.202301Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.211467Z", "completed_at": "2023-07-26T14:34:40.211476Z"}], "thread_id": "Thread-2", "execution_time": 0.027627944946289062, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__keyword_report_keyword_id.0d73460198"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.202537Z", "completed_at": "2023-07-26T14:34:40.212104Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.220620Z", "completed_at": "2023-07-26T14:34:40.220634Z"}], "thread_id": "Thread-4", "execution_time": 0.023014068603515625, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_history__fivetran_synced__pin_promotion_id.8e9ab31ea9"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.213535Z", "completed_at": "2023-07-26T14:34:40.222135Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.246783Z", "completed_at": "2023-07-26T14:34:40.246795Z"}], "thread_id": "Thread-1", "execution_time": 0.03820180892944336, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_history_pin_promotion_id.171995cd34"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.223150Z", "completed_at": "2023-07-26T14:34:40.248517Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.260450Z", "completed_at": "2023-07-26T14:34:40.260484Z"}], "thread_id": "Thread-3", "execution_time": 0.04270792007446289, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__pin_promotion_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.235997Z", "completed_at": "2023-07-26T14:34:40.249471Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.261428Z", "completed_at": "2023-07-26T14:34:40.261437Z"}], "thread_id": "Thread-2", "execution_time": 0.04713892936706543, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.pinterest.pinterest_ads__url_report"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.250020Z", "completed_at": "2023-07-26T14:34:40.262610Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.272293Z", "completed_at": "2023-07-26T14:34:40.272326Z"}], "thread_id": "Thread-4", "execution_time": 0.027568817138671875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.dbt_utils_unique_combination_of_columns_stg_pinterest_ads__pin_promotion_report_date_day__pin_promotion_id__ad_group_id__campaign_id__advertiser_id.7ea04e6024"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.262871Z", "completed_at": "2023-07-26T14:34:40.272817Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.281475Z", "completed_at": "2023-07-26T14:34:40.281485Z"}], "thread_id": "Thread-1", "execution_time": 0.031235218048095703, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_date_day.ed272212a1"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.275827Z", "completed_at": "2023-07-26T14:34:40.291212Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.297073Z", "completed_at": "2023-07-26T14:34:40.297081Z"}], "thread_id": "Thread-3", "execution_time": 0.027156829833984375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest_source.not_null_stg_pinterest_ads__pin_promotion_report_pin_promotion_id.9c3c9f71ab"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.281715Z", "completed_at": "2023-07-26T14:34:40.295775Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.297691Z", "completed_at": "2023-07-26T14:34:40.297697Z"}], "thread_id": "Thread-2", "execution_time": 0.02974414825439453, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__pin_promotion_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.1db3ffb1b3"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.291843Z", "completed_at": "2023-07-26T14:34:40.297264Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.303438Z", "completed_at": "2023-07-26T14:34:40.303444Z"}], "thread_id": "Thread-4", "execution_time": 0.016761064529418945, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__pin_promotion_report_date_day.3128d28cfd"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.298656Z", "completed_at": "2023-07-26T14:34:40.304652Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.318449Z", "completed_at": "2023-07-26T14:34:40.318468Z"}], "thread_id": "Thread-1", "execution_time": 0.028890132904052734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__pin_promotion_report_pin_promotion_id.2540e0a561"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.319584Z", "completed_at": "2023-07-26T14:34:40.331109Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.333043Z", "completed_at": "2023-07-26T14:34:40.333051Z"}], "thread_id": "Thread-2", "execution_time": 0.033965110778808594, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_date_day.b09048037e"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.308010Z", "completed_at": "2023-07-26T14:34:40.331282Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.333249Z", "completed_at": "2023-07-26T14:34:40.333255Z"}], "thread_id": "Thread-3", "execution_time": 0.036195993423461914, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.dbt_utils_unique_combination_of_columns_pinterest_ads__url_report_pin_promotion_id__ad_group_id__campaign_id__advertiser_id__date_day.bd87b032c8"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.326767Z", "completed_at": "2023-07-26T14:34:40.332614Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.340637Z", "completed_at": "2023-07-26T14:34:40.340643Z"}], "thread_id": "Thread-4", "execution_time": 0.022867918014526367, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_destination_url.0bb7f30502"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2023-07-26T14:34:40.333668Z", "completed_at": "2023-07-26T14:34:40.341288Z"}, {"name": "execute", "started_at": "2023-07-26T14:34:40.342361Z", "completed_at": "2023-07-26T14:34:40.342368Z"}], "thread_id": "Thread-1", "execution_time": 0.011332035064697266, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.pinterest.not_null_pinterest_ads__url_report_pin_promotion_id.0da711ad6a"}], "elapsed_time": 3.16740083694458, "args": {"write_json": true, "use_colors": true, "printer_width": 80, "version_check": true, "partial_parse": true, "static_parser": true, "profiles_dir": "/Users/renee.li/.dbt", "send_anonymous_usage_stats": true, "quiet": false, "no_print": false, "cache_selected_only": false, "compile": true, "which": "generate", "rpc_method": "docs.generate", "indirect_selection": "eager"}} \ No newline at end of file From 12ae3d844681741828830f8fcad3ee99c091b473 Mon Sep 17 00:00:00 2001 From: Renee Li <91097070+fivetran-reneeli@users.noreply.github.com> Date: Wed, 26 Jul 2023 16:48:51 +0200 Subject: [PATCH 21/21] Update packages.yml Co-authored-by: Joe Markiewicz <74217849+fivetran-joemarkiewicz@users.noreply.github.com> --- packages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages.yml b/packages.yml index 2cb71cd..fa5864a 100644 --- a/packages.yml +++ b/packages.yml @@ -1,3 +1,3 @@ packages: - package: fivetran/pinterest_source - version: [">=0.8.0", "<0.9.0"] \ No newline at end of file + version: [">=0.9.0", "<0.10.0"] \ No newline at end of file